Nel nostro precedente articolo, "Come installare il server Web Apache su Linux", abbiamo spiegato come installare Apache su una macchina Linux. Ora, in questo articolo, daremo seguito alla configurazione di base di Apache che includerà
- Consenti traffico Apache tramite Firewall
- Gestione dei servizi Apache
- Configurazione di host virtuali in Apache
- Configura Apache per l'ascolto su una porta diversa
- Consenti/Nega l'accesso da indirizzi IP specifici
Prerequisiti
- Sistema Ubuntu 20.04
- Utente con privilegi sudo
- Un server web Apache installato
Nota: I comandi discussi in questo articolo sono stati testati su Ubuntu 20.04 LTS (Fossa focale). Gli stessi comandi sono validi anche per la distribuzione Debian.
Consentire il traffico Apache tramite Firewall
Se un firewall è abilitato sul tuo sistema operativo, dovrai consentire il traffico Apache attraverso di esso. Il server Apache per impostazione predefinita è in ascolto sulla porta 80 per HTTP e 443 per https. Per consentire il traffico HTTP (porta 80) attraverso il firewall, eseguire il seguente comando in Terminale:
$ sudo ufw allow 'Apache'
Per consentire il traffico HTTPS (porta 443) attraverso il firewall, eseguire il comando seguente in Terminale:
$ sudo ufw allow 'Apache Secure'
Per consentire il passaggio del traffico HTTP (porta 80) e HTTPS (porta 443) nel firewall, eseguire i seguenti comandi nel Terminale:
$ sudo ufw allow 'Apache Full'
Gestione dei servizi Apache
Dopo l'installazione, il servizio Apache si avvia automaticamente in esecuzione in background. Per visualizzare lo stato del servizio Apache, immetti il comando seguente in Terminale:
$ systemctl status apache2
Nell'output seguente, attivo (in esecuzione) lo stato mostra che il servizio Apache è attivo e in esecuzione senza problemi.
Per avviare manualmente il servizio Apache, utilizzare il comando seguente:
$ sudo systemctl start apache2
Per abilitare l'avvio automatico del servizio Apache all'avvio/avvio, utilizzare il comando seguente:
$ sudo systemctl enable apache2
Per riavviare il servizio Apache, utilizzare il comando seguente:
$ sudo systemctl restart apache2
Per arrestare il servizio Apache, utilizzare il comando seguente:
$ sudo systemctl stop apache2
Configurazione di host virtuali in Apache
L'host virtuale in Apache ti consente di eseguire una serie di siti Web da un singolo server Web Apache. Nella sezione seguente, configureremo un host virtuale per il nostro dominio “test.org”. Per più domini, segui gli stessi passaggi per ogni dominio.
Fase 1:crea una directory per il tuo dominio
Il primo passo sarà creare una directory per il tuo dominio. Se devi ospitare più domini, crea directory separate per ogni dominio. Per il nostro dominio test.org , creeremo la directory con il seguente comando:
$ sudo mkdir /var/www/test.org
Assicurati di sostituire test.org con il tuo nome di dominio.
Passaggio 2:imposta la proprietà e le autorizzazioni
La directory del nostro dominio è attualmente di proprietà dell'utente root. Per consentire ad altri utenti di modificare i file, dovremo modificare la proprietà della directory. Usa il seguente comando in Terminale fallo:
$ sudo chown -R $USER:$USER /var/www/ test.org
Inoltre, imposta le autorizzazioni richieste sulla directory del dominio. Il 755 nel comando seguente assegna autorizzazioni di lettura ed esecuzione a tutti mentre le autorizzazioni di lettura, scrittura ed esecuzione al proprietario del file.
$ sudo chmod -R 755 /var/www/ test.org
Fase 3:crea una pagina index.html di esempio per il tuo dominio
Ora crea un esempio index.html pagina per il tuo dominio per pubblicare alcuni contenuti. Crea un file index.html nel /var/www/test.org directory.
Stiamo usando l'editor Nano per questo scopo:
$ sudo nano /var/www/test.org/index.html
Aggiungi il seguente contenuto nel file.
<html> <head> <title>Your test.org server block is up!</title> </head> <body> <h1>This is a test page for test.org website!</h1> </body> </html>
Una volta terminate le modifiche, salva e chiudi index.html file.
Ora l'esempio index.html è stata creata una pagina per il nostro sito.
Fase 4:crea un nuovo file host virtuale
In Apaches esiste un file host virtuale predefinito che contiene le configurazioni per il server Web predefinito. Per il nostro dominio test.org , creeremo un file host virtuale separato.
Emetti il seguente comando in Terminale per creare il file host virtuale per il tuo dominio:
$ sudo nano /etc/apache2/sites-available/test.org.conf
Aggiungi i seguenti contenuti nel file.
<VirtualHost *:80>
ServerAdmin [email protected] ServerName test.org ServerAlias www.test.org DocumentRoot /var/www/test.org/html ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>
Assicurati di sostituire test.org con il tuo nome di dominio.
Una volta terminate le modifiche, salva e chiudi il file.
Fase 5:abilita il file host virtuale
Ora abiliteremo il file host virtuale che abbiamo creato nel passaggio precedente. Emetti il comando seguente in Terminale per farlo:
$ sudo a2ensite test.org.conf
Non stiamo usando il file host virtuale predefinito, quindi possiamo disabilitarlo. Usa il seguente comando per disabilitarlo:
$ sudo a2dissite 000-default.conf
Ora ricarica le configurazioni di Apache usando il seguente comando:
$ systemctl reload apache2
Fase 6:configura il file hosts (facoltativo)
Se non disponi di un vero nome di dominio e desideri solo testare la procedura utilizzando un qualsiasi dominio di prova, dovrai aggiungere una voce per il tuo dominio in /etc/hosts file.
Modifica /etc/hosts file utilizzando il seguente comando in Terminale:
$ sudo nano /etc/hosts
Aggiungi la seguente voce in questo file sostituendo l'IP_server e nome_dominio con l'indirizzo IP e il nome di dominio del tuo ambiente.
server_IP domain_name
Nel nostro esempio, la voce sarebbe:
192.168.72.157 test.org
Ora salva e chiudi il file /etc/hosts.
Fase 6:verifica la presenza di errori
Ora testa le configurazioni di Apache per eventuali errori. Utilizzare il comando seguente per farlo:
$ sudo apache2ctl configtest
Se tutto è a posto, verrà visualizzata la Sintassi OK messaggio nell'output. Potresti anche visualizzare il seguente messaggio di avviso nel risultato del test.
Per eliminare questo messaggio, aggiungi Nomeserver direttiva nella /etc/apache2/apache2.conf file.
Modifica /etc/apache2/apache2.conf file utilizzando il seguente comando in Terminale:
$ sudo nano /etc/apache2/apache2.conf
Aggiungi la seguente voce nel file sostituendo test.org con il tuo nome di dominio:
ServerName test.org
Salva e chiudi il file.
Ancora una volta, verifica Apache per errori di configurazione. Ora vedrai che l'avviso è stato rimosso.
Passaggio 7:verifica se Apache sta servendo il tuo nome di dominio
Ora, prova la configurazione navigando al seguente indirizzo nella barra degli indirizzi del tuo browser web.
http://domain_name
Nel nostro esempio, sarebbe:
http://test.org
La pagina seguente indica che l'host virtuale è stato configurato correttamente e che Apache sta servendo il nostro nome di dominio.
Configura Apache per l'ascolto su una porta diversa
Per impostazione predefinita, Apache ascolta il traffico Web sulla porta 80. In alcuni casi potrebbe essere necessario modificare la porta Apache, ad esempio quando qualche altro servizio è già in ascolto sulla porta 80, l'ISP ha bloccato la porta 80 o si desidera impedire la porta 80 attacchi. Tuttavia, ricorda che dopo aver modificato la porta predefinita, devi puntare i browser alla nuova porta come http://nome_dominio:porta_nmuber.
1. Modifica /etc/apache2/ports.conf file utilizzando il comando seguente:
$ sudo nano /etc/apache2/ports.conf
Questa è la visualizzazione predefinita di ports.conf file in cui puoi vedere la porta 80 configurata come porta predefinita.
Cambia questo numero di porta in qualsiasi altro valore che vuoi che il server Apache ascolti.
Salva e chiudi il file ports.conf una volta terminata la modifica.
2. Ora dovrai configurare il tuo host virtuale per l'ascolto sulla nuova porta. Per modificare il file dell'host virtuale, utilizzare il seguente comando in Terminale:
$ sudo nano /etc/apache2/sites-avaialble/test.org.conf file
Nel comando precedente, assicurati di sostituire test.org.conf con il nome del file dell'host virtuale.
Trova la voce
Nota :per impostare un numero di porta, scegli un valore compreso tra 1024 e 65535.
Al termine, salva e chiudi il file.
Apache può anche essere configurato per l'ascolto su più porte. Ad esempio, per impostare le porte 80 e 9090 come porte di ascolto, aggiungi le seguenti voci in /etc/apache2/ports.conf file:
Listen 80 Listen 9090
Anche in /etc/apache2/sites-avaialble/test.org.conf file, aggiungi una voce nel modo seguente:
<VirtualHost *:80 *:9090>
Al termine, riavvia il servizio Apache utilizzando il seguente comando in Terminale:
$ sudo systemctl restart apache2
Consenti/Nega l'accesso da indirizzi IP specifici
Nella sezione seguente, vedremo come consentire/negare a determinati indirizzi IP l'accesso al nostro sito. Utilizzeremo il file .htaccess per questo scopo.
Passaggio 1:abilita apache .htaccess
Innanzitutto, dovremo abilitare il file .htaccess. Per fare ciò, immetti il seguente comando in Terminale:
$ sudo nano /etc/apache2/sites-available/test.org.conf
Dopo il blocco VirtualHost, aggiungi le seguenti righe nel file:
<Directory /var/www/html/example.com/public_html> Options Indexes FollowSymLinks AllowOverride All Require all granted </Directory>
Ora salva il file e riavvia Apache usando il seguente comando:
$ sudo systemctl apache2 restart
Fase 2:crea il file .htaccess
Ora dovremo creare il file .htaccess. Passa alla directory principale dell'host virtuale.
$ cd /var/www/test.org
Quindi crea qui il file .htaccess usando il seguente comando:
$ sudo nano .htaccess
Fase 3:Consenti/Nega indirizzi IP
Per negare determinati indirizzi IP dall'accesso al tuo sito web, dovrai aggiungere voci nel file .htaccess nel modo seguente:
order deny, allow # To deny IP address 192.168.9.8 allow from 192.168.9.8 # To deny all IP addresses from 192.168.9.0 to 192.168.9.255 allow from 192.168.9 To allow For this purpose, IP addresses from accessing your website, you will need to add entries in the .htaccess file in the following way:
order deny, allow # To deny all IP addresses Deny from all # It will allow the IP address 192.168.9.30 allow from 192.168.9.30 # It will allow all IP addresses from 192.168.9.0 through 192.168.9.255
allow from 192.168.9
Questo è tutto ciò che c'è da fare! In questo articolo, hai appreso le basi delle configurazioni di Apache su Linux. Ciò include la configurazione del firewall, la gestione dei servizi Apache, la configurazione di host virtuali, la modifica delle porte di ascolto predefinite e l'autorizzazione/negazione dell'accesso ai siti da parte di IP specifici. Per ulteriori informazioni sulle configurazioni di Apache, visita la documentazione ufficiale del server Apache all'indirizzo http://httpd.apache.org/docs/.