我在同一台服务器上运行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_value , php_flag , php_admin_value和php_admin_flag 。 设置布尔值时使用_flag命令。 使用_value命令_value其他事情。 _admin版本使得这些值/标志不能被覆盖。
最后,将你的nginx.conf改为使用新的池:
fastcgi_pass unix:/var/run/php5-fpm.sock => unix:/var/run/php5-fpm2.sock