GNU/Linux >> Linux Esercitazione >  >> Linux

Come configurare un server web Apache

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.


Linux
  1. Come configurare più siti Web con il server Web Apache

  2. Come installare Apache Web Server su Centos 8

  3. Come installare il server Web Apache su Ubuntu

  4. Come installare e configurare il server Web Apache su Ubuntu 13.10

  5. Come posso verificare la presenza di errori di sintassi nella configurazione del mio server web Apache

Come installare Apache Web Server su Alpine Linux

Come installare il server Web Apache su Debian 11

Come installare Apache Web Server su Ubuntu 18.04

Come installare Apache Web Server su Ubuntu 20.04

Come ottimizzare il server Web Apache?

Come installare e configurare un server Web LAMP su Ubuntu 18.04