Il termine server web può essere usato per fare riferimento sia all’hardware che al software, o entrambi che lavorano insieme. Ai fini di questa guida, ci concentreremo sul lato software e vedremo come è possibile ospitare un sito web sul tuo box Linux.
A web server is a software program that receives and responds to client requests via the HTTP/HTTPS protocols. Its primary purpose is to display website content which, oftentimes, is in the form of text, images, and video.
A web server can either serve static or dynamic content. Static content, as the name infers, refers to content that hardly changes and is bound to remain the same. The server sends back content to the user’s browser as is.
Il contenuto dinamico è contenuto che cambia spesso o viene costantemente aggiornato. Per servire contenuti dinamici, un server web deve anche lavorare insieme a un server di database e a linguaggi di scripting lato server.
Questa guida illustrerà come configurare un server web Apache per ospitare un sito web sul tuo sistema Linux gratuitamente.
Tabella dei contenuti
Requisiti
Per seguire questa guida, assicurati di avere quanto segue in posizione.
- A dedicated Public IP address can be obtained from your ISP.
- A Linux box, which can be a Linux server installation of your preferred OS variant. For this guide, we will use Debian 11.
Ecco alcuni guide che possono fornirti informazioni sull’installazione di un server Linux.
- Come Installare un Server Minimo Debian 11 (Bullseye)
- Come Installare un Server Minimo Debian 10 (Buster)
- Come Installare Ubuntu 20.04 Server
- Come Installare Rocky Linux 9 Server
- Come Installare AlmaLinux 9 Server
- Come Installare RHEL 9 Gratuitamente
Hai anche bisogno di un server LAMP installato, che è un acronimo di Linux, Apache e MySQL (questo può anche essere MariaDB). Ecco alcune guide su come installare il pacchetto LAMP in Linux.
- Come installare LAMP su Debian 10 Server
- Come installare la stack LAMP in Ubuntu 20.04
- Come installare LAMP su Rocky Linux 9/8
- Come installare la stack LAMP in AlmaLinux 9/8
- Come installare LAMP su RHEL 9/8
- Come ospitare un sito web su un server Linux
In questa sezione, procederemo e discuteremo i componenti principali di un server web.
Cos’è Apache?
Apache è un popolare server web multipiattaforma gratuito e open source rilasciato sotto la licenza Apache 2.0. È uno dei server web più utilizzati con una quota di mercato del 32,2%.
Per controllare l’ultima versione di Apache disponibile e se è installato sul tuo server, esegui il comando:
# apt-cache policy apache2 (On Debian-based OS)
Dall’output, puoi vedere il parametro Installato: (nessuno) implicando che non è ancora installato. Ottieni anche informazioni sulla versione più recente offerta dal repository Debian / Ubuntu, che in questo caso è 2.4.52.

Sulle moderne distribuzioni Red Hat, puoi verificare la disponibilità di Apache utilizzando il seguente comando dnf come segue.
# dnf search httpd

Dall’output sopra, puoi vedere che il pacchetto Apache httpd è disponibile per il download. Se Apache non è installato sul tuo sistema, utilizza i gestori di pacchetti ‘apt’ o ‘dnf’ per installare Apache come mostrato.
Su sistemi basati su Debian:
$ sudo apt install apache2 -y $ sudo systemctl start apache2 $ sudo systemctl enable apache2 $ sudo systemctl status apache2

Su sistemi basati su Red Hat:
# dnf install httpd -y # systemctl start httpd # systemctl enable httpd # systemctl status httpd

Cos’è MariaDB?
A fork of MySQL, MariaDB is one of the most popular and open-source relational database management systems. Nowadays, it’s preferred to MySQL due to its faster speeds in replication and performing queries as well as security and a vast array of storage engines.
Per installare MariaDB, su sistemi basati su Debian:
$ sudo apt install mariadb-server mariadb-client -y $ sudo systemctl start mariadb $ sudo systemctl enable mariadb $ sudo systemctl status mariadb
Il seguente output mostra che MariaDB è installato e in esecuzione come previsto.

Per installare MariaDB, su sistemi basati su RHEL:
# dnf install mariadb-server -y # systemctl start mariadb # systemctl enable mariadb # systemctl status mariadb

