Como você reinicia o php-fpm?


184

Preciso recarregar meu php.ini e não há nada na caixa de diálogo de ajuda sobre como reiniciá-lo.

Respostas:


335

Nota : acrescente sudose não for root

  • Usando scripts SysV Init diretamente:

    /etc/init.d/php-fpm restart    # typical
    /etc/init.d/php5-fpm restart   # debian-style
    /etc/init.d/php7.0-fpm restart # debian-style PHP 7
    
  • Usando script de wrapper de serviço

    service php-fpm restart    # typical
    service php5-fpm restart   # debian-style
    service php7.0-fpm restart # debian-style PHP 7
    
  • Usando o Upstart (por exemplo, ubuntu):

    restart php7.0-fpm         # typical (ubuntu is debian-based) PHP 7
    restart php5-fpm           # typical (ubuntu is debian-based)
    restart php-fpm            # uncommon
    
  • Usando systemd (servidores mais recentes):

    systemctl restart php-fpm.service    # typical
    systemctl restart php5-fpm.service   # uncommon
    systemctl restart php7.0-fpm.service # uncommon PHP 7
    

Ou qualquer que seja o equivalente em seu sistema.


2
E em um Mac? O php-fpm foi instalado usando o homebrew. which php-fpm/usr/local/sbin/php-fpm.
hobbes3

6
@ hobbes3 try brew services restart php56(se você receber um erro sobre nenhuma fórmula disponível, tente uma versão diferente, por exemplo, php5 ou php55). Se você não possui serviços de distribuição instalados, ele deve ser instalado na primeira execução.
Doktor J

Nenhuma das opções acima funcionou para mim, mas isso fez: service php-fcgi-mydomain-com restartE eu tive que repeti-la para cada domínio de sites-enabled
Ilyich

Este foi o bom para mim (CentOS):systemctl reload php70-php-fpm
4wk_

Estou no Ubuntu 16.04 e isso pareceu funcionar: systemctl restart php5.6-fpm.service
relipse

30

Para o Mac OS X, é isso que eu faço:

Faça um script /usr/local/etc/php/fpm-restart:

#!/bin/sh

echo "Stopping php-fpm..."
launchctl unload -w ~/Library/LaunchAgents/homebrew-php*.plist

echo "Starting php-fpm..."
launchctl load -w ~/Library/LaunchAgents/homebrew-php*.plist

echo "php-fpm restarted"
exit 0

Então:

chmod ug+x /usr/local/etc/php/fpm-restart
cd /usr/local/sbin
ln -s /usr/local/etc/php/fpm-restart

verifique se / usr / local / sbin está no seu $ PATH

basta chamá-lo a partir do terminal fpm-restart e BOOM !!


4
Use homebrew.mxcl.php*.plistse não der certo #
Daniil Ryzhkov

github.com/Homebrew/homebrew-php#installing-multiple-versions é o caso de você não encontrar o arquivo .plist.
Frank fang

serviços de fermentação basicamente fazem o que seu script faz.
Qiulang 23/01

22

Geralmente, tudo service php5-fpm restartfica bem, em uma distribuição atualizada.

Mas, às vezes, falha, dizendo a você restart: Unknown instance:(ou algo assim).

Agora, se você não gosta de reiniciar o servidor, basta matar os processos e ter um novo começo (editado a partir daqui):

$ sudo pkill php5-fpm; sudo service php5-fpm start

Obrigado, isso corrigiu exatamente o meu problema. ( stop: Unknown instance:)
Nilloc 31/08/16

13

Isso deve funcionar:

pkill -o -USR2 php-fpm
pkill -o -USR2 php5-fpm

3
Se você instalou o PHP-FPM via homebrew em um Mac, o primeiro comando funciona muito melhor do que descarregar + load'ing o plist
Alan Ivey

OSX:killall php-fpm
ptim

No OSX, o código acima deu um erro "Usuário desconhecido SR2". A inversão dos argumentos o corrigiu: "pkill -USR2 -o php-fpm"
Keeth 9/15

Exatamente o que eu precisava para reiniciar o FPM em um contêiner, obrigado!
Adrian Günter

Estou usando a versão pré-instalada ou empacotada com xcode, versão do php e seu -fpm associado por algum motivo, e não através do Homebrew. Apenas pensei em usar o que já existe. Estou usando uma combinação de php-fpm --prefix /usr/local, criando alguns diretórios abaixo daquele que ele precisa e, como o @Keeth afirmou pkill -USR2 -o php-fpm, verificando pgrep -l fpme os PIDs realmente mudam! Eu não tinha arquivos ou serviços básicos para tirar proveito mencionados por algumas das outras respostas.
Pysis


12

Eu tive um problema ao reiniciar o php7-fpm, porque não sabia exatamente como o serviço foi nomeado. Esta função me deu a resposta:

service --status-all

