J'ai installé Apache pendant longtemps dans le cadre de la configuration de l'environnement de développement sur mon ordinateur portable.
Cependant, depuis que je l'ai arrêté il y a quelques mois, il ne démarre plus automatiquement au démarrage. J'ai ce problème sur mon ordinateur portable à la maison ET sur mon ordinateur portable au travail.
Dans les deux cas, j'ai installé Apache dans Ubuntu 10.10 il y a quelques mois, je l'ai utilisé pendant plusieurs semaines sans problème, mais un jour je l'ai arrêté et maintenant il ne démarre plus automatiquement. J'ai essayé d'exécuter la mise à jour rc manuellement, mais on m'a dit que le script init était déjà utilisé.
Cependant, le démarrer / redémarrer manuellement avec
sudo service apache2 start/restart
fonctionne bien. Dans les deux cas, je l'ai laissé jusqu'à la mise à niveau vers 11.04, car j'espérais que cela serait résolu par la nouvelle version. Mais ce n'est pas! Je serais reconnaissant si quelqu'un pouvait me dire comment redémarrer Apache automatiquement.
J'ajoute cette réponse en fonction des problèmes récents que j'ai rencontrés avec les mêmes symptômes.
D'abord quelques données de base:
/etc/init.d/
dossier pour démarrer / arrêter les services./etc/init.d/
scripts, stockés dans les/etc/rc#.d/
dossiers, pour démarrer / arrêter des services basés sur le "niveau d'exécution"./etc/rc1.d/
, les niveaux d' exécution 2/etc/rc2.d/
, etc.sudo update-rc.d apache2 defaults
ce qui crée les liens symboliques appropriés dans les/etc/rc#.d/
dossiers.Il semble donc que sur mon serveur quelque chose, ou quelqu'un, à un moment donné, a
sudo update-rc.d apache2 disable
supprimé tous les liens symboliques "S" et les a remplacés par des liens symboliques "K". Ainsi tuant, ou tout simplement ne démarrant pas, Apache lors de l'initialisation de l'un des niveaux d'exécution.Ma solution était juste de réactiver Apache:
Maintenant, Apache démarre / s'arrête comme prévu lors du démarrage ou du changement de niveau d'exécution.
NB:
Il est à noter que la simple exécution
sudo update-rc.d apache2 defaults
est insuffisante car elle voit que des liens symboliques existent et considère qu'ils sont ce que l'on veut. Il répond simplement par:la source
sudo update-rc.d apache2 enable defaults
il supprime ce que j'ai, puis le remet en place. J'aiK09apache2
en rc0, 1 et 6, et j'aiS91apache2
en rc2, rc3, rc4, rc5.service apache2 start
fonctionne bien, mais je dois le faire après chaque redémarrage car il ne démarre pas automatiquement. mysql, en revanche, démarre toujours bien./var/log/syslog
et/var/log/apache2/error.log
. Envoyez-moi un message avec le lien vers la question et je verrai si je peux vous aider.Dans ce cas, j'ai découvert pourquoi Apache ne démarrerait pas. Je n'ai pas trouvé de trace de cela dans les journaux de démarrage, uniquement dans la sortie imprimée à l'écran au démarrage.
Mais voilà: la dernière ligne du script a
/etc/apache2/apache2.conf
échoué.Pourquoi?
Ça dit:
Include sites-enabled/
Cependant, deux des sites que j'ai créés se trouvent dans mon propre répertoire personnel - qui est crypté!
Ainsi, au démarrage (au démarrage d'Apache), ces sites n'existent pas et Apache échoue et refuse de s'exécuter.
Solution?
J'ai créé un petit script appelé "disable_sites" et l'ai lié symboliquement à
/etc/rc0.d
et/etc/rc6.d
(arrêt et redémarrage):J'ai également créé un script pour réactiver les sites chaque fois que je me connecte et l'ai ajouté en tant que programme de démarrage dans mes paramètres système. Alors maintenant ça marche!
Donc, je suppose que la leçon ici est que lorsque Apache ne parvient pas à se charger inexplicablement pendant le démarrage et que vous ne trouvez aucune erreur dans les journaux ou lors du démarrage manuel du serveur, vérifiez si tous les répertoires dont il a besoin sont disponibles. Cela pourrait probablement aussi être résolu d'une autre manière.
la source
apachectl configtest
vous aurait informé du manque d'autorisations d'accès aux fichiers, lors de l'exécution en tant que démon.Pour ceux qui recherchent (googler) ce problème, vérifiez que si vous exécutez:
vous recevez
sinon:
(désolé pour l'équivalent d'ubuntu chkconfig est update-rc.d voir l' alternative Chkconfig pour Ubuntu Server? )
la source
J'ai eu le même problème et j'utilise Ubuntu 14 sur une configuration locale de Vagrant. J'ai supprimé le
/etc/apache2/sites-enabled
répertoire et ajouté un lien vers mon répertoire personnel, qui est bien sûr monté sur mon lecteur local selon les configurations Vagrant.Il s'avère qu'apache ne voyait pas le répertoire car la ressource n'était pas encore montée. J'ai réécrit ma disposition sur Vagrant pour simplement copier le
sites-enabled
répertoire au lieu d'ajouter un lien symbolique.J'ai également fait
sudo update-rc.d apache2 enable
comme suggéré parKarl Wilbur
pour être sûr qu'apache init était activé.la source