Cos’è PHP?
PHP è un acronimo ricorsivo per PHP Hypertext Preprocessor, che è un linguaggio di scripting generale molto popolare principalmente utilizzato nello sviluppo web.
Per installare PHP, su sistemi basati su Debian:
$ sudo apt update $ sudo apt upgrade $ sudo apt install ca-certificates apt-transport-https software-properties-common $ sudo add-apt-repository ppa:ondrej/php $ sudo apt update $ sudo apt install php8.0 libapache2-mod-php8.0
Per installare PHP, su sistemi basati su RHEL, è necessario prima abilitare il repository EPEL.
$ sudo dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm [RHEL 9] $ sudo dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm [RHEL 8]
Successivamente, abilitare il repository Remi, che offre la versione più recente di PHP su sistemi basati su RHEL.
$ sudo dnf install -y https://rpms.remirepo.net/enterprise/remi-release-9.rpm [RHEL 8] $ sudo dnf install -y https://rpms.remirepo.net/enterprise/remi-release-8.rpm [RHEL 8]
Una volta abilitati i repository EPEL e Remi sul sistema, è possibile installare PHP come mostrato.
# dnf module list php # dnf module enable php:remi-8.0 -y # dnf install php php-cli php-common
Con tutti i componenti installati, ora puoi costruire il tuo sito web utilizzando il CMS WordPress, che è un software che facilita lo sviluppo e la gestione di un sito web senza che l’utente abbia necessariamente conoscenze delle lingue di progettazione web come HTML, CSS, PHP e Javascript.
Creare un Semplice Sito Web Utilizzando WordPress in Linux
Per dimostrazione, installeremo WordPress su Debian 11 e RHEL 9 sistemi, che fornirà un sito web di esempio che può essere ulteriormente personalizzato secondo le tue preferenze.
Questa sezione presuppone che tu abbia già installato la pila LAMP.
Passo 1: Installare Moduli PHP Aggiuntivi
Per procedere, installa ulteriori moduli PHP richiesti da WordPress come mostrato.
Per installare i moduli PHP, su sistemi basati su Debian:
$ sudo apt install php libapache2-mod-php php-pear php-cgi php-common php-mbstring php-zip php-net-socket php-gd php-mysql php-bcmath
Per installare i moduli PHP, su sistemi basati su RHEL:
# dnf install php-gd php-soap php-intl php-mysqlnd php-pdo php-bcmath php-curl php-zip php-xmlrpc wget
Passo 2: Creare un Database per WordPress
Scritto in PHP, WordPress è un sistema di gestione del contenuto gratuito e open source guidato da dati. Un database è un componente essenziale di WordPress.
Il database viene utilizzato per memorizzare tutti i post del blog, le pagine, le categorie, i commenti, i temi, i plugin e i file di configurazione di WordPress.
Per creare un database per WordPress, accedi al server di database MariaDB:
$ sudo mysql -u root -p
Successivamente, crea un database come mostrato
CREATE DATABASE wordpress_db;
Successivamente, crea un utente del database e assegna tutti i privilegi all’utente sul database.
GRANT ALL PRIVILEGES ON wordpress_db.* to wordpress_user@localhost identified by 'P@ssword321';
Quindi, alla fine, ricarica le tabelle dei privilegi per salvare le modifiche apportate ed esci dalla base di dati.
FLUSH PRIVILEGES; QUIT;
Passo 3: Scarica WordPress
Con la base di dati in posizione, procedi e scarica il file tarball di WordPress più recente utilizzando il comando wget.
$ wget https://wordpress.org/latest.tar.gz
Una volta scaricato, estrai il file compresso utilizzando il comando tar.
$ tar -xvzf latest.tar.gz
Il comando estrae il contenuto del file in una cartella chiamata wordpress. Sposta o copia la cartella nella Document Root per il webserver Apache.
$ sudo mv wordpress/ /var/www/html/
Successivamente, assegna i seguenti permessi e diritti di proprietà.
$ sudo chmod 755 -R /var/www/html/wordpress/
$ sudo chown -R www-data:www-data /var/www/html/wordpress/
Passo 4: Crea un Virtual Host Apache per WordPress
Il termine virtual host si riferisce alla pratica di ospitare più siti web su un singolo server. Se intendi ospitare più siti web su un singolo server, devi creare un virtual host per ogni sito web.
In questo caso, devi creare un Virtual host per il sito WordPress come segue.
$ sudo nano /etc/apache2/sites-available/wordpress.conf [On Debian] # vi /etc/httpd/conf/httpd.conf [On RHEL]
Incolla le seguenti linee di codice per definire il virtual host. Per la direttiva ServerName, fornisci l’indirizzo IP del server o il nome di dominio completo, che dovrebbe puntare all’indirizzo IP pubblico dedicato.
<VirtualHost *:80> ServerAdmin admin@your_domain.com DocumentRoot /var/www/html/wordpress ServerName 192.168.0.100 <Directory /var/www/html/wordpress> Options FollowSymlinks AllowOverride All Require all granted </Directory> ErrorLog ${APACHE_LOG_DIR}/your-domain.com_error.log CustomLog ${APACHE_LOG_DIR}/your-domain.com_access.log combined </VirtualHost>
Salva le modifiche ed esci dal file.
Per connettersi al database, sono necessarie alcune modifiche aggiuntive. Quindi, naviga nella cartella wordpress.
$ cd /var/www/html/wordpress/
Successivamente, aggiorna il file wp-config.php con il contenuto del file wp-config-sample.php.
$ cp wp-config-sample.php wp-config.php $ sudo nano wp-config.php
In seguito, aggiorna il nome del database, il nome utente db e le direttive della password con i dettagli del database.
Successivamente, abilita il nuovo sito WordPress come segue nei sistemi basati su Debian.
$ sudo ln -s /etc/apache2/sites-available/wordpress.conf /etc/apache2/sites-enabled/wordpress.conf $ sudo a2ensite wordpress $ sudo a2enmod rewrite $ sudo a2dissite 000-default
Per rendere effettive le modifiche, riavvia Apache.
$ sudo systemctl restart apache2 [On Debian] # systemctl restart httpd [On RHEL]
Fase 4: Completa la configurazione di WordPress su un browser
Per completare la configurazione, visita l’indirizzo IP del tuo server web come indicato:
http://server-ip
Dovresti visualizzare la pagina di benvenuto di WordPress come mostrato. Seleziona la tua lingua preferita e clicca su ‘Continua’ (Continue).

