o serviço httpd não será iniciado na inicialização no CentOS 6

7

Estou tendo problemas para configurar uma configuração do Vagrant do CentOS 6 para iniciar o serviço Apache na inicialização. Eu tentei usar o chkconfig e o sistema operacional parece apenas ignorá-lo.

Quando executo sudo chkconfig --list httpd , obtenho

httpd           0:off   1:off   2:on    3:on    4:on    5:on    6:off

Que eu assumo foi o resultado da execução dos comandos

sudo chkconfig httpd on
sudo chkconfig --levels 235 httpd on
sudo chkconfig --levels 345 httpd on

em diferentes tentativas de configurar isso corretamente no meu script de provisionamento. Eu não estou usando Puppet ou Chef, nem eu realmente quero. Eu tinha este trabalho em uma máquina host diferente, mas no segundo host parece ter parado de funcionar por algum motivo.

O início manual do serviço com sudo service httpd start funciona bem, mas assim que eu fizer um vagrant halt && vagrant up ou vagrant reload , o serviço não será iniciado quando a VM voltar.

Frustrantemente, o serviço mysqld, que eu configurei exatamente da mesma maneira, aparece perfeitamente na inicialização.

Meu / var / log / httpd / error_log diz isto:

[Thu Apr 17 09:31:09 2014] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
[Thu Apr 17 09:31:09 2014] [notice] Digest: generating secret for digest authentication ...
[Thu Apr 17 09:31:09 2014] [notice] Digest: done
[Thu Apr 17 09:31:09 2014] [notice] Apache/2.2.15 (Unix) DAV/2 PHP/5.5.11 configured -- resuming normal operations
[Thu Apr 17 09:34:45 2014] [notice] caught SIGTERM, shutting down
    
por Zac Crites 17.04.2014 / 11:51

2 respostas

4

O problema era que a VM estava tentando iniciar o serviço Apache antes do Vagrant ter montado as pastas compartilhadas, e o httpd DocumentRoot estava apontando para um diretório inexistente. Eu segui essas instruções para configurar um evento do udev para esperar até que a montagem ocorra antes de tentar iniciar o httpd.

link

    
por 17.04.2014 / 21:04
0

Se httpd estiver ativado em chkconfig e a sintaxe estiver correta, é provável que a raiz do documento Apache aponte para uma pasta sincronizada que não está disponível no momento de iniciar o serviço.

A solução é fornecer script de shell para o seu Vagrantfile , que verificará o serviço e iniciará quando necessário, cada vez que o comando vagrant for chamado, por exemplo,

config.vm.provision :shell, run: "always", :inline => "service httpd status || service httpd start"

ou:

config.vm.provision :shell, run: "always", path: "scripts/check_vm_services.sh"

Veja também: O Apache não inicia após o recarregamento do Vagrant na SO

    
por 22.03.2016 / 17:37