nginx + PHP-FPM 仅对某些虚拟主机禁用 PHP 功能

nginx + PHP-FPM 仅对某些虚拟主机禁用 PHP 功能

如何为我的 Nginx+PHP-FPM 堆栈上的部分虚拟主机(当前仅有 1 个)禁用某些 php 函数?

答案1

您可以为您的主机创建一个单独的池,并在其中放入受限制的功能,如下所示(在最后一行):

[example.com]
listen = 127.0.0.1:9001
listen.allowed_clients = 127.0.0.1
user = web1
group = client0
pm = dynamic
pm.max_children = 50
pm.start_servers = 20
pm.min_spare_servers = 5
pm.max_spare_servers = 35
chdir = /
php_admin_value[open_basedir] = /var/www/www.example.com:/usr/share/php5:/tmp:/usr/share/phpmyadmin:/etc/phpmyadmin:/var/lib/phpmyadmin
php_admin_value[disable_functions] = dl,exec,passthru,shell_exec,system,proc_open,popen,curl_exec,curl_multi_exec,parse_ini_file,show_source

答案2

其详细说明如下手册页在设置进程池时 - 使用环境变量附加到 disable_functions ini 设置。

答案3

事实上,似乎不能。

disable_functions只能在 php.ini 中设置(PHP_INI_SYSTEM)。

尽管 FPM 的 PHP 池看起来像一个单独的进程- 看https://supportex.net/blog/2012/02/lemp-disabling-php-functions/

相关内容