Lösung 1:
Sie möchten sein Init-Skript zum entsprechenden Runlevel hinzufügen. Das Init-Skript ist normalerweise /etc/init.d/apache2
wo Sie /etc/init.d/apache2 start
manuell ausführen könnten um es zu starten.
Auf Gentoo würden Sie schreiben:
rc-update add apache2 default
Unter Ubuntu/Debian funktioniert das:
sudo update-rc.d apache2 defaults
Unter Red Hat Linux/Fedora/CentOS zeigt ein wenig Googeln Folgendes:
chkconfig --add httpd
Es variiert ein wenig von Distribution zu Distribution, aber die Idee ist normalerweise dieselbe. Grundsätzlich stellen alle diese Befehle einen symbolischen Link von /etc/init.d/
her in den entsprechenden Runlevel-Ordner in /etc/
.
Lösung 2:
Hier ist, was endlich für mich funktioniert hat. Dies setzt voraus, dass Sie der Root-Benutzer sind.
- vi /etc/init.d/apache2 (bearbeiten Sie es wie unten gezeigt)
- chmod 755 /etc/init.d/apache2
- chkconfig --add apache2
- chkconfig --list apache2 (um zu überprüfen, ob es funktioniert hat)
Inhalt von /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]
Sie können den Runlevel abrufen, indem Sie /sbin/runlevel ausführen, was in meinem Fall 3 war. Und natürlich müssen Sie Ihre Version von apachectl aufrufen, die in meinem Fall /usr/local/apache2/bin/apachectl
warVielen Dank an Folgendes:
- Die Antwort von Evan Teran +1 für die Hilfe
- Die Antwort von Russell Heilling + 1 für die Hilfe
- man chkconfig
- Dieser Link von sysdigg, der die Informationen zum Runlevel enthielt.
Lösung 3:
Überprüfen Sie, ob Sie den httpd
haben init-Skript im /etc/rc.d
Verzeichnis. Wenn ja, dann können Sie einfach den folgenden Befehl ausführen, der den httpd aktiviert Dienst beim Booten starten.
chkconfig --level 345 httpd on
Wenn Sie das Init-Skript nicht haben, hängen Sie einfach den /etc/rc.local
an Datei mit apachectl -k start
(der Befehl zum Starten von Apache).
Lösung 4:
Da Sie über die Quelle installiert haben, wird kein Init-Skript im Verzeichnis /etc/init.d/ installiert. Die Apachectl-Binärdatei ist so konzipiert, dass sie mit Standard-Init-Skriptoptionen kompatibel ist, sodass Sie möglicherweise einfach einen Symlink darauf erstellen können, anstatt ein Wrapper-Skript zu erstellen (z. B. ln -s /usr/local/sbin/apachectl /etc/init.d/ Apache)
Sie können dann den in den anderen Beiträgen beschriebenen Verfahren folgen, um Links hinzuzufügen, um das Init-Skript auf den richtigen Runlevels aufzurufen.
Zitat:Apache-Dokumentation http://httpd.apache.org/docs/2.2/invoking.html
Ab Boot-Zeit
Wenn Sie möchten, dass Ihr Server nach einem Systemneustart weiterläuft, sollten Sie einen Aufruf von apachectl zu Ihren Systemstartdateien hinzufügen (normalerweise rc.local oder eine Datei in einem rc.N-Verzeichnis). Dadurch wird Apache als root gestartet. Bevor Sie dies tun, stellen Sie sicher, dass Ihr Server ordnungsgemäß für Sicherheit und Zugriffsbeschränkungen konfiguriert ist.
Das apachectl-Skript ist so konzipiert, dass es sich wie ein standardmäßiges SysV-Init-Skript verhält; Es kann die Argumente start, restart und stop nehmen und sie in die entsprechenden Signale für httpd übersetzen. Daher können Sie apachectl oft einfach in das entsprechende Init-Verzeichnis einbinden. Überprüfen Sie jedoch unbedingt die genauen Anforderungen Ihres Systems.