PHP 8.2-FPM PHPRC 不覆盖加载的配置文件

问题描述 投票:0回答:1

我将 PHP 8.2-FPM 与 Nginx 一起使用,并且我尝试使用 PHPRC 环境变量设置自定义 php.ini 文件。当我运行 phpinfo() 时,我可以看到 $_SERVER['PHPRC'] 在 PHP 变量部分中正确设置,但加载的配置文件仍然指向默认的 /etc/php/8.2/cgi/php.ini。

我的 Nginx 会议

    location ~ \.php$ {
        include fastcgi.conf;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
        fastcgi_index index.php;

        fastcgi_param PHPRC /var/www/website/php.ini;
        fastcgi_param PHP_INI_SCAN_DIR /var/www/website;
    }

通过 Nginx 配置设置 PHPRC:我将以下内容添加到 PHP 位置块中的 Nginx 配置中:

fastcgi_param PHPRC /var/www/website/php.ini;

fastcgi_param PHP_INI_SCAN_DIR /var/www/website

PHP-FPM 池配置:在 PHP-FPM 池配置(/etc/php/8.2/fpm/pool.d/www.conf)中,我添加了:

php_admin_value[PHPRC] = /var/www/website/php.ini

php_admin_value[PHP_INI_SCAN_DIR] = /var/www/website

重新启动服务:进行这些更改后,我重新启动了 Nginx 和 PHP-FPM:

sudo systemctl restart nginx 

sudo systemctl restart php8.2-fpm

我的期望:

我希望 phpinfo() 显示位于加载配置文件下 /var/www/website/php.ini 的自定义 php.ini。发生了什么事:

在 phpinfo() 的 PHP 变量部分,我看到:

$_SERVER['PHPRC'] /var/www/website/php.ini

但是,加载的配置文件仍然指向:

/etc/php/8.2/cgi/php.ini

php nginx fastcgi
1个回答
0
投票

您无法使用

fastcgi_param
指令设置环境变量。不过,您可以尝试使用
env
指令来执行此操作:

    location ~ \.php$ {
        include fastcgi.conf;
        fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
        fastcgi_index index.php;

        env PHPRC=/var/www/website/php.ini;
        env PHP_INI_SCAN_DIR=/var/www/website;
    }
© www.soinside.com 2019 - 2024. All rights reserved.