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

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

我在同一台服务器上运行 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_valuephp_flagphp_admin_value, 和php_admin_flag_flag设置布尔值时使用命令。_value其他情况下使用命令。_admin版本使得这些值/标志无法被覆盖。

最后,更改 nginx.conf 以使用新池:

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

相关内容