Solution 1 :
Vous souhaitez ajouter son script d'initialisation au niveau d'exécution approprié. Le script d'initialisation est généralement /etc/init.d/apache2
où vous pouvez exécuter manuellement /etc/init.d/apache2 start
pour le démarrer.
Sur Gentoo, vous écririez :
rc-update add apache2 default
Sur Ubuntu/Debian cela fonctionne :
sudo update-rc.d apache2 defaults
Sur Red Hat Linux/Fedora/CentOS, une petite recherche sur Google montre ceci :
chkconfig --add httpd
Cela varie un peu d'une distribution à l'autre, mais l'idée est généralement la même. En gros, toutes ces commandes font un lien symbolique depuis /etc/init.d/
dans le dossier de niveau d'exécution approprié dans /etc/
.
Solution 2 :
Voici ce qui a finalement fonctionné pour moi. Cela suppose que vous êtes l'utilisateur root.
- vi /etc/init.d/apache2 (modifiez-le comme indiqué ci-dessous)
- chmod 755 /etc/init.d/apache2
- chkconfig --add apache2
- chkconfig --list apache2 (pour vérifier que cela a fonctionné)
Contenu de /etc/init.d/apache2 :
#!/bin/bash # # apache2 Startup script for the Apache HTTP Server # # chkconfig: 3 85 15 # description: Apache is a World Wide Web server. It is used to serve \ # HTML files and CGI. /usr/local/apache2/bin/apachectl [email protected]
Vous pouvez obtenir le niveau d'exécution en exécutant /sbin/runlevel, qui dans mon cas était 3. Et bien sûr, vous devez appeler votre version d'apachectl, qui dans mon cas était /usr/local/apache2/bin/apachectl
Merci aux personnes suivantes :
- La réponse d'Evan Teran +1 pour l'aide
- La réponse de Russell Heilling + 1 pour l'aide
- man chkconfig
- Ce lien de sysdigg qui contenait les informations sur le niveau d'exécution.
Solution 3 :
Vérifiez si vous avez le httpd
script d'initialisation dans le /etc/rc.d
annuaire. Si oui, alors vous pouvez simplement exécuter la commande suivante qui active le httpd service à démarrer au moment du démarrage.
chkconfig --level 345 httpd on
Si vous n'avez pas le script d'initialisation, ajoutez simplement le /etc/rc.local
fichier avec apachectl -k start
(la commande pour démarrer Apache).
Solution 4 :
Comme vous avez installé par source, il n'y aura pas de script init installé dans le répertoire /etc/init.d/. Le binaire apachectl est conçu pour être compatible avec les options de script d'initialisation standard, vous pourrez donc simplement créer un lien symbolique vers celui-ci plutôt que de créer un script wrapper (par exemple, ln -s /usr/local/sbin/apachectl /etc/init.d/ apache)
Vous pouvez ensuite suivre les procédures décrites dans les autres messages pour ajouter des liens pour invoquer le script d'initialisation aux niveaux d'exécution corrects.
Citation :Documentation Apache http://httpd.apache.org/docs/2.2/invoking.html
Démarrage au démarrage
Si vous souhaitez que votre serveur continue de fonctionner après un redémarrage du système, vous devez ajouter un appel à apachectl dans les fichiers de démarrage de votre système (généralement rc.local ou un fichier dans un répertoire rc.N). Cela démarrera Apache en tant que root. Avant de faire cela, assurez-vous que votre serveur est correctement configuré pour la sécurité et les restrictions d'accès.
Le script apachectl est conçu pour agir comme un script d'initialisation SysV standard ; il peut prendre les arguments start, restart et stop et les traduire en signaux appropriés pour httpd. Ainsi, vous pouvez souvent simplement lier apachectl dans le répertoire init approprié. Mais assurez-vous de vérifier les exigences exactes de votre système.