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 Nginx (LEMP) su OpenSUSE Leap 15.3
- Come installare lo stack Apache PHP 7.4 (LAMP) su Rocky Linux/Centos 8
- 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 OpenSUSE leap 15.3 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 OpenSUSE Leap 15.3
- Installazione di Apache su OpenSUSE Leap 15.3
- Configurazione dell'host virtuale
- Test della 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 zypper refresh
sudo zypper update -y
2. Installazione di PHP su OpenSUSE Leap 15.3
PHP è disponibile nei repository OpenSUSE 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 zypper install -y \
php \
php-cli \
php-gd \
php-mbstring
Controlla la versione installata di PHP
~> zypper info php7
Repository 'Update repository with updates from SUSE Linux Enterprise 15' is out-of-date. You can run 'zypper refresh' as root to update it.
Loading repository data...
Reading installed packages...
Information for package php7:
-----------------------------
Repository : Update repository with updates from SUSE Linux Enterprise 15
Name : php7
Version : 7.4.6-3.29.1
Arch : x86_64
Vendor : SUSE LLC <https://www.suse.com/>
Installed Size : 10.3 MiB
Installed : Yes
Status : up-to-date
Source package : php7-7.4.6-3.29.1.src
Summary : Interpreter for the PHP scripting language version 7
Description :
PHP is a server-side HTML embedded scripting language designed
primarily for web development but also used as a general-purpose
programming language.
This package contains the standard implementation of PHP, namely Zend
PHP. Included are the PHP command-line binary and the configuration
file (php.ini). This package must be installed in order to use PHP.
Additionally, extension modules and server modules (e.g. for Apache)
may be installed.
Additional documentation is available in package php-doc.
Controlla la versione php installata usando questo comando:
~> php -v
PHP 7.4.6 (cli) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
3. Installazione di apache su OpenSUSE Leap 15.3
I pacchetti Apache sono disponibili nei repository OpenSUSE Leap 15.3 predefiniti come apache2
. Installalo usando questo comando:
sudo zypper install -y apache2
Conferma i pacchetti installati usando questo comando:
~> zypper info apache2
Loading repository data...
Reading installed packages...
Information for package apache2:
--------------------------------
Repository : Update repository with updates from SUSE Linux Enterprise 15
Name : apache2
Version : 2.4.43-3.32.1
Arch : x86_64
Vendor : SUSE LLC <https://www.suse.com/>
Installed Size : 4.3 MiB
Installed : Yes
Status : up-to-date
Source package : apache2-2.4.43-3.32.1.src
Summary : The Apache Web Server
Description :
This version of httpd is a major release of the 2.4 stable branch,
and represents the best available version of Apache HTTP Server.
New features include Loadable MPMs, major improvements to OCSP support,
mod_lua, Dynamic Reverse Proxy configuration, Improved Authentication/
Authorization, FastCGI Proxy, New Expression Parser, and a Small Object
Caching API.
See /usr/share/doc/packages/apache2/, http://httpd.apache.org/, and
http://httpd.apache.org/docs-2.4/upgrading.html.
Il servizio non verrà avviato per impostazione predefinita.
sudo systemctl start apache2
Verifica lo stato usando questo comando:
~> sudo systemctl status apache2
● apache2.service - The Apache Webserver
Loaded: loaded (/usr/lib/systemd/system/apache2.service; disabled; vendor preset: disabled)
Active: active (running) since Wed 2021-12-22 06:58:45 UTC; 53s ago
Main PID: 27333 (httpd-prefork)
Status: "Processing requests..."
Tasks: 6
CGroup: /system.slice/apache2.service
├─27333 /usr/sbin/httpd-prefork -DSYSCONFIG -C PidFile /var/run/httpd.pid -C Include /etc/apache2/sysconfig.d//loadmodule.conf -C Include /etc/apache2/sysconfig.d//global.conf -f /etc/apache>
├─27340 /usr/sbin/httpd-prefork -DSYSCONFIG -C PidFile /var/run/httpd.pid -C Include /etc/apache2/sysconfig.d//loadmodule.conf -C Include /etc/apache2/sysconfig.d//global.conf -f /etc/apache>
├─27341 /usr/sbin/httpd-prefork -DSYSCONFIG -C PidFile /var/run/httpd.pid -C Include /etc/apache2/sysconfig.d//loadmodule.conf -C Include /etc/apache2/sysconfig.d//global.conf -f /etc/apache>
├─27342 /usr/sbin/httpd-prefork -DSYSCONFIG -C PidFile /var/run/httpd.pid -C Include /etc/apache2/sysconfig.d//loadmodule.conf -C Include /etc/apache2/sysconfig.d//global.conf -f /etc/apache>
├─27343 /usr/sbin/httpd-prefork -DSYSCONFIG -C PidFile /var/run/httpd.pid -C Include /etc/apache2/sysconfig.d//loadmodule.conf -C Include /etc/apache2/sysconfig.d//global.conf -f /etc/apache>
└─27344 /usr/sbin/httpd-prefork -DSYSCONFIG -C PidFile /var/run/httpd.pid -C Include /etc/apache2/sysconfig.d//loadmodule.conf -C Include /etc/apache2/sysconfig.d//global.conf -f /etc/apache>
Dec 22 06:58:45 ip-10-2-40-44 systemd[1]: Starting The Apache Webserver...
Dec 22 06:58:45 ip-10-2-40-44 systemd[1]: Started The Apache Webserver.
Per abilitare il servizio all'avvio, usa questo comando
sudo systemctl enable apache2
Se hai un firewall installato e abilitato sul tuo computer, ricorda di consentire il traffico verso Apache2 server web tramite il firewall prima di passare al passaggio successivo.
$ sudo firewall-cmd --permanent --add-port=80/tcp $ sudo firewall-cmd --permanent --add-port=443/tcp $ sudo firewall-cmd --reload
Affinché Apache possa servire file php
sudo zypper install -y apache2-mod_php7
Quindi abilita il modulo php7
sudo a2enmod php7
Infine riavvia Apache2 per applicare l'aggiunta del modulo
sudo systemctl restart apache2
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 /srv/www/htdocs
. È buona norma creare la directory del tuo sito in /srv/www
directory poiché è una buona pratica servire da lì.
Creiamo una directory per il nostro sito con il seguente comando:
sudo mkdir -p /srv/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 zypper install -y vim
Modifica il file:
sudo vim /srv/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 wwwrun:wwwrun /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/apache2/conf.d/site1.citizix.com.conf
Aggiungi il seguente contenuto:
<VirtualHost *:80>
ServerName site1.citizix.com
ServerAlias site1.citizix.com
ServerAdmin [email protected]
DocumentRoot /srv/www/site1.citizix.com
ErrorLog /var/log/apache2/site1.citizix.com.error.log
CustomLog /var/log/apache2/site1.citizix.com.requests.log combined
<Directory "/srv/www/site1.citizix.com">
Options Indexes
AllowOverride All
Require all granted
DirectoryIndex index.php
</Directory>
</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
Testa la configurazione
~> sudo apachectl configtest
Syntax OK
Quindi ricarica la configurazione di apache2
sudo systemctl reload apache2
5. Testare la configurazione dell'host virtuale
Per testare la configurazione, apri il browser e carica il dominio che hai impostato. Nel mio caso è http://site1.citizix.com
. Dovresti vedere la pagina delle informazioni php.
Se non hai ancora configurato le tue impostazioni DNS o semplicemente non vuoi che il sito sia ancora attivo, puoi modificare il file hosts del tuo computer. Per fare ciò, usa il seguente comando nella CLI del tuo computer locale
sudo vim /etc/hosts
Quindi, aggiungi l'indirizzo IP del tuo vero server seguito dal nome di dominio che stai configurando, ad esempio:
# Virtual Hosts Local Test
10.2.11.11 site1.citizix.com
Ora dovresti essere in grado di salvare il file e accedervi da un browser web.
Se qualcosa non funziona come previsto, puoi controllare i log del server virtualhost usando questo
tail -f /var/log/apache2/site1.citizix.com.*
Conclusione
In questa guida, siamo riusciti a configurare Apache per servire il sito PHP su un server Ubuntu 20.04.