Guida Apache2
In questa guida vedremo come configurare Apache per servire una semplice pagina HTML.
Prima di iniziare è bene indicare le specifiche del sistema sul quale verranno effettuate le operazioni descritte nel tutorial. Il Sistema Operativo è Debian 10.0, o Debian Buster. Buster come il cagnolino di Toy Story, le release di Debian prendono il nome dai personaggi del celebre film d’animazione. La versione di Apache installata è la 2.4.38.
Creazione file index.html
Spostiamoci in /var/www/html, e creiamo un file index.html digitando:
touch index.html
Il nome del file è molto importante: Apache di default è settato per servire file il cui nome è index, mentre l’estensione può essere html o php: assegnando un nome diverso si otterrà un errore. Naturalmente si può modificare questo comportamento del server, nel prosieguo vedremo come.
Apriamo il il file appena creato, e copiamo e incolliamo:
<h1>Hello World<h1>
In genere questo è sufficiente a far comparire Hello World sulla pagina raggiungibile dal browser all’indirizzo:
http://localhost
In molti casi, potrebbe essere già presente un index.html che mostra delle informazioni su Apache2.
A cosa serve il file .htaccess?
Il file htacces è un documento testuale che serve per svolgere delle operazioni a livello di directory. In altre parole, questo documento detta delle regole al server, gli da indicazioni su cosa fare e come deve funzionare. Ogni volta che il server riceve una richiesta, esegue una scansione per trovare eventuali file htaccess all’interno della directory. I file .htaccess generalmente servono a dare indicazioni sul percorso di un contenuto, o a capire se è necessaria una password per accedere a pagine protette.
Vediamo qualche esempio.
Cambiare nome del file da servire
Abbiamo già visto che Apache, di default serve il file index.html, tramite htacces possiamo dirgli di servire un file che abbia un nome diverso. Creiamo il file .htaccess in /var/www/html e inseriamo la stringa:
DirectoryIndex nome_a_scelta.html
Ora verrà servito nome_a_scelta.html, anzichè index.html.
Fare un reindirizzamento 301
Forziamo tutte le richieste HTTP per esempio.com a essere redirette su www.esempio.com
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www.esempio.com$ [NC]
RewriteRule ^(.*)$ http://www.esempio.com/$1 [L,R=301]
Fare un reindirizzamento da HTTP a HTTPS
Utilizziamo queste righe di codice per dirottare tutto il traffico dalla porta 80 alla porta 443, forzando quindi l’utilizzo del protocollo HTTPS.
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
File di configurazione Apache2: dove si trovano?
In Debian e derivate (come Ubuntu), i principali file di configurazione di Apache si trovano in:
/etc/apache2
in Centos e ltre derivate Red Hat, potrebbero trovarsi in
/etc/httpd
Il contenuto di /etc/apache2 è il seguente:
apache2.conf
envvars
magic
mods-enabled/
sites-available/ conf.d/
httpd.conf
mods-available/
ports.conf
sites-enabled/
Come possiamo vedere, troviamo dei file di testo e alcune sottocartelle. Con alcuni di essi bisogna familiarizzare si vuole utilizzare al meglio il server:
- apache2.conf: Questo è il principale file di configurazione. Quasi tutte le configurazioni possono essere eseguite modificando questo file.
- ports.conf: Viene usato per specificare le porte sulle quali sono in ascolto i virtual host. Bisogna fare particolare attenzione quando si usano certificati SSL.
- conf.d/: Directory usata per controllare aspetti specifici di Apache. Ad esempio, è spesso utilizzata per definire le configurazioni SSL e altri aspetti riguardanti le politiche di sicurezza.
- sites-available/: Contiene tutti i file relativi ai virtual host che definiscono i vari siti che si possono avere. Attraverso questi file viene stabilito quale contenuto deve essere servito in base alla richiesta. Qui dentro troviamo che non coincidono per forza le configurazioni disponibilicon quelle attive.
- sites-enabled/: Viene usata per definire i virtual host che sono realmente in uso. Tipicamente troviamo dei link simbolici a file contenuti in site-available.
- mods-[enabled,available]/: Sono cartelle molti simili a sites-enable e sites-available ma definiscono invece i moduli che possono essere caricati.
La configurazione di Apache non ha luogo in un unico file monolitico, avviene con un design modulare nel quale possono essere aggiunti e/o modificati i file dei quali si necessita.
Esempi
Cambiare porta di Apache
Supponiamo di voler cambiare la porta sulla quale il server è in ascolto, di default questa è la 80, cambiamola con la 8000.
Sul sistema in esame (Debian) dovremmo modificare il file
/etc/apache2/port.conf
cambiando Listen 80 con Listen 8000, se utilizzate Centos o derivate Red Hat, apportate la modifica in
/etc/http/conf/httpd.conf
Editiamo anche /etc/apache2/sites-enabled/000-default.conf sostituendo
<VirtualHost *:80>
con
<VirtualHost *:8000>
A questo punto la nostra pagina sarà raggiungibile all’indirizzo
http://server_ip:8000
Cambiare il ServerName
Di default il server name, il nome da digitare nella barra degli indirizzi per ragiungere il nostro sito, è localhost, può essere però personalizzato.
Apriamo /etc/apache2/sites-enabled/000-default.conf e aggiungiamo
ServerName custom.name
Non abbiamo finito, dobbiamo modificare anche /etc/hosts, questo non è un file di Apache ma fa parte di Debian, apriamolo e modifichiamo la riga
/etc/hosts 127.0.0.1 localhost
aggiungendo custom.name
/etc/hosts 127.0.0.1 localhost custom.name
Ora, tramite browser, potremmo raggiungere l’indirizzo http://custom.name e visualizzeremo la nostra pagina HTML.
Questa non è altro che una piccola introduzione ad Apache2, corredata da qualche esempio, l’argomento è molto vasto. Nei prossimi tutorial, illustreremo meglio altri aspetti del web server.
👇 Da non perdere 👇
- Cellulari 📱
- Gratis 🎉
- Lavoro 🔧
- Programmare 🖥
- Svago 🎈
- WordPress 🤵
- 💬 Il nostro canale Telegram: iscriviti
- 🟠 Logica e implicazioni della profezia che si auto-avvera
- 🟠 Domini .CO: come e dove registrarne uno
- 🟡 Come inserire banner cookie su WordPress (GRATIS)