O serviço php7-fpm no meu Ubuntu foi chamado php7.0-fpm, então eu fiz:

service php7.0-fpm restart


5
+1 paraservice --status-all
JD

6

O php-fpm será reiniciado se você enviar um sinal USR2 para o processo principal:

sudo kill -USR2 php-fpm_main_process_id

Então, só precisamos instruir o php-fpm para gravar seu pid em algum lugar. Neste exemplo, assumirei que você deseja salvá-lo em /etc/private/php-fpm.pid, e que o php-fpm é executado como usuário _php. Primeiro, adicione esta linha ao arquivo de configuração:

pid = /etc/php-fpm.pid

Em seguida, crie o arquivo /etc/php-fpm.pide verifique se o php-fpm tem permissão para modificá-lo:

$ cd /etc
$ sudo touch php-fpm.pid
$ sudo chown _php php-fpm.pid
$ sudo chmod 644 php-fpm.pid

Agora, da próxima vez que o php-fpm for iniciado, você poderá obter seu pid e reiniciá-lo assim:

$ cat /etc/php-fpm.pid
815
$ sudo kill -USR2 815

Ou você pode combiná-los em um único comando:

$ sudo kill -USR2 `cat /etc/private/php-fpm.pid`

Estou gostando das respostas dos @ dialt0ne e @ Keeth pkill ...e acima; mais curto e mais simples.
Pysis

isso é melhor e uma boa explicação. o pkill corre o risco, se você não conseguir os processos correspondentes, de eliminar seus outros clusters PHP, se você os tiver executando na mesma caixa (sim, isso é uma prática ruim).
Rico K.

3

Para mim, eu tinha acabado de atualizar via apt e a reinicialização do serviço não estava funcionando. Acabei precisando matar os processos existentes antes de funcionarem usando: killall php5-fpm


2

Para permitir que o script de reinicialização do PHP-FPM funcione, você deve especificar um arquivo PID no arquivo php-fpm.conf. ie

pid = /var/run/php-fpm/php-fpm.pid

O valor padrão para pid no php-fpm.conf não é nada, o que significa não criar um arquivo PID, o que significa que o script de reinicialização não pode dizer qual processo terminar durante a reinicialização.


2

No CentOS 7

sudo systemctl enable php-fpm // Just incase is disabled. Also ensures it starts automatically with the server

sudo systemctl start php-fpm  // Start the service

sudo systemctl stop php-fpm   // Stop the service

sudo systemctl status php-fpm  // View status

2

No Ubuntu 16 com php 5.6 fpm.

 /etc/init.d/php5.6-fpm restart

1

No RedHat / CentOS 7 usando PHP 7 em softwarecollections.org

service rh-php70-php-fpm start
service rh-php70-php-fpm stop
service rh-php70-php-fpm reload
service rh-php70-php-fpm restart
service rh-php70-php-fpm status

ou se você estiver usando systemctl:

systemctl start rh-php70-php-fpm
systemctl stop rh-php70-php-fpm
systemctl reload rh-php70-php-fpm
systemctl restart rh-php70-php-fpm
systemctl status rh-php70-php-fpm

1

A maneira mais simples de encontrar o nome do serviço php-fpm é procurá-lo:

systemctl -l --type service --all | grep fpm

2
Você pode simplificar:systemctl list-units *fpm*
Michael Hampton

0

No Windows:

  1. Abra Serviços no Console de Gerenciamento:

    Start -> Run -> "services.msc" -> OK
    
  2. Selecione php-fpmna lista

  3. Clique com o botão direito e selecione reiniciar

0

Para versões antigas do debian e ubuntu - php 5.6, será

 /etc/init.d/php-fpm56 restart
 service php-fpm56 restart

0

No Alpine com nginx, isso está funcionando aqui:

Para matar todos os processos php-fpm7:

kill $(ps -o pid,comm | grep php-fpm7 | awk '{print $1}')

Para iniciar o php-fpm7:

php-fpm7


0

Para listar os serviços systemd no CentOS / RHEL 7.x +, use

systemctl

Para listar todos os serviços:

systemctl list-unit-files

Onde você pode encontrar o serviço chamado * php-fpm * copy service name e execute o seguinte comando

systemctl restart ea-php72-php-fpm.service

NOTA: usuário ea-php72-php-fpm.service seu nome de serviço


-2

Outro método para o MaxOS

Abra o ActivityMonitor, pesquise php-fpm, encontre o pid.

Terminal aberto, use kill [pid]para parar o php-fpm

Em seguida, php-fpmno terminal para iniciá-lo.

Se houver informações de erro que 127.0.0.1:9000 já estejam em uso, ignore-as.

Na página Atualizar Nginx, as alterações do php.ini devem ter efeito.


O que é o MaxOS? Apenas correr php-fpmprovavelmente o executará com o usuário errado; ignorar mensagens de erro nunca é uma boa ideia.
Gerald Schneider
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.