Apache HTTP Server (Apache), è uno dei più popolari software per server web multipiattaforma gratuiti e open source, rilasciato secondo i termini della licenza Apache 2.0. Apache è popolare come parte della configurazione LAMP, essendo la A nell'acronimo. La funzionalità del server Apache può essere estesa con i numerosi moduli disponibili.
PHP è un linguaggio di scripting generico orientato allo sviluppo web. È uno dei più diffusi linguaggi di programmazione per il web. Strumenti popolari come WordPress sono codificati utilizzando php. Anche le grandi aziende come Facebook usano pesantemente php.
Contenuti correlati
- Come installare e configurare PHP e Apache (stack LAMP) su Ubuntu 20.04
- Come installare Apache e PHP (stack LAMP) su Rocky Linux/Centos 8
- Come installare e configurare PHP e Nginx (LEMP) su Debian 11
Prerequisiti
Per seguire questa guida, assicurati di avere quanto segue:
- Un server Debian 11 aggiornato
- Accesso root al server o Utente con accesso sudo
- Accesso a Internet
Indice dei contenuti
- Assicurarsi che il server sia aggiornato
- Installazione di PHP su Debian 11
- Installazione di Apache su Debian 11
- Configurazione dell'host virtuale
1. Garantire che il server sia aggiornato
Prima di procedere, è sempre buona norma assicurarsi che il server sia aggiornato. Usa questi comandi per raggiungere questo obiettivo
sudo apt update
sudo apt upgrade -y
2. Installazione di PHP su Debian 11
PHP è disponibile nei repository Debian 11 predefiniti. L'ultima versione di PHP al momento della stesura di questo blog è PHP 7.4.
Installa PHP e alcuni pacchetti comuni usando questo comando:
sudo apt install -y \
php \
php-common \
php-cli
Controlla la versione installata di PHP
$ apt-cache policy php
php:
Installed: 2:7.4+76
Candidate: 2:7.4+76
Version table:
*** 2:7.4+76 500
500 http://cdn-aws.deb.debian.org/debian bullseye/main amd64 Packages
100 /var/lib/dpkg/status
Controlla la versione php installata usando questo comando:
$ php -v
PHP 7.4.25 (cli) (built: Oct 23 2021 21:53:50) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
with Zend OPcache v7.4.25, Copyright (c), by Zend Technologies
3. Installazione di Apache su Debian 11
I pacchetti Apache sono disponibili nei repository Debian 11 predefiniti come apache2
. Installalo usando questo comando:
sudo apt install -y apache2
Conferma i pacchetti installati usando questo comando:
$ apt-cache policy apache2
apache2:
Installed: 2.4.51-1~deb11u1
Candidate: 2.4.51-1~deb11u1
Version table:
*** 2.4.51-1~deb11u1 500
500 http://security.debian.org/debian-security bullseye-security/main amd64 Packages
100 /var/lib/dpkg/status
2.4.48-3.1+deb11u1 500
500 http://cdn-aws.deb.debian.org/debian bullseye/main amd64 Packages
Il servizio verrà avviato per impostazione predefinita. Verifica lo stato usando questo comando:
$ 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 Tue 2021-12-14 03:01:04 UTC; 5min ago
Docs: https://httpd.apache.org/docs/2.4/
Main PID: 19103 (apache2)
Tasks: 6 (limit: 4626)
Memory: 12.8M
CPU: 59ms
CGroup: /system.slice/apache2.service
├─19103 /usr/sbin/apache2 -k start
├─19105 /usr/sbin/apache2 -k start
├─19106 /usr/sbin/apache2 -k start
├─19107 /usr/sbin/apache2 -k start
├─19108 /usr/sbin/apache2 -k start
└─19109 /usr/sbin/apache2 -k start
Dec 14 03:01:04 ip-10-2-40-188 systemd[1]: Starting The Apache HTTP Server...
Dec 14 03:01:04 ip-10-2-40-188 systemd[1]: Started The Apache HTTP Server.
Per abilitare il servizio all'avvio, usa questo comando
sudo systemctl enable apache2
Per confermare che Apache sia installato e funzioni correttamente, visita l'indirizzo IP del server nel browser (http://server_ip). Se non conosci l'IP del server, ottienilo usando questo comando nel tuo terminale:
curl -4 icanhazip.com
Se tutto va bene, dovresti vedere la Pagina predefinita di Apache2 Debian .
4. Configurazione degli host virtuali
Con Apache, è possibile ospitare più siti sullo stesso server su cui è in esecuzione Apache. Questo può sempre essere ottenuto utilizzando più domini, ognuno dei quali rappresenta un sito ospitato dal server.
Gli host virtuali Apache sono simili ai blocchi del server Nginx. Ogni host virtuale avrà i dettagli di configurazione per un singolo host. Puoi avere tutti gli host virtuali che vuoi.
In questo esempio utilizzeremo il dominio site1.citizix.com
per l'host virtuale ma sii libero di utilizzare il dominio di tua scelta. Tieni presente che il DNS per il dominio da utilizzare dovrebbe essere già configurato per puntare all'indirizzo IP del server.
Confermalo con:
dig -t A site1.citizix.com
Creazione di directory e contenuto di esempio
La pagina predefinita di Apache è configurata come un host virtuale predefinito che serve contenuti da /var/www/html
. È buona norma creare la directory del tuo sito in /var/www
directory poiché è una buona pratica servire da lì.
Creiamo una directory per il nostro sito con il seguente comando:
sudo mkdir /var/www/site1.citizix.com
Creiamo un semplice index.php
pagina da servire dal nostro sito. Avrai bisogno di vim installato per farlo funzionare, altrimenti usa questo comando:
sudo apt install -y vim
Modifica il file:
sudo vim /var/www/site1.citizix.com/index.php
Aggiungi contenuto al file:
<?php phpinfo(); ?>
Infine, assicuriamoci che $USER
l'utente possiede la directory del sito:
sudo chown -R $USER:$GROUP /var/www/site1.citizix.com
Creazione di un host virtuale
I file Apache Virtual host specificano la configurazione di ciascun sito e indicano al server Web Apache come rispondere alle varie richieste di dominio.
Le configurazioni di Apache verranno archiviate nella directory /etc/httpd/conf.d/
. Creiamo una configurazione per il nostro sito:
sudo vim /etc/apache2/sites-available/site1.citizix.com.conf
Aggiungi il seguente contenuto:
<VirtualHost *:80>
ServerName site1.citizix.com
ServerAlias site1.citizix.com
DocumentRoot /var/www/site1.citizix.com
DirectoryIndex index.php
ErrorLog /var/log/apache2/site1.citizix.com.error.log
CustomLog /var/log/apache2/site1.citizix.com.requests.log combined
</VirtualHost>
Questo dirà ad Apache quanto segue:
ServerName
eServerAlias
– nome dell'host da servireDocumentRoot
– dove trovare direttamente la radice che contiene i documenti web pubblicamente accessibiliDirectoryIndex
– Il file che Apache servirà quando si accede al sitoErrorLog
– dove archiviare i log degli errori per questo sitoCustomLog
– dove archiviare i registri delle richieste per questo particolare sito
Salva e chiudi il file quando hai finito
Abilita il sito
$ sudo a2ensite site1.citizix.com
Enabling site site1.citizix.com.
To activate the new configuration, you need to run:
systemctl reload apache2
Quindi ricarica la configurazione di apache2
sudo systemctl reload apache2
Test dell'host virtuale
Ora che la configurazione è a posto, dobbiamo verificare che tutto funzioni come previsto. Dato che abbiamo creato il index.php
file sopra, accediamoci andando su http://server_url/
. Nel mio caso questo è http://site1.citizix.com/
. Dovresti vedere la pagina delle informazioni php.
Conclusione
In questa guida, siamo riusciti a configurare Apache per servire il sito PHP su un server Debian 11.