Server Internet Casalingo Con Debian/Ubuntu

Ecco un’altra guida da newbie a newbie!

Apache powered

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

  1. Installazione di Apache/PHP/MySQL
  2. Configurazione del router
  3. Registrazione a dyndns.org
  4. Installazione e configurazione di ddclient
  5. Fatto!

1. Installazione di Apache/PHP/MySQL

exclamation.png 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.

bell.png Chi non prevede di usare subito PHP e MySQL può installare solamente Apache e in seguito installare i pacchetti PHP/MySQL.

bell.png Chi usa Ubuntu senz’altro può guardare la pagina del wiki di ubuntu-itlinkgo.

Apache:

sudo apt-get install apache2-mpm-prefork

Dopo l’installazione aprendo l’indirizzo http://localhostlinkgo 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:

&lt;?php
phpinfo();
?&gt;

Poi aprite http://localhost/prova.phplinkgo 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 Accountslinkgo“).

Maggiori informazioni su come rendere sicuro il vostro database le trovate sul manualelinkgo.

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.comlinkgo 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)linkgo!

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:

ddclient

5. Fatto!

Se avete avuto qualche problema… chiedete pure nei commenti happy

UPDATED!

Invece di usare DynDNS potete comprare un dominio vostro e poi usare FreeDNS! Qui ho descritto come procedere: https://sevencapitalsins.wordpress.com/2009/10/31/server-internet-casalingo-2-freedns-afraid-org-a-k-a-find-the-hash/

3 thoughts on “Server Internet Casalingo Con Debian/Ubuntu

  1. Pietro Paolini scrive:

    Ciao ho fatto più o meno quello che mi hai detto tu ma ho un problema,mi sono affidato al servizio no-ip che fa’ la stessa cosa di dyndns,ma da molte postazioni nn riesco ad accedere al io server,provando con traceroute vedo che non trova,diciamo,la “strada”.

    Dove può essere il problema?

    Da postazioni un po’ più “privilegiate” quale la mia università di informatica invece vedo tutto benissimo..

  2. sevencapitalsins scrive:

    Ciao Pietro,

    la mia ipotesi è che sia un problema dovuto al fatto che per un indirizzo “appena creato” (ad esempio sevencapitalsins.no-ip.org) bisogna aggiornare i server DNS, e questo può impiegare anche molto tempo se usi i DNS dei provider internet italiani (piccolo flame).

    Dagli un po’ di tempo e riprenderà a funzionare… la rete in sé non ha problemi, perché dall’università riesci a trovarlo immediatamente.

Lascia un commento

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

%d blogger cliccano Mi Piace per questo: