Archivi categoria: Ubuntu

Come creare un Web Server in Casa

lampVediamo come installare un server web utilizzando la piattaforma LAMP. Intanto cosa vuol dire piattaforma LAMP ? Grazie a Wikipedia che ci illumina: LAMP è un acronimo che indica una piattaforma software per lo sviluppo di applicazioni web che prende il nome dalle iniziali dei componenti software con cui è realizzata.

I componenti di base, da cui prende il nome, sono:

Noi installeremo il tutto su Ubuntu 14.04 LTS ultima versione stabile che sarà supportata per 5 anni (ecco il perchè della scelta).

Prerequisiti

Ovviamente un PC o server con installato Ubuntu 14.04 LTS scaricabile QUI

Fase 1 – Installazione di Apache

Apache è in assoluto il web server più popolare ed utilizzato al mondo e d è a mio parere la soluzione migliore per ospitare siti web. Utilizzeremo l’Ubuntu package manager (apt) che ci permette di installare la maggior parte dei software senza farsi venire il mal di testa. Apriamo una finestra del Terminale e digitiamo questi comandi:

sudo apt-get update

sudo apt-get install apache2

L’utilizzo del comando sudo presuppone l’immissione della password utente per poter procedere. Attendiamo qualche secondo ed abbiamo fatto.

Per verificare se l’installazione è andata a buon fine basterà aprire il browser e digitare:

http://indirizzo_ip_del_server

