2 个 php-fpm 进程,版本相同

2 个 php-fpm 进程,版本相同

我想生成两个 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"

相关内容