Ho ospitato i miei siti Web per molti anni ormai. Da quando sono passato da OS/2 a Linux più di 20 anni fa, ho usato Apache come software per server. Apache è solido, noto e abbastanza facile da configurare per un'installazione di base. Non è molto più difficile da configurare per una configurazione più complessa, come più siti Web.
Più risorse Linux
- Comandi Linux cheat sheet
- Cheat sheet sui comandi avanzati di Linux
- Corso online gratuito:Panoramica tecnica RHEL
- Cheat sheet della rete Linux
- Cheat sheet di SELinux
- Cheat sheet dei comandi comuni di Linux
- Cosa sono i container Linux?
- I nostri ultimi articoli su Linux
L'installazione e la configurazione del server web Apache devono essere eseguite come root. Anche la configurazione del firewall deve essere eseguita come root. L'utilizzo di un browser per visualizzare i risultati di questo lavoro dovrebbe essere eseguito come utente non root. (Uso l'utente student
sul mio host virtuale.)
Installazione
Nota:questo articolo è stato aggiornato utilizzando Fedora 33 con Apache 2.4.46. Se usi una distribuzione diversa o una versione diversa di Fedora, i tuoi comandi e le posizioni e il contenuto dei file di configurazione potrebbero essere diversi. Tuttavia, le righe di configurazione che devi modificare sono le stesse indipendentemente dalla distribuzione.
Il server web Apache è facile da installare. Con un comando puoi installarlo e tutte le dipendenze necessarie:
$ dnf install httpd
Tutti i file di configurazione per Apache si trovano in /etc/httpd/conf
e /etc/httpd/conf.d
. I dati per i siti Web che eseguirai con Apache si trovano in /var/www
per impostazione predefinita, ma puoi cambiarlo se lo desideri.
Configurazione
Il file di configurazione principale di Apache è /etc/httpd/conf/httpd.conf
. Contiene molte istruzioni di configurazione che non devono essere modificate per un'installazione di base. In effetti, è necessario apportare solo poche modifiche a questo file per rendere operativo un sito Web di base. Il file è molto grande, quindi, anziché ingombrare questo articolo con un sacco di cose non necessarie, mostrerò solo le direttive che devi modificare.
Per prima cosa, prenditi un po' di tempo e sfoglia il httpd.conf
file per familiarizzare con esso. Una delle cose che mi piace delle versioni Red Hat della maggior parte dei file di configurazione è il numero di commenti che descrivono le varie sezioni e le direttive di configurazione nei file. Il httpd.conf
file non fa eccezione, in quanto è abbastanza ben commentato. Usa questi commenti per capire cosa sta configurando il file.
Il primo elemento da modificare è Listen
istruzione, che definisce l'indirizzo IP e la porta su cui Apache deve ascoltare le richieste di pagina. In questo momento, devi solo rendere disponibile questo sito Web sulla macchina locale, quindi usa il localhost
indirizzo. La linea dovrebbe apparire così quando finisci:
Listen 127.0.0.1:80
Con questa direttiva impostata sull'indirizzo IP del localhost
, Apache ascolterà solo le connessioni dall'host locale. Se desideri che il server Web ascolti le connessioni da host remoti, utilizzerai l'indirizzo IP esterno dell'host.
La DocumentRoot
specifica la posizione dei file HTML che compongono le pagine del sito web. Non è necessario modificare quella linea perché punta già alla posizione standard. La linea dovrebbe apparire così:
DocumentRoot "/var/www/html"
L'RPM di installazione di Apache crea il /var/www
albero di directory. Se si desidera modificare la posizione in cui sono archiviati i file del sito Web, questo elemento di configurazione viene utilizzato per farlo. Ad esempio, potresti voler utilizzare un nome diverso per www
sottodirectory per rendere più esplicita l'identificazione del sito web. Potrebbe assomigliare a questo:
DocumentRoot "/var/mywebsite/html"
Queste sono le uniche modifiche alla configurazione di Apache necessarie per creare un semplice sito web. Per questo piccolo esercizio, è stata apportata una sola modifica a httpd.conf
file:il Listen
direttiva. Tutto il resto è già configurato per produrre un web server funzionante.
Tuttavia è necessaria un'altra modifica:aprire la porta 80 nel nostro firewall. Uso iptables come firewall, quindi cambio /etc/sysconfig/iptables
per aggiungere un'istruzione che consenta il protocollo HTTP. L'intero file ha questo aspetto:
# sample configuration for iptables service
# you can edit this manually or use system-config-firewall
# please do not ask us to add additional ports/services to this default configuration
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
La riga che ho aggiunto è la terza dal basso, che consente il traffico in entrata sulla porta 80. Ora ricarico la configurazione di iptables modificata.
[root@testvm1 ~]# cd /etc/sysconfig/ ; iptables-restore iptables
Crea il file index.html
Il index.html
file è il file predefinito che un server Web servirà quando accedi al sito Web utilizzando solo il nome di dominio e non un nome di file HTML specifico. Nel /var/www/html
directory, crea un file con il nome index.html
. Aggiungi il contenuto Hello World
. Non è necessario aggiungere alcun markup HTML per farlo funzionare. L'unico compito del server Web è fornire un flusso di dati di testo e il server non ha idea di quale sia la data o di come renderla. Trasmette semplicemente il flusso di dati all'host richiedente.
Dopo aver salvato il file, imposta la proprietà su apache.apache
.
[root@testvm1 html]# chown apache.apache index.html
Avvia Apache
Apache è molto facile da avviare. Le versioni correnti di Fedora usano systemd
. Eseguire i seguenti comandi per avviarlo e quindi per verificare lo stato del server:
[root@testvm1 ~]# systemctl start httpd
[root@testvm1 ~]# systemctl status httpd
● httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
Active: active (running) since Thu 2018-02-08 13:18:54 EST; 5s ago
Docs: man:httpd.service(8)
Main PID: 27107 (httpd)
Status: "Processing requests..."
Tasks: 213 (limit: 4915)
CGroup: /system.slice/httpd.service
├─27107 /usr/sbin/httpd -DFOREGROUND
├─27108 /usr/sbin/httpd -DFOREGROUND
├─27109 /usr/sbin/httpd -DFOREGROUND
├─27110 /usr/sbin/httpd -DFOREGROUND
└─27111 /usr/sbin/httpd -DFOREGROUND
Feb 08 13:18:54 testvm1 systemd[1]: Starting The Apache HTTP Server...
Feb 08 13:18:54 testvm1 systemd[1]: Started The Apache HTTP Server.
I comandi potrebbero essere diversi sul tuo server. Sui sistemi Linux che utilizzano gli script di avvio di SystemV, i comandi sarebbero:
[root@testvm1 ~]# service httpd start
Starting httpd: [Fri Feb 09 08:18:07 2018] [ OK ]
[root@testvm1 ~]# service httpd status
httpd (pid 14649) is running...
Se hai un browser web come Firefox o Chrome sul tuo host, puoi utilizzare l'URL localhost
sulla riga URL del browser per visualizzare la tua pagina web, semplice com'è. Puoi anche usare un browser web in modalità testo come Lynx per visualizzare la pagina web. Innanzitutto, installa Lynx (se non è già installato).
[root@testvm1 ~]# dnf -y install lynx
Quindi utilizzare il comando seguente per visualizzare la pagina Web.
[root@testvm1 ~]# lynx localhost
Il risultato è simile a questo nella mia sessione terminale. Ho cancellato molto spazio vuoto sulla pagina.
Hello World
<snip>
Commands: Use arrow keys to move, '?' for help, 'q' to quit, '<-' to go back.
Arrow keys: Up and Down to move. Right to follow a link; Left to go back.
H)elp O)ptions P)rint G)o M)ain screen Q)uit /=search [delete]=history list
Quindi, modifica il tuo index.html
file e aggiungi un po 'di markup HTML in modo che assomigli a questo:
<h1>Hello World</h1>
Ora aggiorna il browser. Per Lynx, usa la combinazione di tasti Ctrl+R. I risultati sembrano solo un po' diversi. Il testo è a colori, ed è così che Lynx visualizza le intestazioni se il tuo terminale supporta il colore, ed è ora centrato. In un browser GUI il testo sarebbe in un carattere grande.
Hello World
<snip>
Commands: Use arrow keys to move, '?' for help, 'q' to quit, '<-' to go back.
Arrow keys: Up and Down to move. Right to follow a link; Left to go back.
H)elp O)ptions P)rint G)o M)ain screen Q)uit /=search [delete]=history list
Pensieri di separazione
Come puoi vedere da questo piccolo esercizio, è facile configurare un server web Apache. Le specifiche varieranno a seconda della tua distribuzione e della versione di Apache fornita da quella distribuzione. Nel mio ambiente, questo è stato un esercizio piuttosto banale.
Ma c'è di più perché Apache è molto flessibile e potente. Il mese prossimo parlerò dell'hosting di più siti Web utilizzando una singola istanza di Apache.
Questo articolo è stato originariamente pubblicato nel 2018 ed è stato aggiornato dall'editore.