GNU/Linux >> Linux Esercitazione >  >> Linux

Come faccio ad avviare Apache all'avvio su Linux?

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.

  1. vi /etc/init.d/apache2 (modificalo come mostrato di seguito)
  2. chmod 755 /etc/init.d/apache2
  3. chkconfig --add apache2
  4. 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.


Linux
  1. Come installare Apache Kafka su Rocky Linux 8

  2. Come ottenere la dimensione della directory in Linux

  3. Come eseguire uno script di shell all'avvio

  4. Come ottenere il nome host dall'IP (Linux)?

  5. Come ottenere netmask da bash?

Come installare Apache 2.4 e PHP 7.4 su Amazon Linux

Come ottenere il tuo indirizzo IP su Linux

Come iniziare con Arch Linux

Come installare Apache su Arch Linux

Come installare Apache Solr su Oracle Linux 8

Come ottenere un elenco di collegamenti simbolici su Linux