我如何指定在我的nginx conf文件中使用哪个php.ini文件?

我在同一台服务器上运行2个PHP站点。 我想为他们使用2个不同的php.ini文件。 我已经search了这个问题, 没有运气 。 这是我的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的设置。

复制默认池以创build我们的新池。 (你可以任意命名游泳池,在这个例子中我使用的是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_valuephp_flagphp_admin_valuephp_admin_flag 。 设置布尔值时使用_flag命令。 使用_value命令_value其他事情。 _admin版本使得这些值/标志不能被覆盖。

最后,将你的nginx.conf改为使用新的池:

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