2 процесса php-fpm с той же версией

Я хотел бы создать два процесса php-fpm (один с xdebug и один без), чтобы страницы загружались быстрее

Я собираюсь переключаться между сокетами php-fpm на основе файла cookie XDEBUG_SESSION

Пример кода /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.
Если есть способ попроще, дайте мне знать.

0
задан 13 November 2020 в 15:08
2 ответа

Создайте второй пул php-fpm с желаемыми измененными настройками. У вас есть только один, который вы назвали www . Выберите другое имя для второго.

1
ответ дан 4 January 2021 в 09:32

В итоге я использовал 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"
0
ответ дан 4 January 2021 в 09:32

Теги

Похожие вопросы