我想生成两个 php-fpm 进程(一个带有 xdebug,一个不带有)以使页面加载速度更快
我打算根据 XDEBUG_SESSION cookie 在 php-fpm 套接字之间切换
示例代码/etc/apache2/conf-available/php7.2-fpm.conf
<FilesMatch ".+\.ph(ar|p|tml)$">
<If "%{HTTP_COOKIE} =~ /XDEBUG_SESSION=PHPSTORM/">
SetHandler "proxy:fcgi://127.0.0.1:9000"
</If>
<Else>
SetHandler "proxy:fcgi://127.0.0.1:9001"
</Else>
</FilesMatch>
我知道如何配置 php-fpm/etc/php/7.2/fpm/pool.d/www.conf
listen = 127.0.0.1:9000
但我不知道如何生成多个(或仅两个)php-fpm 进程。
如果有更简单的方法,请告诉我。
答案1
创建第二个 php-fpm 池,并根据需要更改设置。您只有一个名为 的池www
。为第二个池选择不同的名称。
答案2
我最终使用docker-compose
有条件地在容器之间切换
https://github.com/unlocomqx/conditional-xdebug-fpm-docker
灵感来自 https://jtreminio.com/blog/developing-at-full-speed-with-xdebug/
以下是有趣的部分
两个独立的 php 容器,每个容器具有不同的端口,其中一个没有 xdebug
php:
build:
context: ./bin/php72-fpm
container_name: '${COMPOSE_PROJECT_NAME}-${PHPVERSION}'
volumes:
- ${DOCUMENT_ROOT-./www}:/var/www/html
ports:
- "9000:9000"
php_xdebug:
build:
context: ./bin/php72-xdebug
container_name: '${COMPOSE_PROJECT_NAME}-xdebug-${PHPVERSION}'
volumes:
- ${DOCUMENT_ROOT-./www}:/var/www/html
ports:
- "9002:9002"