Installazione
Installazione su Linux Ubuntu o Linux Mint
Aggiornamento delle cache del software:
sudo apt update
Installazione di Apache:
sudo apt install apache2
L'installazione automaticamente abilita il servizio al prossimo reboot e lo fa partire immediatamente. Controllare lo stato del servizio con:
sudo systemctl status apache2
● apache2.service - The Apache HTTP Server
Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
Active: active (running) since Wed 2024-03-06 14:54:49 CET; 57s ago
Docs: https://httpd.apache.org/docs/2.4/
Main PID: 2825 (apache2)
Tasks: 55 (limit: 5137)
Memory: 4.9M
CPU: 58ms
CGroup: /system.slice/apache2.service
├─2825 /usr/sbin/apache2 -k start
├─2829 /usr/sbin/apache2 -k start
└─2830 /usr/sbin/apache2 -k start
Mar 06 14:54:49 apache systemd[1]: Starting The Apache HTTP Server...
Mar 06 14:54:49 apache apachectl[2824]: AH00558: apache2: Could not reliably determine the server's>
Mar 06 14:54:49 apache systemd[1]: Started The Apache HTTP Server.
Il servizio è di stile nowait: vengono lanciati un numero di processi figli, pronti a ricevere e gestire connessioni da client.
Il numero di processi figli varia dinamicamente col numero statistico di richieste da un minimo a un massimo, entrambi configurabili.
Controllo di Apache
Controllo tramite systemd
In un Linux completo il servizio è gestito da systemd, col comando systemctl
:
sudo systemctl start apache2
- lancia il serviziosudo systemctl stop apache2
- ferma il serviziosudo systemctl enable apache2
- abilita il servizio, cioè lo lancia automaticamente al prossimo bootsudo systemctl disable apache2
- disabilita il servizio, cioè NON lo lancia automaticamente al prossimo bootsudo systemctl status apache2
- da un rapporto sullo stato del servizio
Controllo tramite apache2 o apache2ctl
In un sistema ove systemd è assente, il server apache si può controllare col comando apache2
.
La sintassi si ottiene chiedendo aiuto:
apache2 -h
Usage: apache2 [-D name] [-d directory] [-f file]
[-C "directive"] [-c "directive"]
[-k start|restart|graceful|graceful-stop|stop]
[-v] [-V] [-h] [-l] [-L] [-t] [-T] [-S] [-X]
Si può usare questo comando per avere la versione di Apache:
apache2 -v
Server version: Apache/2.4.52 (Ubuntu)
Server built: 2023-10-26T13:44:44
Esiste anche il comando apache2ctl
, che ha le stesse funzionalità di controllo di apache2
.
Il comando apache2ctl
, a differenza di apache2
, legge le variabili d'ambiente di Apache. In molti casi è da preferirsi.
Verifichiamo l'accessibilità della pagina principale del sito, aprendo un browser a localhost
.
La pagina è complessa e informativa.
Installazione su Docker Alpine Linux
Lanciamo un contenitore Alpine:
docker run -d --name alp -p 8888:80 alpine sleep 1000000
Mappiamo la porta 80 del contenitore alla porta 8888 dello host per evitare collisioni con l'installazione precedente di Apache sullo host.
Colleghiamoci al contenitore:
docker exec -ti alp sh
Installiamo Apache:
apk add apache2 apache2-utils
Il comando di controllo è httpd
, con la stessa sintassi di apache2
sulla versione Ubuntu.
Questo comando di controllo è indispensabile, poichè il contenitore Alpine non ha systemd.
Lanciamo Apache:
httpd -k start
Da un warning sistemabile in seguito con la variazione di configurazione. Anche la versione Ubuntu da lo stesso warning, ma non è comparso a video, bensi inserito in un log appropriato.
Controlliamo la partenza:
ps wax
PID USER TIME COMMAND
1 root 0:00 sleep 1000000
22 root 0:00 httpd -k start
23 apache 0:00 httpd -k start
24 apache 0:00 httpd -k start
25 apache 0:00 httpd -k start
26 apache 0:00 httpd -k start
27 apache 0:00 httpd -k start
29 apache 0:00 httpd -k start
50 root 0:00 sh
55 root 0:00 ps wax
Controlliamo la versione:
httpd -v
Server version: Apache/2.4.58 (Unix)
Server built: Nov 24 2023 15:41:14
Accediamo alla pagina principale con curl
:
apk add curl
curl localhost
<html><body><h1>It works!</h1></body></html>
E' molto più semplificata.
Usciamo dal contenitore:
exit
Possiamo accedere dallo host alla pagina web principale offerta dal contenitore Alpine, aprendo un browser alla URL localhost:8888
, oppure col comando:
curl localhost:8888