Ecco un’altra guida da newbie a newbie!

Installare un server a casa propria e visibile da Internet non è mai stato così facile!
Ecco i requisiti:
- Un vecchio PC
- Una connessione Internet sempre attiva
- Un’oretta di tempo
- Un’infarinatura di HTML
Al termine di questa guida avrete anche voi un sito Internet!
Indice
- Installazione di Apache/PHP/MySQL
- Configurazione del router
- Registrazione a dyndns.org
- Installazione e configurazione di ddclient
- Fatto!
1. Installazione di Apache/PHP/MySQL
Attenzione! Non spiego la configurazione ottimale di questi 3 programmi: il nostro obiettivo non è di costruire un server Internet in grado di soddisfare i carichi di lavoro di Google, ma di avere un piccolo sito Internet senza pretese. Come il 99% dei siti qua fuori.
Chi non prevede di usare subito PHP e MySQL può installare solamente Apache e in seguito installare i pacchetti PHP/MySQL.
Chi usa Ubuntu senz’altro può guardare la pagina del wiki di ubuntu-it
.
Apache:
sudo apt-get install apache2-mpm-prefork
Dopo l’installazione aprendo l’indirizzo http://localhost
dovrebbe venire fuori la scritta “It Works!“
Dovreste modificare il file /etc/apache2/sites-enabled/000-default per fare in modo da non far redirigere il visitatore alla directory /apache2-default:
sudo nano /etc/apache2/sites-enabled/000-default
Ecco cosa dovrebbe venire fuori:
NameVirtualHost *
<VirtualHost *>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
# This directive allows us to have apache2's default start page
# in /apache2-default/, but still have / go to the right place
RedirectMatch ^/$ /apache2-default/
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog /var/log/apache2/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog /var/log/apache2/access.log combined
ServerSignature On
Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>
</VirtualHost>
Dobbiamo solo commentare la linea “RedirectMatch ^/$ /apache2-default/” che sostituiva al carattere “/” iniziale tutta la stringa “/apache2-default/“. Per commentarla basta aggiungere un cancelletto all’inizio.
# RedirectMatch ^/$ /apache2-default/
Infine bisogna avere i permessi di lettura/scrittura/esecuzione per il proprio utente in /var/www:
sudo chmod -R u+rwx /var/www
In questo modo potrete creare i file .html direttamente in /var/www. Un’altra via sarebbe stata sostituire a /apache2-default/ una cartella nella propria home, ma quella cartella avrebbe dovuto avere i permessi di lettura da parte dell’utente www-data.
PHP:
sudo apt-get install libapache2-mod-php5
Per verificare che l’installazione di PHP sia andata a buon fine:
touch /var/www/prova.php nano /var/www/prova.php
Dentro a Nano scrivete questo brevissimo codice PHP:
<?php phpinfo(); ?>
Poi aprite http://localhost/prova.php
e vi dovrebbe comparire una pagina contenente tutto quello che riguarda PHP installato sul vostro serverino.
MySQL:
sudo apt-get install mysql-server php5-mysql
Bisogna immediatamente cambiare la password dell’utente “root” del database MySql (no, non è lo stesso “root” di Linux)!
Prima di tutto entriamo in MySql col comando:
mysql -u root
Una volta dentro la console di MySQL diamo il comando:
SET PASSWORD FOR 'root'@'localhost' = PASSWORD("nuova_password");
Ovviamente sostituite a nuova_password la password che vorrete usare per MySQL (tratto direttamente dal manuale di MySQL, “Securing The Initial MySQL Accounts
“).
Maggiori informazioni su come rendere sicuro il vostro database le trovate sul manuale
.
2. Configurazione del router
Se come il sottoscritto siete dietro a un router che collega vari pc a internet, avete bisogno di aprire la porta 80 del router, e farla puntare all’indirizzo all’interno della LAN dove sta il serverino.
Cercate, se possibile, di mettere l’IP interno del server statico e non dinamico, altrimenti ogni volta dovrete ricontrollare le porte sul router.
In questo modo basterà digitare l’IP che il vostro provider (Tiscali, Alice, Libero…) vi ha dato nella barra degli indirizzi del browser per collegarvi via Internet al vostro server. Come dite? Non sapete quale sia il vostro IP pubblico? Nessun problema: whatismyip.com
ve lo può dire.
Problema #1: un IP è scomodo da ricordare.
Problema #2: il vostro IP pubblico (visto dalla rete Internet) viene cambiato spesso dal provider!
3. Registrazione a dyndns.org
Come evitare di doversi ricordare un IP.
Qui useremo il servizio gratuito offerto da dyndns.org, che dà la possibilità di associare a una stringa come tuonome.dyndns.com un indirizzo IP. Così risolviamo il problema della “memorizzazione di una sequenza di numeri astrusa”.
Dovete semplicemente registrarvi su dyndns.org e attivare il servizio gratuito “Dynamic DNS”.
Eccovi il link all’howto (in inglese)
!
Dopo aver completato la procedura non siate impazienti di vedere se funziona: normalmente ci mettono una decina di minuti prima di applicare i cambiamenti!
4. Installazione e configurazione di ddclient
Il secondo problema è: come faccio a dire a DynDNS che l’indirizzo IP mi è stato cambiato?
Aha. Non ve lo dirò mai!
Scusate, troppo valium. Come Kossiga, avete presente?
sudo apt-get install ddclient
Questo comando installa un demone che periodicamente va a aggiornare l’IP memorizzato da dyndns.
Il file di configurazione è /etc/ddclient.conf. Ecco un esempio:
daemon=600
pid=/var/run/ddclient.pid
protocol=dyndns2
use=web, web=checkip.dyndns.com/, web-skip='IP Address'
server=members.dyndns.org
login=TUO_LOGIN
password='TUA_PSW‘
TUO_SITO.dyndns.org
Ovviamente il demone va lanciato con il comando:
[sourcecode lamguage="cpp"]ddclient[/sourcecode]
5. Fatto!
Se avete avuto qualche problema… chiedete pure nei commenti ![]()
Attenzione! Non spiego la configurazione ottimale di questi 3 programmi: il nostro obiettivo non è di costruire un server Internet in grado di soddisfare i carichi di lavoro di Google, ma di avere un piccolo sito Internet senza pretese. Come il 99% dei siti qua fuori.
Chi non prevede di usare subito PHP e MySQL può installare solamente Apache e in seguito installare i pacchetti PHP/MySQL.