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è!
Buona sperimentazione.