Я хотел бы создать два процесса 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.
Если есть способ попроще, дайте мне знать.
Создайте второй пул php-fpm с желаемыми измененными настройками. У вас есть только один, который вы назвали www
. Выберите другое имя для второго.
В итоге я использовал 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"