J'ai installé Apache 2 à partir des sources sur ma machine Linux. apachectl -k start
fonctionne très bien, mais comment faire démarrer Apache au démarrage?
C'est sur une distribution Red Hat Linux:
Linux <hostname> 2.6.9-55.ELsmp # 1 SMP ven 20 avr 17:03:35 EDT 2007 i686 i686 i386 GNU/Linux
Vous souhaitez ajouter son script d'initialisation au niveau d'exécution approprié. Le script init 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. Fondamentalement, toutes ces commandes font un lien symbolique à partir de /etc/init.d/
vers le dossier de niveau d'exécution approprié dans /etc/
.
Voici ce qui a finalement fonctionné pour moi. Cela suppose que vous êtes l'utilisateur root.
Contenu de /etc/init.d/Apache2:
#!/bin/bash # # Script de démarrage Apache2 pour le serveur HTTP Apache # # chkconfig: 3 85 15 # description: Apache est un serveur World Wide Web. Il est utilisé pour servir\ # Fichiers HTML et CGI. /Usr/local/Apache2/bin/apachectl $ @
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 suivants:
Vérifiez si vous avez le script d'init httpd
dans le /etc/rc.d
répertoire. Si oui, vous pouvez simplement exécuter la commande suivante qui permet au service httpd de démarrer au démarrage.
chkconfig --level 345 httpd on
Si vous n'avez pas le script init, ajoutez simplement le /etc/rc.local
fichier avec apachectl -k start
(la commande pour démarrer Apache).
Comme vous l'avez installé par source, aucun script init ne sera 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 pouvez donc simplement y créer un lien symbolique 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 articles pour ajouter des liens pour appeler le script init aux niveaux d'exécution appropriés.
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 aux 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 procéder, assurez-vous que votre serveur est correctement configuré pour les restrictions de sécurité et d'accès.
Le script apachectl est conçu pour agir comme un script d'initialisation SysV standard; il peut démarrer, redémarrer et arrêter les arguments et les traduire en signaux appropriés vers httpd. Ainsi, vous pouvez souvent simplement lier apachectl au répertoire init approprié. Mais assurez-vous de vérifier les exigences exactes de votre système.
Sur Red Hat Linux, il existe un utilitaire utile appelé ntsysv qui vous permet de sélectionner les services que vous souhaitez démarrer dans votre niveau d'exécution actuel. Vous appelez également spécifiez le niveau d'exécution que vous souhaitez modifier lorsque vous démarrez l'utilitaire à l'aide de --level
.
Faites défiler jusqu'à httpd et appuyez sur Space donc une étoile apparaît dans la case de gauche. alors Tab a pris. presse Return pour sauvegarder et revenir au Shell.
J'ai trouvé qu'il s'installe à peu près par défaut. Je n'ai jamais été dans une position où il n'a pas été installé.
Cependant, vous devez d'abord installer le service en copiant le script de service dans /etc/init.d puis en exécutant:
chkconfig --add <script name>
chkconfig --levels 345 httpd
démarrera httpd dans les niveaux d'exécution 3,4,5.
chkconfig --list affichera tous les services et leurs niveaux d'exécution de démarrage actuels. 345 est typique d'un service réseau.
Cela dépend de votre saveur de Linux. En supposant que le fichier /etc/init.d/Apache2 a été créé, essayez:
chkconfig -a Apache2
ou
update-rc.d Apache2 defaults
L'un d'eux devrait fonctionner.