O PHP-FPM não inicia automaticamente após a reinicialização

15

Estou executando o PHP-FPM e o Nginx, ocasionalmente, por qualquer motivo, tenho que reiniciar o servidor. Quando o servidor está em execução novamente, o serviço nginx é iniciado automaticamente; no entanto, o PHP-FPM não. Isso pode ser visto quando executo o comando sudo /etc/init.d/php-fpm restartimediatamente após uma reinicialização e obtenho o resultado:

$ sudo /etc/init.d/php-fpm restart
Stopping php-fpm:                                          [FAILED]
Starting php-fpm:                                          [  OK  ]

Esse comportamento é esperado? Qual é a melhor maneira de fazer o PHP-FPM iniciar automaticamente? Existe uma opção de configuração em algum lugar ou preciso adicionar o comando a um dos scripts de inicialização do Linux?

Obrigado.

SteveEdson
fonte
Qual distribuição linux você está usando? Como você instalou o php-fpm? De um pacote ou de fontes?
Tonin
Está sendo executado em uma instância do Amazon EC2 Linux, o PHP-FPM foi instalado usando #yum install -y php-fpm
SteveEdson 20/12/12

Respostas:

27

Então, configure-o para iniciar na inicialização:

chkconfig php-fpm on
Michael Hampton
fonte
1
Tão simples como isso, brilhante! Cheers
SteveEdson
4

Acabei de encontrar esse mesmo problema no Ubuntu 16.04 e estou deixando minha resposta aqui para futuros usuários do Google que se deparam com o problema. Como chkconfigé principalmente específico para o CentOS, obviamente não existe no Ubuntu. Aparentemente, para obter um PHP personalizado ( php-fpmSAPI) para iniciar na inicialização systemd, que é novo no Ubuntu 16.04 (anteriormente, Upstart), ele precisa ser registrado no sistema, além de apenas soltar o init.dscript /etc/init.d/. Para registrar o script, executei:

update-rc.d php-fpm defaults

Um reboote subsequente ps auxconfirmou que php-fpmestava realmente começando na inicialização. Também foi adicionado a /etc/init.d/.depend.start.

Outros pensamentos: O Ubuntu Upstart foi bom o suficiente para que eu nunca tivesse que correr update-rc.ddepois de colocar um script init.d - ele simplesmente funcionou. Esqueci completamente esse comando.

CubicleSoft
fonte
2
A pergunta original é sobre o Amazon Linux, não sei dizer quantos usuários do Ubuntu o verão. Quanto ao 16.04 e systemd, o que se deve fazer é usar uma unidade systemd adequada, em vez do script iniciante antigo ou antigo. Você deve encontrar uma unidade utilizável do sistema com o pacote distro ou em outro local.
Michael Hampton
Eu sou um usuário do Ubuntu 14.04 e isso me ajudou, obrigado! PS: sudopode ser necessário para esse comando.
Edson Horacio Junior