Creare un server casalingo - 1 INSTALLARE APACHE
Che cos’è un Server Web Un server web è un sistema informatico che si occupa di rispondere a richieste di risorse, dette pagine, usando il protocollo HTTP (acronimo che sta per HyperText Transfer Protocol). (www.html.it) Le pagine web sono scritte in formato HTML, ma anche in altri linguaggi. Il client HTTP (il browser web dell’utente) chiede una pagina web (effettua pertanto una Http Request) e il web server risponde con la pagina richiesta se esiste, restituendo la pagina stessa e un codice, che indica se la richiesta è andata a buon fine. Apache supporta anche le pagine php, che vengono interpretate e trasformate in HTML A questa pagina potete trovare tutti i codici http delle risposte https://it.wikipedia.org/wiki/Codici_di_stato_HTTP
Che cos’è Apache Apache HTTP Server, o più comunemente Apache, è il nome di un server web libero sviluppato dalla Apache Software Foundation. È la piattaforma server Web modulare più diffusa, in grado di operare su una grande varietà di sistemi operativi da Wikipedia, l’enciclopedia libera
Installare Apache su Linux sudo apt install apache2 Questo comando installa Apache, ma anche le utility, i file di configurazione Il Server Apache viene avviato in automatico Se si va su un browser e si va all’url http://localhost, se tutto va a buon fine, ,Si vede una schermata It Works!
Apache è composto da moduli La cartella principale di configurazione di Apache2 è /etc/apache2 In questa cartella sono contenuti file e sottocartelle Il file di configurazione principale di apache è apache2.conf C’è un altro file molto importante ports.conf, che configura le porte TPC per cui Apache si mette in ascolto (di default è la porta 80). Cartelle indispensabili sono queste: Mods-available contiene le configurazioni per tutti i moduli installati Sites-available: contiene le configurazioni per i virtual host che sono disponibili per essere utilizzati nella macchina, anche se è presente un solo sito Sites-enabled: contiene un collegamento simbolico a file contenuti nella cartella sites-available. Questi file rappresentano i virtual host effettivamente attivi, enabled.
Guardiamo il file ports.conf /etc/apache2/ports.conf # If you just change the port or add more ports here, you will likely also # have to change the VirtualHost statement in # /etc/apache2/sites-enabled/000-default.conf Listen 80 Di default è la porta 80, potremmo cambiarla per esempio con 8000 o 81 o altro, se tale porta è utilizzata da altri servizi sulla macchina dove è in esecuzione apache, per esempio da altri web server (come NGINX, vedremo nei prossimi video)
Guardiamo il file apache2.conf Sono contenute molte configurazioni, chiamate direttive. Alcune più importanti sono le esegue Con le direttive Directory specifichiamo le cartelle del file system che Apache accetta come cartelle principali di un virtual host. <Directory /> Options FollowSymLinks AllowOverride None Require all denied </Directory> //in questa prima direttiva viene negato alla root del filesystem <Directory /usr/share> Require all granted // questa seconda direttiva sovrascrive la direttiva precedente, precisando che tra tutto il filesystem è permesso usare la cartella /usr/share <Directory /var/www/> Options Indexes FollowSymLinks // questa terza direttiva specifica che oltre alla cartella usr/share è consentito usare anche la cartella /var/www #<Directory /srv/> # Options Indexes FollowSymLinks # AllowOverride None # Require all granted #</Directory> // questa quarta direttiva permette di utilizzare anche la cartella /srv per la configurazione di un virtual host
Creare un virtual Host Di default in sites-available è disponibile il virtualhost 000.default.conf Ma noi ne creeremo uno nuovo Creiamo una nuova cartella test all’interno di /var/www/ sudo mkdir -p /var/www/test Spostiamoci in tale cartella cd /var/www/test
Creare un Virtual Host - 2 Creiamo un pagina html all’interno della cartella appena creata Ci spostiamo nella cartella cd /etc/apache2/sites-available Creiamo un nuovo virtual host chiamato test.conf <VirtualHost *:80> DocumentRoot /var/www/test ServerName test </VirtualHost> Salviamo il file. Attiviamo il virtualhost con il seguent comando sudo a2ensite test sudo service apache2 reload NameVirtualHost *:80
Modificare il file /etc/hosts in tutti i computer appartenti alla stessa rete Aggiungiamo questa riga 0.0.0.0 test Al posto di 0.0.0.0 va messo l’indirizzo ip del vostro server
Configurare un indirizzo ip statico - Ubuntu In modo che il server appena configurato risulti visibile su tutti i computer appartenenti alla vostra rete locale UBUNTU – Elementary os Andare in Rete nelle impostazioni di sistema Scegliete la vostra connessione Ethernet o Wireless e cliccate su Impostazioni Andate nel tab Impostazioni IPV4 Scegliete il metodo Manuale Configurate il vostro ip statico per esempio 192.168.1.10, La maschera sarà impostata di default su 24 e il gateway sarà 192.168.1.1 Impostate anche il server DNS. Nel mio caso il mio router fa anche da DNS quindi 192.168.1.1
Configurare il firewall di Ubuntu ufw In modo che computer appartenenti alla stessa rete possano accedere al nostro server dobbiamo fare in modo che il firewall di Ubuntu ufw accetti connessioni esterne alla porta 80 sudo ufw allow 80/tcp
Usare il virtual host di default di Apache2 Possiamo usare anche il virtual host di default per caricare siti web in Apache. Basta creare delle sottocartelle all’interno della cartella /var/www/html Creiamo pertanto una cartella prova con all’interno una pagina index.html. Per visualizzarla basta visitare l’indirizzo web http://localhost/prova
Disabilitiamo la visualizzazione dei file all’internodelle cartelle Abbiamo creato un sito con tanti file html Index.html è quello predefenito che viene visualizzato in automatico quando specifichiamo un virtual host o una directory del server Non vogliamo che le persone possano accedere ai file di una cartella per esempio la nostra cartella prova creata precedentemente. Andiamo in etc/apache2/apache2.conf <Directory /var/www/> Options Indexes FollowSymLinks AllowOverride None Require all granted </Directory> Modifichiamo questa directory togliendos Indexes tra Options e FollowSymLinks