Instalei o Apache por muito tempo como parte da configuração do ambiente de desenvolvimento no meu laptop.
No entanto, desde que eu o interrompi há alguns meses, ele não é mais iniciado automaticamente na inicialização. Eu tenho esse problema no meu laptop em casa E no meu laptop no trabalho.
Nos dois casos, instalei o Apache no Ubuntu 10.10 há alguns meses, usei-o por várias semanas sem falhas, mas um dia parei e agora ele não é mais iniciado automaticamente. Tentei executar a atualização rc manualmente, mas foi informado que o script init já está em uso.
No entanto, iniciando / reiniciando manualmente com
sudo service apache2 start/restart
funciona bem. Nos dois casos, deixei para depois da atualização para o 11.04, porque esperava que fosse resolvido pela nova versão. Mas isso não! Ficaria muito grato se alguém puder me dizer como fazer o Apache iniciar automaticamente mais uma vez.
Estou adicionando esta resposta com base em problemas recentes que encontrei com os mesmos sintomas.
Primeiro, alguns dados de segundo plano:
/etc/init.d/
pasta para iniciar / parar serviços./etc/init.d/
scripts, armazenados nas/etc/rc#.d/
pastas, para iniciar / parar serviços com base no "nível de execução"./etc/rc1.d/
, o nível de execução 2 usa/etc/rc2.d/
e assim por diante.sudo update-rc.d apache2 defaults
que cria os links simbólicos apropriados nas/etc/rc#.d/
pastas.Parece que, no meu servidor, algo ou alguém correu em algum momento
sudo update-rc.d apache2 disable
que removeu todos os links simbólicos "S" e os substituiu por links simbólicos "K". Assim, apache, ou simplesmente não iniciando, o Apache ao inicializar qualquer um dos níveis de execução.Minha solução foi apenas reativar o Apache:
Agora o Apache inicia / para conforme o esperado ao iniciar ou alternar os níveis de execução.
NB:
Vale a pena notar que apenas correr
sudo update-rc.d apache2 defaults
novamente é insuficiente porque ele vê que existem links simbólicos e considera que eles são o que se deseja. Apenas responde com:fonte
sudo update-rc.d apache2 enable defaults
ele remove o que tenho e o coloca de volta. Eu tenhoK09apache2
em rc0, 1 e 6 e tenhoS91apache2
em rc2, rc3, rc4, rc5.service apache2 start
funciona bem, mas eu tenho que fazê-lo após cada reinicialização, pois não será iniciado automaticamente. Por outro lado, o mysql sempre inicia bem./var/log/syslog
e/var/log/apache2/error.log
. Envie-me uma mensagem com o link da pergunta e verei se posso ajudar.Nesse caso, descobri por que o Apache não iniciava. Não foi possível encontrar um rastro disso nos logs de inicialização, apenas na saída impressa na tela na inicialização.
Mas aqui está: a última linha do script
/etc/apache2/apache2.conf
falhou.Por quê?
Diz:
Include sites-enabled/
No entanto, dois dos sites que eu configurei estão localizados no meu próprio diretório pessoal - que é criptografado!
Portanto, na inicialização (durante a inicialização do Apache), esses sites não existem e o Apache falha e se recusa a executar.
Solução?
Eu criei um pequeno script chamado "disable_sites" e simbolicamente o em
/etc/rc0.d
e/etc/rc6.d
(encerramento e reinicialização):Também criei um script para reativar os sites sempre que efetuar login e o adicionei como um programa de inicialização nas Configurações do sistema. Então agora funciona!
Portanto, suponho que a lição aqui é que, quando o Apache falha inexplicavelmente durante o carregamento e você não encontra erros nos logs ou ao iniciar o servidor manualmente, verifique se todos os diretórios necessários estão disponíveis. Provavelmente isso também poderia ser resolvido de alguma outra maneira.
fonte
apachectl configtest
teria notificado você sobre a falta de permissões para acessar os arquivos enquanto estiver executando como daemon.Para outras pessoas que procuram (pesquisando no Google) esse problema, verifique se, se você executar:
você recebe
mais faça:
(desculpe no ubuntu o chkconfig equivalente é update-rc.d, veja a alternativa Chkconfig para o Ubuntu Server? )
fonte
Eu tive o mesmo problema e estou executando o Ubuntu 14 em uma instalação local do Vagrant. Eu removi o
/etc/apache2/sites-enabled
diretório e adicionei um link ao meu diretório pessoal, que obviamente está montado na minha unidade local de acordo com as configurações do Vagrant.Acontece que o apache não estava vendo o diretório porque o recurso ainda não estava montado. Reescrevi minha provisão no Vagrant para copiar o
sites-enabled
diretório em vez de adicionar um link simbólico.Também fiz
sudo update-rc.d apache2 enable
como sugeridoKarl Wilbur
para ter certeza de que o apache init estava ativado.fonte