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 OpenSUSE Leap 15.3
- Come installare e configurare PHP e Nginx (LEMP) su OpenSUSE Leap 15.3
- Come installare e configurare PHP e Apache (stack LAMP) su Ubuntu 20.04
- Come installare e configurare PHP e Nginx (LEMP) su Ubuntu 20.04
- Come installare e configurare PHP e Apache (stack LAMP) su Debian 11
- Come installare e configurare PHP e Nginx (LEMP) su Debian 11
- Come installare e configurare PHP e Nginx (LEMP) su Rocky Linux/Alma Linux 8
Prerequisiti
Per seguire questa guida, assicurati di avere quanto segue:
- Un server Rocky Linux 8 aggiornato
- Accesso root o Utente con accesso sudo che può installare pacchetti e modificare configurazioni
- Accesso a Internet
Indice dei contenuti
- Assicurarsi che il server sia aggiornato
- Installazione di PHP su Rocky Linux 8
- Installazione di Apache su Rocky Linux 8
- Configurazione dell'host virtuale
1. Garantire che il server sia aggiornato
Prima di procedere, assicuriamoci di avere gli ultimi pacchetti nel nostro sistema. Esegui il comando seguente per aggiornare il sistema:
$ sudo dnf -y update
Last metadata expiration check: 1:45:37 ago on Sun 29 Aug 2021 08:52:16 AM UTC.
Dependencies resolved.
Nothing to do.
Complete!
2. Installazione di PHP in Rocky Linux 8
Ora che Apache è configurato, dovremo installare PHP. Affinché i file php possano essere serviti, php deve essere impostato nel sistema. In questa guida installeremo php 7.4.
PHP 7.4 non è ancora disponibile nei repository predefiniti. Il Remi Repository è il repository perfetto per installare php7.4. Remi repo è un repository YUM gratuito e stabile principalmente per lo stack PHP. Contiene pacchetti per le ultime versioni di PHP.
Per abilitare Remi Repository nel nostro server Centos:
sudo dnf install dnf-utils http://rpms.remirepo.net/enterprise/remi-release-8.rpm
Conferma che il repository remi è stato installato e abilitato con questo comando:
$ sudo dnf repolist
repo id repo name
appstream CentOS Linux 8 - AppStream
baseos CentOS Linux 8 - BaseOS
epel Extra Packages for Enterprise Linux 8 - x86_64
epel-modular Extra Packages for Enterprise Linux Modular 8 - x86_64
extras CentOS Linux 8 - Extras
remi-modular Remi's Modular repository for Enterprise Linux 8 - x86_64
remi-safe Safe Remi's RPM repository for Enterprise Linux 8 - x86_64
Dovresti vedere i repository remi come parte dell'elenco.
Ora che il repository è stato installato, cerchiamo php. Usa questo comando:
$ sudo dnf module list php
Last metadata expiration check: 2:14:53 ago on Sun 29 Aug 2021 08:52:16 AM UTC.
CentOS Linux 8 - AppStream
Name Stream Profiles Summary
php 7.2 [d] common [d], devel, minimal PHP scripting language
php 7.3 common [d], devel, minimal PHP scripting language
php 7.4 common [d], devel, minimal PHP scripting language
Remi's Modular repository for Enterprise Linux 8 - x86_64
Name Stream Profiles Summary
php remi-7.2 common [d], devel, minimal PHP scripting language
php remi-7.3 common [d], devel, minimal PHP scripting language
php remi-7.4 common [d], devel, minimal PHP scripting language
php remi-8.0 common [d], devel, minimal PHP scripting language
Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled
Dalla lista. possiamo vedere che quello predefinito è 7.2. Esecuzione di un dnf install php
installerà il 7.2
che non vogliamo. Attiviamo il 7.4 usando questo comando:
sudo dnf module enable php:remi-7.4
Se per qualche motivo non funziona, puoi ripristinare il modulo esistente con questo comando:
sudo dnf module reset php
Ora che il repository è stato abilitato, installiamo php con questo comando:
sudo dnf install -y php php-common php-cli
Una volta di successo. conferma la versione installata con questo comando:
$ php -v
PHP 7.4.23 (cli) (built: Aug 24 2021 16:33:30) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
with Zend OPcache v7.4.23, Copyright (c), by Zend Technologies
Ora che Apache e php sono stati installati correttamente, configuriamolo per servire un po' di traffico
3. Installazione di Apache su Rocky Linux 8
Ora che abbiamo aggiornato i nostri pacchetti, installiamo Apache. Apache è disponibile nei repository predefiniti come pacchetto httpd
. Puoi controllare le informazioni al riguardo usando il seguente comando:
$ sudo dnf info httpd
Last metadata expiration check: 1:48:56 ago on Sun 29 Aug 2021 08:52:16 AM UTC.
Installed Packages
Name : httpd
Version : 2.4.37
Release : 39.module_el8.4.0+778+c970deab
Architecture : x86_64
Size : 4.3 M
Source : httpd-2.4.37-39.module_el8.4.0+778+c970deab.src.rpm
Repository : @System
From repo : appstream
Summary : Apache HTTP Server
URL : https://httpd.apache.org/
License : ASL 2.0
Description : The Apache HTTP Server is a powerful, efficient, and extensible
: web server.
Installiamolo usando dnf:
sudo dnf install -y httpd
Avvio e abilitazione del servizio
Per impostazione predefinita il servizio non è avviato. Iniziamo con questo comando:
sudo systemctl start httpd
Per confermare che funziona come previsto, usa il comando status e assicurati che indichi come active
come mostrato di seguito:
$ sudo systemctl start httpd
$ sudo systemctl status httpd
● httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
Drop-In: /usr/lib/systemd/system/httpd.service.d
└─php-fpm.conf
Active: active (running) since Sun 2021-08-29 10:43:52 UTC; 17s ago
Docs: man:httpd.service(8)
Main PID: 84446 (httpd)
Status: "Running, listening on: port 80"
Tasks: 213 (limit: 23800)
Memory: 31.0M
CGroup: /system.slice/httpd.service
├─84446 /usr/sbin/httpd -DFOREGROUND
├─84447 /usr/sbin/httpd -DFOREGROUND
├─84448 /usr/sbin/httpd -DFOREGROUND
├─84449 /usr/sbin/httpd -DFOREGROUND
└─84450 /usr/sbin/httpd -DFOREGROUND
Aug 29 10:43:52 test-app-server systemd[1]: Starting The Apache HTTP Server...
Aug 29 10:43:52 test-app-server httpd[84446]: AH00558: httpd: Could not reliably determine the server's fully qualified doma>
Aug 29 10:43:52 test-app-server systemd[1]: Started The Apache HTTP Server.
Aug 29 10:43:52 test-app-server httpd[84446]: Server configured, listening on: port 80
Se hai un firewall abilitato, assicurati di abilitare http
e https
traffico per consentire l'accesso ad Apache.
Per confermare che php 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 Apache come mostrato di seguito:
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 saremo liberi 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 dnf install -y vim
Modifica il file:
sudo vim /var/www/site1.citizix.com/index.php
Aggiungi contenuto al file:
<?php phpinfo(); ?>
Infine, assicuriamoci che apache
l'utente possiede la directory del sito:
sudo chown -R apache.apache /var/www/site1.citizix.com
Creazione di un host virtuale
I file dell'host Apache Virtual 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/httpd/conf.d/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/httpd/site1.citizix.com.error.log
CustomLog /var/log/httpd/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
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, consente di accedervi andando su http://server_url/
. Nel mio caso questo è http://site1.citizix.com/
. Dovresti vedere una pagina come quella mostrata di seguito:
Conclusione
In questa guida, siamo riusciti a configurare Apache per servire il traffico su un server Rocky Linux 8.