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

В настоящее время я пытаюсь найти правильный файл 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/cliLoaded Configuration File => /etc/php5/cli/php.ini

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

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

sudo service apache2 restart

Результаты...

* Restarting web server apache2

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

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

echo ini_get('post_max_size');

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

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

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

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

/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, которая использует встроенный модуль PHP для 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 или номер с фактической папкой версии, которая существует в вашей среде.

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

php -i | grep 'php.ini'

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

$ php -i | grep 'php.ini'Configuration File (php.ini) Path => /etc/php/7.0/cliLoaded Configuration File => /etc/php/7.0/cli/php.ini

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

для php7 ubuntu 16.4

/etc/php/7.0/apache2/php.ini

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

php --ini

Я нахожусь в стеке LAMP на Amazon Lightsail, и расположение правильного файла php.ini для моего сервера Ubuntu:

/opt/bitnami/php/etc/php.ini

“правильный” находится в подкаталоге apache2

используйте updatedb; найдите php.ini вместо find.

@Michael Файл /etc/php/5.6/apache2/php.ini в Ubuntu 16.04 LTS для Xerus, где 5.6/ - это установленная версия php. Сначала скопируйте файл в php.original.ini, затем откройте для редактирования с помощью sudo gedit /etc/php/5.6/apache2/php.ini