Найдите правильный файл php.ini

170

В настоящее время я пытаюсь найти правильный файл php.ini, чтобы отредактировать его и перезапустить Apache, чтобы изменения произошли, и я в тупике.

Я нашел три разных файла php.ini (понятия не имею, почему их три), вот как я нашел файлы

$ sudo find / -name php.ini
/etc/php5/cli/php.ini
/etc/php5/apache2/php.ini
/etc/php5/cgi/php.ini

Я тоже сделал ....

$ sudo php -i | grep 'Configuration File'
Configuration File (php.ini) Path => /etc/php5/cli
Loaded Configuration File => /etc/php5/cli/php.ini

Я изменил их все (просто чтобы быть уверенным) в настройки, которые я хотел.

Я перезапустил apache используя

sudo service apache2 restart

Результаты, достижения...

* Restarting web server apache2

Я перезагрузил страницу, и она показала, что файл php.ini не обновлялся.

Я знаю это, потому что я использовал

echo ini_get('post_max_size');

Который должен был быть изменен на 20M, но все еще был только 2M

Я попытался перезагрузить свой компьютер, думая, что, возможно, это остановит сервер apache и перезагрузит файл php.ini с правильными настройками, но, увы, эта попытка также не удалась.

Есть ли шанс, что может быть другой файл php.ini, который может мешать?

Майкл
источник
6
«правильный» находится в apache2подкаталоге
Joren
1
использовать updatedb; locate php.iniвместо find.
Sjas
@Michael Файл находится /etc/php/5.6/apache2/php.iniв Ubuntu 16.04 LTS Xenial Xerus, где 5.6/установлена ​​версия php. Сначала скопируйте файл, а php.original.iniзатем откройте для редактирования с помощью sudo gedit /etc/php/5.6/apache2/php.ini
Хедли Фингер

Ответы:

290

У вас есть три файла, каждый из которых предназначен для разных целей.

/etc/php/5.6/cli/php.iniдля программы CLI PHP, которую вы нашли, запустив phpна терминале.

/etc/php/5.6/cgi/php.ini предназначен для системы php-cgi, которая специально не используется в этой настройке.

/etc/php/5.6/apache2/php.iniдля плагина PHP, используемого Apache. Это то, что вам нужно отредактировать, чтобы изменения вступили в силу в вашей настройке Apache.

/etc/php/5.6/fpm/php.iniдля php5-fpmпроцессора, который является fastcgi-совместимой «оболочкой» для обработки PHP (например, для передачи из NGINX в php5-fpm) и работает как автономный процесс в системе (в отличие от плагина Apache PHP)

Для версий Ubuntu более низких , чем 16.04, /etc/php/5.6/, /etc/php/7.0/, /etc/php/7.1/, и так далее, заменяются /etc/php5/и так далее. В противном случае эти пути остаются точными. Адаптируйте это соответственно для вашей среды, заменив 5.6или номер фактической версией папки, которая существует в вашей среде.

Томас Уорд
источник
1
Файл php.ini не найден в каталоге / etc / php5 / apache2. но это доступно там в директории cli.
Anuj TBE
2
@ anujsharma9196 Единственная причина, по которой это возможно, это то, что вы не используете встроенный плагин Apache для PHP. Пути к файлам все еще работают, как указано здесь и по сей день (подтверждено на моей 15.04 ВМ)
Томас Уорд
21

Попробуйте запустить скрипт, содержащий этот фрагмент, в своем браузере, <?php phpinfo(); ?>а затем попытайтесь найти что-то вроде загруженного файла конфигурации . Эта запись определяет php.ini, который ваш PHP использует на вашем сервере Apache.

Джастин Пол Паньо
источник
14

Чтобы узнать, какой php.iniCLI использует, вы можете запустить:

php -i | grep 'php.ini'

Пример вывода:

$ php -i | grep 'php.ini'

Configuration File (php.ini) Path => /etc/php/7.0/cli
Loaded Configuration File => /etc/php/7.0/cli/php.ini
Джанфранко П.
источник
Это должен быть принятый ответ!
Марсело Агил,
1
Это хорошо, но даст конфиг загруженный конфиг только для php. Чтобы загрузить Apache-конфигурацию, нужно выполнить phpinfo () на веб-странице.
Дипу Радж
13

для php7 убунту 16.4

/etc/php/7.0/apache2/php.ini
Softmixt
источник
1
Я скучаю по этому файлу. Какой пакет предоставляет этот файл?
Galmok
для php7 на Ubuntu 16.4
Softmixt
1

Вы можете найти используемый файл, запустив его на терминале:

php --ini
Наталья Писсути
источник