Introduzione

Il server HTTP Apache è il web server più popolare al mondo. È un server HTTP gratuito, open source e multipiattaforma che offre potenti funzionalità che possono essere estese da un'ampia varietà di moduli. Le seguenti istruzioni descrivono come installare e gestire il server Web Apache sul computer CentOS 8.

Prerequisiti

Prima di iniziare con il tutorial, assicurati di aver effettuato l'accesso come utente con privilegi sudo.

Se desideri installare Apache su un server in remoto continua a leggere, altrimenti salta il primo paragrafo "Connessione al Server" e leggi il successivo.

Connessione al Server

Per accedere al server, è necessario conoscere l'indirizzo IP. Avrai anche bisogno dell'username e della password per l'autenticazione. Per connettersi al server come utente root digitare il seguente comando:

ssh [email protected]_DEL_SERVER

Successivamente sarà necessario inserire la password dell'utente root.

Se non utilizzate l'utente root potete connettervi con un'altro nome utente utilizzando lo stesso comando, quindi modificare root con il vostro nome_utente:

ssh [email protected]_DEL_SERVER

Successivamente vi verrà chiesto di inserire la password del vostro utente.

La porta standard per connettersi tramite ssh è la 22, se il vostro server utilizza una porta diversa, sarà necessario specificarla utilizzando il parametro -p, quindi digitare il seguente comando:

ssh [email protected]_DEL_SERVER -p PORTA

Installare Apache

Apache è disponibile nei repository CentOS predefiniti e l'installazione è piuttosto semplice.

Su CentOS e RHEL viene chiamato il pacchetto Apache e il servizio httpd. Per installare il pacchetto, eseguire il comando seguente:

sudo dnf install httpd

Una volta completata l'installazione, abilitare e avviare il servizio Apache:

sudo systemctl enable httpd
sudo systemctl start httpd

Regolare il firewall

Se il tuo server è protetto da un firewall, devi aprire le porte HTTP e HTTPS 80 e 443. Utilizzare i seguenti comandi per aprire le porte necessarie:

sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload

Verificare l'installazione di Apache

Ora che Apache è installato e in esecuzione sul nostro server CentOS 8, possiamo verificare lo stato e la versione del servizio Apache, con:

sudo systemctl status httpd
● httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
   Active: active (running) since Wed 2020-01-15 23:44:50 CET; 1min 49s ago
     Docs: man:httpd.service(8)
 Main PID: 11064 (httpd)
   Status: "Total requests: 12; Idle/Busy workers 100/0;Requests/sec: 0.11; Bytes served/sec: 5.8KB/sec"
    Tasks: 213 (limit: 12251)
   Memory: 25.8M
   CGroup: /system.slice/httpd.service
           ├─11064 /usr/sbin/httpd -DFOREGROUND
           ├─11065 /usr/sbin/httpd -DFOREGROUND
           ├─11066 /usr/sbin/httpd -DFOREGROUND
           ├─11067 /usr/sbin/httpd -DFOREGROUND
           └─11068 /usr/sbin/httpd -DFOREGROUND
sudo httpd -v
Server version: Apache/2.4.37 (centos)
Server built:   Dec 23 2019 20:45:34

Infine per verificare se tutto funziona correttamente, apri l'indirizzo IP o il nome dominio del tuo server http://YOUR_IP nel browser che preferisci e vedrai la pagina di benvenuto predefinita di Apache CentOS 8 come mostrato di seguito:

Gestione del servizio Apache

È possibile gestire il servizio Apache allo stesso modo di qualsiasi altra unità di sistema.

Per interrompere il servizio Apache, eseguire:

sudo systemctl stop httpd

Per avviarlo di nuovo, digitare:

sudo systemctl start httpd

Per riavviare il servizio Apache:

sudo systemctl restart httpd

Per ricaricare il servizio Apache dopo aver apportato alcune modifiche alla configurazione:

sudo systemctl reload httpd

Se si desidera disabilitare l'avvio del servizio Apache all'avvio:

sudo systemctl disable httpd

E per riattivarlo di nuovo:

sudo systemctl enable httpd

Struttura e best practice del file di configurazione di Apache

  • Tutti i file di configurazione di Apache si trovano nella directory /etc/httpd.
  • Il file di configurazione principale di Apache è /etc/httpd/conf/httpd.conf.
  • Tutti i file di configurazione che terminano con .conf e si trovano nella directory /etc/httpd/conf.d sono inclusi nel file di configurazione principale di Apache.
  • I file di configurazione responsabili del caricamento di vari moduli Apache si trovano nella directory /etc/httpd/conf.modules.d.
  • Per una migliore manutenibilità, si consiglia di creare un file di configurazione separato (vhost) per ciascun dominio.
  • I nuovi file vhost Apache devono terminare con .conf ed essere archiviati nella directory /etc/httpd/conf.d. Puoi avere tutti i host necessari.
  • È una buona idea seguire una convenzione di denominazione standard, ad esempio se il tuo nome di dominio è mydomain.com il nome del file di configurazione dovrebbe essere /etc/httpd/conf.d/mydomain.com.conf
  • I file di registro di Apache (access_loge error_log) si trovano nella directory /var/log/httpd/. Si consiglia di avere file di registro diversi access e error per ciascun vhost.
  • È possibile impostare la directory principale del documento di dominio in qualsiasi posizione desiderata. Le posizioni più comuni per webroot includono:
  • /home/<user_name>/<site_name>
  • /var/www/<site_name>
  • /var/www/html/<site_name>
  • /opt/<site_name>

Conclusione

Apache è stato installato correttamente sul server CentOS 8. Ora sei pronto per iniziare a distribuire le tue applicazioni e utilizzare Apache come server Web o proxy.