Como posso criar arquivos de configuração separados para php (cli) e php-fpm em um arch linux

6

É possível criar arquivos php.ini separados para php (cli) e php-fpm, como é possível no debian e ubuntu com duas pastas /etc/php/7.0/cli e /etc/php/7.0/fpm ?

Eu também serei legal se puder carregar módulos independentes com um diretório conf.d para cada subsistema.

Alguém tem uma ideia de como posso configurá-lo separadamente?

Eu também tentei usar a estrutura como configurada no Ubuntu 16.04 sem sucesso.

    
por Fiete 07.10.2016 / 19:28

2 respostas

7

Eu encontrei alguns ajustes para resolver o meu problema.

Primeiro : carregue um arquivo php.ini separado:

Um usuário em um fórum do Arch Linux postou isso na página 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.

Se eu criar um arquivo /etc/php/php-cli.ini , somente este arquivo será carregado e não /etc/php/php.ini com o comando php cli. php-fpm ainda está carregando o /etc/php/php.ini .

Segundo : carregue diferentes configurações de módulo:

Eu encontrei na documentação do php a variável de ambiente PHP_INI_SCAN_DIR . Portanto, movi o arquivo /usr/lib/systemd/system/php-fpm.service para /etc/systemd/system/php-fpm.service e adicionei a seguinte configuração ao arquivo de serviço:

[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

Depois de reiniciar / recarregar os serviços, o php-fpm carrega apenas os arquivos de /etc/php/fpm/conf.d e não mais de /etc/php/conf.d . Isso me permite configurar cli e fpm separadamente.

Talvez essa não seja a melhor solução, mas eu me adapto ao meu uso. Se todos tiverem uma solução melhor, não hesite em postar sua resposta!

    
por 08.10.2016 / 13:06
2

Você sempre pode fazer isso para a versão cli:

php -c /path/to/your/php.ini

e deixe os padrões com os que são servidos por php-fpm. Ou melhor ainda, adicione isso aos seus scripts de login

# ~/.bashrc
# aliases and personal functions

# PHP source personal ini
alias php='php -c /path/to/your/php.ini'

# colorize ls
alias ls='ls --color'
...

Teria sido melhor se você tivesse declarado qual (is) versão (s) você está usando

    
por 07.10.2016 / 20:02