Sono Andrea Tonin di Rovigo, mi occupo di web e tecnologia per professione e passione da oltre 10 anni, con questo tutorial impariamo come realizzare un server a basso costo per una piccola azienda o per una rete domestica con Ubuntu e un vecchio PC.

A cosa ci può servire? Semplice, possiamo condividere all’interno della nostra rete documenti, foto, video e tutto quello che dobbiamo visualizzare, tra PC differenti o tra dispositivi Mobile connessi tramite cavo e/o wireless. Se vogliamo possiamo creare addirittura un vero e proprio Cloud, senza dover acquistare spazio da gestori esterni. Un’altra possibilità importante è quella di poter accedere ai dati dall’esterno, direttamente da internet, sfruttando il nostro normale abbonamento ADSL.

Ecco cosa ci servirà:

– Un vecchio PC, basta un P4 con 500 MB RAM ed un HD da 80 GB (valore economico nullo)
– Sistema operativo: Linux Ubuntu Server 12 (open source – gratuito)

Preciso che la mia scelta del sistema operativo è caduta su Ubuntu Server perchè è una distribuzione Linux già famosa, facile da utilizzare e con una comunità molto attiva. Ovviamente anche l’hardware indicato è super ristetto. Se avete a disposizione qualcosa di meglio ben venga.

Pronti? Let’s Go!!!

1) Scaricare ed installare tramite il CD Ubuntu Server 12 il sistema operativo specificando:

NOME HOST: server (è il nome del computer)

ACCOUNT UTENTE: andreatonin (è l’Administrator)

NOME UTENTE PER L’ACCOUNT (Administrator): andrea

PASS (Administrator): lamiapassword

Al passo successivo marcare con l’asterisco (vedi lista comandi alla base della pagina):

[*] OPEN SSH SERVER

[*] LAMP SERVER

MYSQL PASS ROOT: lamiapassword (password per l’utente root di MySQL)

Appare il promp dei comandi perchè non c’è alcuna interfaccia grafica installata.

2) Scaricare ed installare l’interfaccia grafica Ubuntu con il comando (questo passaggio è facoltativo, e a dire il vero rallenta il PC, ma l’interfaccia grafica è indispensabile a meno che non vogliate lavorare interamente a riga di comando):

 sudo apt-get install ubuntu-desktop

Il PC si riavvia con l’interfaccia grafica installata

3) Settare Apache (il software che trasforma il PC in un sistema adatto ospitare siti Internet, vedi anche wikipedia per maggiori informazi0ni)

a) CTRL+ALT+T richiama il terminale

b) abilitare in Apache il modulo userdir che permetterà di accedere al contenuto del server da un qualunque browser in rete tramite la sintassi http://example.com/~nomeutente/ syntax

sudo a2enmod userdir

c) riavviare Apache con il comando

sudo service apache2 restart

d) configurazione del modulo

sudo nano /etc/apache2/mods-enabled/userdir.conf      ->che significa: super user usando il programma gedit (editor di testo) apri il file userdir.conf

aggiustare come di seguito per abilitare la lettura della cartella public_html, l’asterisco abilita la lettura di public_html per TUTTI gli utenti (user):

<IfModule mod_userdir.c>

UserDir public_html
UserDir disabled root

<Directory /home/*/public_html>
AllowOverride All
Options MultiViews Indexes SymLinksIfOwnerMatch
<Limit GET POST OPTIONS>
Order allow,deny
Allow from all
</Limit>
<LimitExcept GET POST OPTIONS>
Order deny,allow
Deny from all
</LimitExcept>
</Directory>
</IfModule>

e) abilitatre la lettura file php disabilitati di default per motivi di sicurezza

nano /etc/apache2/mods-enabled/userdir.conf

<IfModule mod_php5.c>
<FilesMatch “\.ph(p3?|tml)$”>
SetHandler application/x-httpd-php
</FilesMatch>
<FilesMatch “\.phps$”>
SetHandler application/x-httpd-php-source
</FilesMatch>
# To re-enable php in user directories comment the following lines
# (from <IfModule …> to </IfModule>.) Do NOT set it to On as it
# prevents .htaccess files from disabling it.
#<IfModule mod_userdir.c>
#    <Directory /home/*/public_html>
#        php_admin_value engine Off
#    </Directory>
#</IfModule>
</IfModule>

f) riavviare Apache

sudo service apache2 restart

g) creare la cartella public_html per TUTTI gli utenti

mkdir /home/$USER/public_html
h) ricavare l’indirizzo IP del server nella rete interna con il comando:

