Я использую 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