Successivamente, inserisci i dettagli del sito.

Poi clicca su ‘Installa WordPress’ (Install WordPress) per completare la configurazione di WordPress.

Se tutto è andato bene, riceverai una conferma che l’installazione è stata completata con successo. Per effettuare il login, clicca sul pulsante ‘Accedi’ (Log In).

Questo ti porta alla dashboard di WordPress come puoi vedere. A questo punto, puoi sperimentare con vari temi per migliorare l’aspetto del tuo sito di esempio.

Passaggio 5: Accedi a WordPress utilizzando il Port Forwarding
Dato che stai auto-ospitando il tuo server web da un sistema Linux a casa o dalla tua Rete Locale (LAN), il passo successivo è renderlo accessibile agli utenti esterni o agli utenti al di fuori della tua LAN (Rete Locale). Ecco dove entra in gioco il port forwarding.
Il port forwarding, anche chiamato mappatura di porte, è una tecnica che consente ai dispositivi esterni di accedere a server o risorse all’interno di una rete privata su Internet. L’intera idea è quella di accedere alle reti private dall’esterno, senza la quale sarebbe impossibile poiché i dispositivi esterni non possono comunicare con gli indirizzi IP interni.
Nella tua configurazione, è necessario inoltrare la porta su cui il server web è in ascolto, (nella maggior parte dei casi, questa è la porta 80 per il traffico HTTP o la porta 443 per HTTPS) così come l’indirizzo IP privato statico del server web.
Quindi, accedi al router e vai alla sezione di inoltro delle porte. Nel nostro esempio, stiamo utilizzando il router DLink per inoltrare le porte del server web (80 e 443) e l’IP privato (192.168.0.100) all’IP pubblico dedicato assegnato dall’ISP.
Nel tuo caso, specifica le porte e l’IP privato del server web e salva le modifiche.

Per salvare le modifiche, potrebbe essere necessario riavviare il router. Quindi, vai avanti e fallo esattamente.
Una volta che il reindirizzamento della porta è stato eseguito correttamente, ora è possibile raggiungere il proprio server web al di fuori della propria rete tramite l’indirizzo IP pubblico.
Conclusione
In questa guida abbiamo dimostrato come è possibile auto-ospitare il proprio server web utilizzando Apache su una macchina Linux. Il vostro feedback su questa guida è benvenuto.