php-fpm:禁用特定池的 php 扩展
php-fpm : disabling a php extension for a specific pool
我已经配置了一个新的 FPM 池(pool.d
中的配置文件 www.conf
),现在假设我想禁用 mysql 对该特定池的支持?或者也许有一种方法 not 可以为该池加载该扩展?
我使用的是 debian 9,文件结构如下所示:
/etc/php/7.0/fpm$ tree
.
├── conf.d
│ ├── 10-mysqlnd.ini -> /etc/php/7.0/mods-available/mysqlnd.ini
│ ├── 10-opcache.ini -> /etc/php/7.0/mods-available/opcache.ini
│ ├── 10-pdo.ini -> /etc/php/7.0/mods-available/pdo.ini
│ ├── 20-calendar.ini -> /etc/php/7.0/mods-available/calendar.ini
│ ├── 20-ctype.ini -> /etc/php/7.0/mods-available/ctype.ini.ini
(...)
├── php-fpm.conf
├── php.ini
└── pool.d
├── forgewww.conf
└── www.conf
extension=thing.so
可在文件 conf.d/<extension>.ini
中找到。问题是所有这些扩展一旦配置似乎对所有池都是通用的...
我还尝试使用 phpdismod
全局禁用 mysql 扩展,然后在 www.conf
中添加一行:
php_admin_value[extension] = mysqli.so
这似乎不起作用(上面没有为该池启用 mysqli)
您不能加载不同的扩展 per-pool,扩展在 .ini
文件中定义,由主进程加载。 php-fpm
master 进程分叉到 children,这意味着它们共享 master 进程加载的内容。您不能让 child 在分叉后加载一组不同的扩展,或卸载它们。开发一个解决方案可能是可能的,但实际上没有必要看到您可以通过不同的方法解决您的问题。
为了实现您的目标,只需在不同的端口/unix 套接字上设置完全不同的 php-fpm 进程并加载您需要的扩展,设置池即可。它实际上比听起来要少得多,它可能不会超过几分钟。
我已经配置了一个新的 FPM 池(pool.d
中的配置文件 www.conf
),现在假设我想禁用 mysql 对该特定池的支持?或者也许有一种方法 not 可以为该池加载该扩展?
我使用的是 debian 9,文件结构如下所示:
/etc/php/7.0/fpm$ tree
.
├── conf.d
│ ├── 10-mysqlnd.ini -> /etc/php/7.0/mods-available/mysqlnd.ini
│ ├── 10-opcache.ini -> /etc/php/7.0/mods-available/opcache.ini
│ ├── 10-pdo.ini -> /etc/php/7.0/mods-available/pdo.ini
│ ├── 20-calendar.ini -> /etc/php/7.0/mods-available/calendar.ini
│ ├── 20-ctype.ini -> /etc/php/7.0/mods-available/ctype.ini.ini
(...)
├── php-fpm.conf
├── php.ini
└── pool.d
├── forgewww.conf
└── www.conf
extension=thing.so
可在文件 conf.d/<extension>.ini
中找到。问题是所有这些扩展一旦配置似乎对所有池都是通用的...
我还尝试使用 phpdismod
全局禁用 mysql 扩展,然后在 www.conf
中添加一行:
php_admin_value[extension] = mysqli.so
这似乎不起作用(上面没有为该池启用 mysqli)
您不能加载不同的扩展 per-pool,扩展在 .ini
文件中定义,由主进程加载。 php-fpm
master 进程分叉到 children,这意味着它们共享 master 进程加载的内容。您不能让 child 在分叉后加载一组不同的扩展,或卸载它们。开发一个解决方案可能是可能的,但实际上没有必要看到您可以通过不同的方法解决您的问题。
为了实现您的目标,只需在不同的端口/unix 套接字上设置完全不同的 php-fpm 进程并加载您需要的扩展,设置池即可。它实际上比听起来要少得多,它可能不会超过几分钟。