ifconfig

Da un qualunque browser nella rete digitare l’IP del server (ad esempio http://192.168.3.194/ ), vi verrà restituito il messaggio ItWorks! Significa che il sistema operativo è stato installato correttamente.

Dentro la cartella public_html, copiate un file index.html valido.

Per vedere il contenuto della cartella home/public_html digitare http://192.168.3.194/~andrea/ (la tilde si ottiene da tastiera con la combinazione ALT+126)

4) Setup My SQL

Effettuare gli aggiornamenti con:

sudo apt-get update && sudo apt-get upgrade

Avviare l’installazione sicura:

sudo mysql_secure_installation

Seguire le istruzioni come sotto:

By default, a MySQL installation has an anonymous user, allowing anyone
to log into MySQL without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.
Remove anonymous users? [Y/n] y
… Success!
Normally, root should only be allowed to connect from ‘localhost’.  This
ensures that someone cannot guess at the root password from the network.
Disallow root login remotely? [Y/n] y
… Success!
By default, MySQL comes with a database named ‘test’ that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.
Remove test database and access to it? [Y/n] y
– Dropping test database…
… Success!
– Removing privileges on test database…
… Success!
Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.
Reload privilege tables now? [Y/n] y
… Success!
Cleaning up…
All done!  If you’ve completed all of the above steps, your MySQL
installation should now be secure.
Thanks for using MySQL!

Configurare le opzioni:

sudo gedit /etc/mysql/my.cnf

Cambiare la riga per permettere l’accesso da qualunque IP:
#bind-address           = 127.0.0.1

Cambiare la riga per ottimizzare il trasferimento dei dati:
# * Query Cache Configuration
#
query_cache_limit       = 2M
query_cache_size        = 32M

Riavviare il servizio (demone)

sudo service mysql restart

5) Installare phpmyAdmin

sudo aptitude install phpmyadmin

Apro il Browser ed inserisco: localhost/phpmyadmin se dà NOT FOUND 404 procedere così:

sudo nano /etc/apache2/apache2.conf

Aggiungo la linea in fondo a tutto (per includere esplicitamente nella configurazione di Apache il percorso di phpmyadmin

Include /etc/phpmyadmin/apache.conf

Apro il Browser ed inserisco: localhost/phpmyadmin mi apre la schermata e accedo con:

user: root

pass: lamiapassword

Utente: root è quello assegnato di default, la pass è quella di MySQL settata in fase di installazione

Per accedere dagli altri PC della LAN al pannello di phpmyadmin digitare: http://192.168.3.194/phpmyadmin

6) Porte Router o Modem

Se vogliamo accedere da internet ai contenuti del nostro web server casalingo dovremo aprire nel nostro Router o modem le seguenti porte.

ATTENZIONE PER PROCEDERE NEI PASSI SUCCESSIVI AVETE BISOGNO DI UN CONTRATTO DI FORNITURA ADSL CON IP FISSO

20/tcp FTP – Il file transfer protocol – data

21/tcp FTP – Il file transfer protocol – control

22/tcp SSH – Secure login, file transfer (scp, sftp) e port forwarding

25/tcp SMTP – Simple Mail Transfer Protocol (E-mail)

80/tcp HTTP HyperText Transfer Protocol (WWW)

110/tcp POP3 Post Office Protocol (E-mail)

143/tcp IMAP4 Internet Message Access Protocol (E-mail)

443/tcp HTTPS usato per il trasferimento sicuro di pagine web

465/tcp SMTP – Simple Mail Transfer Protocol (E-mail) su SSL

3306/tcp MySQL Database system

7) Accedere al vostro server web da internet

Acquistare un dominio+gestione dns da un provider e puntarlo all’ IP pubblico del vostro collegamento ADSL (è l’indirizzo IP che vi identifica su internet)

Complimenti! Siete i fortunati possessori di un Server Web! Se poi vorrete valutare una soluzione più performante vi consiglio di acquistare un hardware specializzato. I server professionali hanno una struttura ben differente da un normale PC Desktop. Ad esempio hanno una doppia alimentazione, doppi hard disk per il backup e raffreddamento specializzato per garantire un funzionamento di 24 ore su 24. Potete valutare anche l’installazione di altri sistemi operativi quali LinuX Red Hat Enterprise o SUSE Linux Enterprise.

Qui sotto, l’immagine di un server professionale, direi che la struttura esterna parla da sè!

Server IBM

Buona sperimentazione.

Il mio sito ufficiale >