Como eu posso especificar qual arquivo php.ini usar no meu arquivo conf nginx?

2

Estou executando 2 sites PHP no mesmo servidor. Eu gostaria de usar 2 arquivos php.ini diferentes para eles. Eu pesquisei esse problema com sem sorte . Aqui está o meu local do 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;
}

Qualquer ajuda seria apreciada.

    
por Aust 12.02.2015 / 17:42

1 resposta

3

Como apontado pelo @ AD7six, eu estava indo pelo caminho errado. Foi assim que resolvi o problema para qualquer pessoa que não esteja familiarizada com várias configurações do php.

Copie o pool padrão para criar nosso novo pool. (Você pode nomear o pool como quiser, neste exemplo estou usando 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

Altere o nome do pool:

[www] => [www2]

Altere o soquete de escuta:

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

Infelizmente, é impossível especificar arquivos php.ini com base no pool. (Veja esta questão ) Mas, como a resposta aí está, você pode sobrescrever valores individuais do arquivo php.ini. Não é ótimo, mas até onde eu sei, não há outra maneira de fazer isso.

Uma nota para sobrescrever os valores de php.ini: Existem 4 maneiras de fazer isso, php_value , php_flag , php_admin_value e < em> php_admin_flag . Use os comandos _flag ao definir valores booleanos. Use os comandos _value para qualquer outra coisa. As versões _admin fazem com que esses valores / flags não possam ser sobrescritos.

Finalmente, altere seu nginx.conf para usar o novo pool:

fastcgi_pass unix:/var/run/php5-fpm.sock => unix:/var/run/php5-fpm2.sock
    
por 13.02.2015 / 17:35