我在同一台服务器上运行 2 个 PHP 站点。我想为它们使用 2 个不同的 php.ini 文件。我在 Google 上搜索了这个问题没有运气。我的 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;
}
任何帮助,将不胜感激。
答案1
正如@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