Назад | Перейти на главную страницу

Можно ли настроить PHP-FPM с различными параметрами пула (xdebug включен / xdebug отключен)

У меня есть среда LEMP, и мне нужна возможность отделить все поддомены разработки от промежуточной (разработка с постановкой xdebug без).

Поэтому я установил два пула php-dev и php-stage, но кажется, что я могу включить расширения только в php.ini !?

Вот мой pool.conf (dev)

[php-dev]
listen = 127.0.0.1:9101
listen = /var/run/php-fpm/a1-php-dev.socket
listen.backlog = -1
listen.allowed_clients = 127.0.0.1

user = nginx
group = nginx

request_slowlog_timeout = 3s
slowlog = /var/log/php-fpm/slowlog-php-dev.log

pm = dynamic
pm.max_children = 20
pm.start_servers = 10
pm.min_spare_servers = 4
pm.max_spare_servers = 16
pm.max_requests = 500
pm.status_path = /status

request_terminate_timeout = 120s
rlimit_files = 131072
rlimit_core = unlimited
catch_workers_output = yes

env[HOSTNAME] = $HOSTNAME
env[TMP] = /tmp
env[TMPDIR] = /tmp
env[TEMP] = /tmp

php_admin_value[zend_extension]         = "/usr/lib64/php/modules/xdebug.so"
php_admin_value[xdebug.default_enable]      = 0
php_admin_value[xdebug.remote_enable]       = 0
php_admin_value[xdebug.remote_autostart]        = 0
php_admin_value[xdebug.remote_host]         = localhost 
php_admin_value[xdebug.profiler_enable_trigger]     = 0
php_admin_value[xdebug.remote_port]         = 9001
php_admin_value[xdebug.collect_params]      = 2
php_admin_value[xdebug.collect_vars]        = 1
php_admin_value[xdebug.trace_format]        = 2

К сожалению, xdebug не загружается.

Есть ли другой вариант загрузки xdebug только на доменах dev. *?

К сожалению, вы не можете загружать разные модули или версии модулей для каждого пула FPM. До сих пор я создал несколько полностью отдельных экземпляров PHP-FPM в аналогичных ситуациях.

Да, но дополнительный пул также должен работать под отдельной службой. Эта служба может использовать те же двоичные файлы, но для этого нужны свои собственные файлы conf и (некоторые) каталоги. Как этого добиться, зависит от вашей системы и ее менеджера по обслуживанию. я использовал этот ответ в качестве основы, потому что у меня есть systemd.

проще всего создать сервис в / etc / init / php-xdebug

start on runlevel [2345]
stop on runlevel [016]

# you can uncomment this with recent upstart
# reload signal USR2

pre-start script
mkdir -p /run/php
chmod 0755 /run/php
chown www-data:www-data /run/php
end script

respawn
exec /usr/sbin/php-fpm7.0 --nodaemonize --fpm-config /etc/php/7.0/fpm/php-xdebug.conf