Назад | Перейти на главную страницу

Как я могу указать, какой файл php.ini использовать в моем файле конфигурации nginx?

Я использую 2 PHP-сайта на одном сервере. Я хотел бы использовать для них 2 разных файла php.ini. Я искал эту проблему с помощью не повезло. Вот как выглядит мое местоположение на php:

location ~ \.php$ {
    fastcgi_split_path_info ^(.+\.php)(/.+)$;
    # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini

    # With php5-cgi alone:
    # fastcgi_pass 127.0.0.1:9000;
    # With php5-fpm:
    fastcgi_pass unix:/var/run/php5-fpm.sock;
    fastcgi_index index.php;
    include fastcgi_params;
}

Любая помощь будет оценена.

Как указал @ AD7six, я ошибся. Вот как я решил проблему для всех, кто не так хорошо знаком с несколькими настройками php.

Скопируйте пул по умолчанию, чтобы создать наш новый пул. (Вы можете назвать пул как хотите, в этом примере я использую www2):

sudo cp /etc/php5/fpm/pool.d/www.conf /etc/php5/fpm/pool.d/www2.conf
sudo nano /etc/php5/fpm/pool.d/www2.conf

Измените имя пула:

[www] => [www2]

Измените прослушивающий сокет:

listen = /var/run/php5-fpm.sock => /var/run/php5-fpm2.sock

К сожалению, указать файлы php.ini на основе пула невозможно. (Видеть этот вопрос) Но, как говорится в ответе, вы можете перезаписывать отдельные значения php.ini. Это не очень хорошо, но, насколько я могу судить, другого пути нет.

Примечание для перезаписи значений php.ini: есть 4 способа сделать это: php_value, php_flag, php_admin_value, и php_admin_flag. Использовать _flag команды при установке логических значений. Использовать _value команды для всего остального. В _admin версии делают так, чтобы эти значения / флаги не могли быть перезаписаны.

Наконец, измените свой nginx.conf, чтобы использовать новый пул:

fastcgi_pass unix:/var/run/php5-fpm.sock => unix:/var/run/php5-fpm2.sock