Soluzione 1:
Vuoi aggiungere il suo script init al livello di esecuzione appropriato. Lo script init è tipicamente /etc/init.d/apache2
dove puoi eseguire manualmente /etc/init.d/apache2 start
per avviarlo.
Su Gentoo scriveresti:
rc-update add apache2 default
Su Ubuntu/Debian funziona:
sudo update-rc.d apache2 defaults
Su Red Hat Linux/Fedora/CentOS un po' di googling mostra questo:
chkconfig --add httpd
Varia un po' da distribuzione a distribuzione, ma l'idea di solito è la stessa. Fondamentalmente, tutti questi comandi creano un collegamento simbolico da /etc/init.d/
nella cartella di run-level appropriata in /etc/
.
Soluzione 2:
Ecco cosa alla fine ha funzionato per me. Ciò presuppone che tu sia l'utente root.
- vi /etc/init.d/apache2 (modificalo come mostrato di seguito)
- chmod 755 /etc/init.d/apache2
- chkconfig --add apache2
- chkconfig --list apache2 (per verificare che abbia funzionato)
Contenuto di /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]
Puoi ottenere il runlevel eseguendo /sbin/runlevel, che nel mio caso era 3. E ovviamente devi chiamare la tua versione di apachectl, che nel mio caso era /usr/local/apache2/bin/apachectl
Grazie a quanto segue:
- La risposta di Evan Teran +1 per l'aiuto
- La risposta di Russell Heilling + 1 per l'aiuto
- man chkconfig
- Questo collegamento da sysdigg che conteneva le informazioni sul runlevel.
Soluzione 3:
Controlla se hai il httpd
init nel /etc/rc.d
directory. In caso affermativo, puoi semplicemente eseguire il seguente comando che abilita httpd service da avviare al momento dell'avvio.
chkconfig --level 345 httpd on
Se non hai lo script init, aggiungi semplicemente /etc/rc.local
file con apachectl -k start
(il comando per avviare Apache).
Soluzione 4:
Poiché hai installato per sorgente, non ci sarà uno script init installato nella directory /etc/init.d/. Il binario apachectl è progettato per essere compatibile con le opzioni di script init standard, quindi potresti essere in grado di collegarti semplicemente ad esso piuttosto che creare uno script wrapper (ad esempio ln -s /usr/local/sbin/apachectl /etc/init.d/ apache)
Puoi quindi seguire le procedure descritte negli altri post per aggiungere collegamenti per richiamare lo script init ai runlevel corretti.
Citazione:documentazione di Apache http://httpd.apache.org/docs/2.2/invoking.html
Avvio all'avvio
Se vuoi che il tuo server continui a funzionare dopo un riavvio del sistema, dovresti aggiungere una chiamata ad apachectl ai tuoi file di avvio del sistema (tipicamente rc.local o un file in una directory rc.N). Questo avvierà Apache come root. Prima di fare ciò assicurati che il tuo server sia correttamente configurato per la sicurezza e le restrizioni di accesso.
Lo script apachectl è progettato per agire come uno script init SysV standard; può prendere gli argomenti start, restart e stop e tradurli nei segnali appropriati per httpd. Quindi spesso puoi semplicemente collegare apachectl nella directory init appropriata. Ma assicurati di controllare i requisiti esatti del tuo sistema.