dove indirizzo_ip_del_server sta per l’indirizzo del PC sul quale abbiamo appena installato apache (es. http://192.168.10.199 )

Se tutto è andato a buon fine apparirà la pagina web di Apache come mostrato qui sotto default_apache

 

Fase 2 – Installazione di MySQL

Installiamo ora MySQL ovvero il database server sempre dal terminale digitiamo:

sudo apt-get install mysql-server libapache2-mod-auth-mysql php5-mysql

Durante l’installazione verrà richiesto di impostare una password per l’utente “root” e cioè l’utente che avrà i privilegi più alti.

Finita l’installazione utilizzeremo ulteriori comandi per rendere l’ambiente più sicuro e funzionale, per prima cosa diremo a MySQL di creare una struttura di directory per il database dove verranno salvate le informazioni

sudo mysql_install_db

procederemo quindi con uno script che renderà più sicuro il nostro database:

sudo mysql_secure_installation

Quest’ultimo script chiederà la password che abbiamo precedentemente impostato e ci chiederà se vogliamo cambiarla, per tutte le altre domande premere semplicemente INVIO.

Fase 3 – Installazione di PHP

PHP è il linguaggio che processerà il codice per visualizzare componenti dinamici, può lanciare script, collegarsi con MySQL per ottenere le informazioni e processarne il contenuto da visualizzare nelle pagine web

sudo apt-get install php5 libapache2-mod-php5 php5-mcrypt php5-cli php5-common php5-curl php5-gd

Finita l’installazione, per rendere il tutto operativo dobbiamo riavviare apache, digitiamo:

sudo /etc/init.d/apache2 restart

non ci resta che verificare che tutto funzioni, per fare questo creeremo un piccolo script che ci permetterà di effettuare il test.

Chiameremo lo script info.php ed andremo a metterlo in una cartella specifica chiamata “web root”, in Ubuntu 14.04 questa cartella si trova in /var/www/html/.

sudo gedit /var/www/html/info.php

si aprirà un editor ed andremo a scrivere queste poche righe:

<?php
phpinfo();
?>

salviamo quindi il file. Possiamo quindi testare il tutto aprendo il browser e navigando all’indirizzo;

http://indirizzo_ip_del_server/info.php

se tutto funziona avremo come risposta una pagina simile a questa:

info_php

ovviamente una volta visualizzata la pagina andremo a cancellarla:

sudo rm /var/www/html/info.php

Fase 4 – Installazione PhpMyAdmin

phpMyAdmin è un software che lavora con MySQL direttamente da web ci fornisce cioè una interfaccia grafica che semplifica le operazioni da effettuare per l’utilizzo del database server sempre da terminale:

sudo apt-get install phpmyadmin

durante l’installazione occorrerà:

  • selezionare Apache2 come server
  • selezionare SI (o YES) per configurare il database per l’ulitizzo di phpMyAdmin con dbconfig-common
  • verrà richiesta la password di “root” del database
  • Inserire la password per connetersi a phpMyAdmin

a questo punto riavviamo apache:

sudo /etc/init.d/apache2 restart

e testiamo il funzionamento aprendo il browser e navigando all’indirizzo:

http://indirizzo_ip_del_server/phpmyadmin

Se tutto funziona apparirà la schermata di login di phpMyAdmin.

Tutto fatto, possiamo caricare le nostre pagine web nella cartella /var/www

Configurazione Virtual Host con Apache 2

Pagine correlate: Creare un server web con LAMP

VirtualHost

Bene bene, una volta installato il server Web mi sono posto il problema di gestire più siti e non uno solo.  Ovviamente il server risponde ad un indirizzo pubblico, nel mio caso ad uno solo quindi come fare per poter gestire altri siti web oltre al mio  ?

Il VirtualHosting consente la gestione di più domini basandosi sul loro nome ma non sul loro IP.

Per intenderci: Il mio sito web ha come indirizzo www.sito1.com (nome di fantasia) che è legato ad un indirizzo di IP pubblico 192.168.10.100 (indirizzo di fantasia), l’intento è quello di avere un www.sito2.com che sia legato sempre all’indirizzo 192.168.10.100.

Per prima cosa occorre creare la cartella /var/www/sito2 per ospitare tutti i file del sito

sudo mkdir /var/www/sito2

dopodichè si modificano i privilegi così da poter avere accesso completo alla cartella

sudo chown -R utente:utente /var/www/sito2

(utente ovviamente è il nome utente con il quale si accede al server); si copiano, quindi,  all’interno della cartella tutti i file del sito da metter online e quindi si  passa alla creazione del file di configurazione per il dominio. Questo file di configurazione dice ad Apache dove andare a trovare il sito all’inteno del server

sudo gedit /etc/apache2/sites-available/sito2.com.conf

si apre così il nostro editor nel quale occorrerà inserire il seguente testo:

<VirtualHost *:80>
ServerAdmin webmaster@sito2.com
ServerName www.sito2.com
DocumentRoot /var/www/sito2
<Directory “/var/www/sito2”>
Order Deny,Allow Allow from all
Option -Indexes
</Directory>
</VirtualHost>

In pratica stiamo dicendo ad Apache che se arriva una richiesta sulla porta 80 del sito www.sito2.com, lui deve andarlo a cercare nella cartella /var/www/sito2

Non restano che gli ultimi due comandi per abilitare il tutto:

sudo a2ensite sito2.com.conf

sudo /etc/init.d/apache2 restart

Da questo momento il sito sarà raggiungibile all’indirizzo www.sito2.com sempre ammesso che il sito sia registrato presso un’authority e che sia impostato il DNS giusto

[Guide] – Backup automatico MySQL

mysqlbackupFacciamo un pò di luce su come effettuare i backup con AutoMySqlBackup perchè tutte le guide trovate fino ad ora su Internet non sono esaustive.

Innanzitutto cos’è AutoMySqlBackup ?

E’ uno script che permette di effettuare backup automatici giornalieri, settimanali e mensili di uno o più database presenti in mysql.

Per l’installazione consiglio di usare la Gestione Pacchetti o Ubuntu Software Center semplicemente perchè in questo modo l’installazione è automatica ed è inclusa la configurazione in cron.daily (che altrimenti occorrerebbe fare a mano, conoscendone ovviamente la astrusa sintassi).

In fase di installazione occorre selezionare la modalità locale (sempre ammesso che il database sia presente sulla macchina nella quale si installa lo script)

Lasciando il tutto così com’è, già tutto funziona; automaticamente lo script crea tre cartelle: “daily”, “monthly” e “weekly” all’interno di “/var/lib/autoysqlbackup”.

In ognuna di queste cartelle vengono create tante cartelle quanti sono i db presenti in mysql; all’interno di ognuna di queste verranno salvati in formato compresso i dump dei databases.

Fino qui tutto ok.

Ora, se si volesse fare in modo che vengano salvati solo alcuni db (personalmente ad esempio i db “information_schema”, “mysql”, “phpmyadmin” non mi interessano, in caso di disastro mi basta ricreare i db persi ed importare i dump che ho salvato ma comunque: de gustibus …”) e in una destinazione diversa da quella predefinita, occorre modificare lo script.

sudo gedit /etc/default/automysqlbackup

Username, cercare la sezione:

# Username to access the MySQL server e.g. dbuser

e modificare USERNAME in questo modo (attenzione, togliere # davanti a USERNAME qualora ci fosse)

USERNAME=”user”

dove user è il nome utente mysql che deve essere incluso tra virgolette, non tra apici come in origine Password, stessa cosa :

# Username to access the MySQL server e.g. password
PASSWORD="pwd"

dove pwd è la password dell’user mysql Elenco db da salvare, cercare questa sezione:

# The following is a quick hack that will find the names of the databases by
# reading the mysql folder content. Feel free to replace by something else.
# DBNAMES=`find /var/lib/mysql -mindepth 1 -maxdepth 1 -type d | cut -d’/’ -f5 | grep -v ^mysql\$ | tr \\\r\\\n ,\ `
# This one does a list of dbs using a MySQL statement.

ed inserire i nomi dei database di cui si vuole effettuare il backup

DBNAMES=”DB1 DB2 DB2″

dove Db1 DB2 e DB3 sono i nomi dei databases separati da uno spazio Directory di backup

# Backup directory location e.g /backups
# Folders inside this one will be created (daily, weekly, etc.), and the
# subfolders will be database names. Note that backups will be owned by
# root, with Unix rights 0600.

inserire l’indirizzo della directory dove si vogliono salvare i dati

BACKUPDIR=”/var/backup”

io ci ho messo /var/backup ma ci si può mettere ciò che si vuole. A questo punto se si vuole si può lanciare lo script

automysqlbackup

giusto per vedere che succede, altrimenti si può aspettare finchè cron non lo faccia. Se tutto è a posto nella cartella che abbiamo impostato come destinazione ci saranno i backup dei nostri db. Attenzione, è facile che dopo averlo lanciato a mano, i backup nella cartella daily non ci siano, in questo caso controllate nella weekly (io ho lanciato lo script di sabato ed ho pensato che non funzionasse )