php.ini: какой?

Я перешел от старого apache к nginx и php 5.3.10. И когда я попытался изменить php.ini в соответствии со своими потребностями, я обнаружил, что их 3:

$ locate php.ini /etc/php5/cgi/php.ini /etc/php5/cli/php.ini /etc/php5/fpm/php.ini 

Какой из них я должен изменить?

Вообще говоря, файл cli/php.ini используется, когда двоичный код PHP вызывается из командной строки.
Вы можете проверить, что работает php --ini из командной строки.

fpm/php.ini будет использоваться, когда PHP будет запущен как FPM – в случае с установкой nginx.
И вы можете проверить, что вызов phpinfo() с php-страницы, обслуживаемой вашим веб-сервером.

cgi/php.ini , в вашей ситуации, скорее всего, не будет использоваться.

Использование двух разных файлов php.ini (один для CLI, а другой для обслуживания страниц с вашего веб-сервера) выполняется довольно часто и имеет одно из основных преимуществ: он позволяет вам иметь разные значения конфигурации в каждом случае.

Как правило, в файле php.ini который используется веб-сервером, вы укажете довольно короткое max_execution_time : веб-страницы должны быть быстро отправлены, а если странице требуется более нескольких десятков секунд (по умолчанию 30 секунд) , это, вероятно, из-за ошибки – и генерация страницы должна быть остановлена.
С другой стороны, вы можете иметь довольно длинные сценарии, запущенные из вашего crontab (или вручную), что означает, что файл php.ini который будет использоваться, является тем, который используется в cli/ . Для этих скриптов вы укажете гораздо больше max_execution_time в cli/php.ini чем в fpm/php.ini .

max_execution_time – общий пример; вы можете сделать то же самое с несколькими другими конфигурационными директивами, конечно.

Это действительно зависит от ситуации, для меня это в fpm, поскольку я использую PHP5-FPM. Решение вашей проблемы может быть универсальным php.ini, а затем использовать символическую ссылку, созданную как:

 ln -s /etc/php5/php.ini php.ini 

Тогда любые сделанные вами изменения будут в одном общем файле .ini. Это, вероятно, не самое лучшее решение, хотя, возможно, вы захотите изучить модификацию некоторой конфигурации, чтобы вы буквально использовали один файл в одном месте. Не несколько мест взломали.

Хотя ответ Паскаля был подробным и информативным, он не упомянул некоторую ключевую информацию в предположении, что каждый знает, как использовать phpinfo()

Для тех, кто этого не делает:

Перейдите в корневую папку веб-серверов, например /var/www/

В этой папке создайте текстовый файл с именем info.php

Отредактируйте файл и введите phpinfo()

Перейдите к файлу, например: http://www.example.com/info.php

Здесь вы увидите путь php.ini разделе Loaded Configuration File :

phpinfo

Вы можете найти, что используется файл php.ini:

  • Добавьте phpinfo () на php-страницу и отобразите страницу (например, изображение внизу)
  • Из оболочки введите: php -i

Затем вы можете найти информацию в файле Loaded Configuration (так что это /user/local/etc/php/php.ini)

Иногда вы указали (нет), в этом случае вам просто нужно разместить свой собственный php.ini, который вы можете найти здесь: http://git.php.net/?p=php-src.git;a=blob ; F = php.ini-производства; ПП = HEAD ,

Надеюсь, этот ответ поможет.