Как я могу создать отдельные файлы конфигурации для php (cli) и php-fpm на Linux-арке
10
Можно ли создать отдельные файлы php.ini для php (cli) и php-fpm, как это возможно в debian и ubuntu с двумя папками /etc/php/7.0/cliи /etc/php/7.0/fpm?
Я также буду крут, если смогу загружать независимые модули с conf.dкаталогом для каждой подсистемы.
У кого-нибудь есть идеи, как настроить его отдельно?
Я также попытался использовать структуру, как она настроена в Ubuntu 16.04, но безуспешно.
Я нашел несколько настроек, чтобы решить мою проблему.
Сначала : загрузите отдельные php.iniфайлы:
Пользователь на форуме Arch Linux опубликовал это со man phpстраницы:
FILES
php-cli.ini The configuration file for the CLI version of PHP.
php.ini The standard configuration file will only be used when php-cli.ini cannot be found.
Если я создаю /etc/php/php-cli.iniфайл, будет загружен только этот файл, а не /etc/php/php.iniкоманда phpcli. php-fpmвсе еще загружает /etc/php/php.ini.
Второе : загрузить различные конфигурации модуля:
Я нашел в документации PHP в PHP_INI_SCAN_DIRпеременную окружения. Поэтому я переместил /usr/lib/systemd/system/php-fpm.serviceфайл /etc/systemd/system/php-fpm.serviceи добавил следующую конфигурацию в служебный файл:
[Unit]
Description=The PHP FastCGI Process Manager
After=syslog.target network.target
[Service]
Type=notify
Environment="PHP_INI_SCAN_DIR=/etc/php/fpm/conf.d" ; <-- I have added this line
PIDFile=/run/php-fpm/php-fpm.pid
ExecStart=/usr/bin/php-fpm --nodaemonize --fpm-config /etc/php/php-fpm.conf
ExecReload=/bin/kill -USR2 $MAINPID
[Install]
WantedBy=multi-user.target
После перезапуска / перезагрузки сервисов php-fpm загружает только файлы из, /etc/php/fpm/conf.dа не из /etc/php/conf.d. Это позволяет мне настраивать cli и fpm отдельно.
Возможно, это не лучшее решение, но я подхожу для моего использования. Если у всех есть лучшее решение, не стесняйтесь опубликовать свой ответ!
Этот второй подход чрезвычайно полезен для отладки, то есть вы создаете суффиксные копии службы php-fpm и conf files / dirs, задаете отдельную конфигурацию fpm, как у вас, опционально указываете другой ini with --php-ini, затем загружаете xdebug только во второй служба. Конечно, второй сервис должен работать на другом порту / сокете. Я установил Environment="PHP_INI_SCAN_DIR=/etc/php-debugger.d:"в своем служебном файле двоеточие, добавив его, чтобы он загружал все модули по умолчанию в дополнение к модулю xdebug, который я скопировал в debugger.dкаталог.
Уолф
3
Вы всегда можете сделать это для Cli-версии:
php -c /path/to/your/php.ini
и оставьте значения по умолчанию с теми, которые обслуживаются через php-fpm. Или, что еще лучше, добавьте это в свои сценарии входа
# ~ / .bashrc
# псевдонимы и личные функции
# PHP источник личный ini
псевдоним php = 'php -c /path/to/your/php.ini'
# colorize ls
псевдоним ls = 'ls --color'
...
Было бы лучше, если бы вы указали, какую версию (версии) вы используете
хорошая идея, но не совсем то, что я ищу. Возможно, если нет другого пути. Спасибо.
Fiete
ну, может быть, есть, пожалуйста, поделитесь, какая версия php, php-fpm и ваши основные настройки (вы используете nginx, apache и т. д.). Как у вас есть настройка php-fpm. может быть, оттуда мы можем быть полезны
--php-ini
, затем загружаете xdebug только во второй служба. Конечно, второй сервис должен работать на другом порту / сокете. Я установилEnvironment="PHP_INI_SCAN_DIR=/etc/php-debugger.d:"
в своем служебном файле двоеточие, добавив его, чтобы он загружал все модули по умолчанию в дополнение к модулю xdebug, который я скопировал вdebugger.d
каталог.Вы всегда можете сделать это для Cli-версии:
и оставьте значения по умолчанию с теми, которые обслуживаются через php-fpm. Или, что еще лучше, добавьте это в свои сценарии входа
Было бы лучше, если бы вы указали, какую версию (версии) вы используете
источник