Administrare server open source

Platforma de hosting cu software liber, gratuit, open source.

Ubuntu, ca sistem de operare pentru server, avand in vedere ca are la baza distributia Debian, ofera o platforma robusta. Punctele forte ale unui server Ubuntu sunt consumul mic de resurse (RAM si HDD) ceea ce asigura o rulare usoara si usurinta in instalare, specifica distributiei. Pentru a folosi Ubuntu ca server LAMP trebuie sa downloadam de pe siteul oficial imaginea pentru Desktop Edition daca dorim sa avem un LAMP local pentru dezvoltare si testare sau imaginea pentru Server Edition daca sistemul pe care instalam va fi folosit exclusiv ca server LAMP pe care vom face deploy aplicatiilor pregatite pentru a fi lansate in productie.

Dupa ce am downloadat una din cele doua versiuni ale distributiei ardem imaginea pe un CD si incepem instalarea, la sfarsitul careia vom avea un sistem pregatit pentru a deveni un server LAMP.

Instalare Apache

Instalarea serverului Apache se poate face din linia de comanda folosind comanda apt-get:

[root@localhost ~]#apt-get install apache2 -y
Reading package lists... Done
Building dependency tree       
Reading state information... Done
.............................................

Daca aveti o conexiune buna si un sistem decent, in cel mult 2 minute ar trebui sa aveti instalat si pornit serverul web Apache. Putem verifica daca serverul s-a instalat folosind comanda ps:

[root@localhost ~]# ps aux | grep apache2
root     10064  0.0  0.1 121384  3204 ?        Ss   22:42   0:00 /usr/sbin/apache2 -k start
www-data 10066  0.0  0.1 121116  2376 ?        S    22:42   0:00 /usr/sbin/apache2 -k start
www-data 10067  0.0  0.1 344820  3176 ?        Sl   22:42   0:00 /usr/sbin/apache2 -k start
www-data 10070  0.0  0.1 344820  3180 ?        Sl   22:42   0:00 /usr/sbin/apache2 -k start
[root@localhost ~]#

Daca rezultatul comenzii este asemanator cu cel de sus, serverul Apache este instalat si functioneaza in parametri normali. Ca un test suplimentar putem accesa intr-un browser adresa serverului – ex. http://localhost/ daca avem un server LAMP local. Ar trebui sa vedem o pagina alba cu textul „It works!„.

Acum putem spune ca avem un server Apache functional. Singura lui problema e ca poate oferi doar continut static, iar pentru a avea un sistem LAMP complet avem nevoie si de un server de baze de date (MySQL) si de un limbaj (PHP) care sa faca legatura intre serverul Apache si serverul de baze de date.

Instalare MySQL

Inainte de a trece la instalarea limbajului PHP si a modulului mod_php pentru ca Apache sa interpreteze codul PHP trebuie sa instalam MySQL, serverul de baze de date cel mai des folosit in serverele Linux. Ca in cazul anterior, instalarea se poate face din linia de comanda folosind apt-get:

[root@localhost ~]#apt-get install mysql-server-5.1 -y
Reading package lists... Done
Building dependency tree       
Reading state information... Done
.............................................
[root@localhost ~]#

In timpul instalarii se cere o parola, care va fi parola utilizatorului root al serverului MySQL. Pentru exemplificare vom folosi parola „lampserver„, parola care e bine sa o schimbati inainte de a pune masina in productie.

Dupa ce instalarea a ajuns la final putem verifica daca totul a decurs bine folosind comanda mysql, comanda cu ajutorul careia ne conectam la serverul MySQL local:

[root@localhost ~]# mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 40
Server version: 5.1.31-1ubuntu2 (Ubuntu)
 
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
 
mysql>

Daca am ajuns la un prompt asemanator cu cel de sus, serverul MySQL este instalat si functional. Aici putem rula diferite comenzi (ex. „show databases;„) pentru a gestiona bazele de date sau putem iesi folosind comanda „quit„.

Instalare PHP

Acum ca avem instalate serverul Apache si MySQL putem instala limbajul PHP care va folosit pentru crearea de continut dinamic. Vom instala versiunea 5 a limbajului PHP, impreuna cu modulele necesare.

[root@localhost ~]#  apt-get install php5 php5-cli php5-mysql libapache2-mod-php5 -y
Reading package lists... Done
Building dependency tree       
Reading state information... Done
.............................................
[root@localhost ~]#

Odata ce instalarea s-a finalizat vom avea instalat PHP versiunea 5 impreuna cu modulul CLI (Command Line Interface), modulul pentru conectarea la serverul MySQL si modulul Apache care va fi folosit de serverul web pentru a interpreta codul PHP. E important ca dupa instalarea PHP sau a unui modul nou sa restartam serverul web pentru ca modulele noi sa fie incarcate in memorie.

[root@localhost ~]# /etc/init.d/apache2 restart

Testare LAMP

Odata ce am instalat Apache, MySQL si PHP ar trebui ca totul sa functioneze corect, dar nu ne putem baza pe presupuneri deci va trebui sa si testam ceea ce am instalat. Prima data vom verifica daca PHP este instalat corect. Cel mai eficient mod pentru a testa asta este sa apelam functia phpinfo() care, daca totul functioneaza corect, ne va da o lista cu parametri de functionare PHP si a modulelor folosite. Pentru asta vom crea un fisier cu numele info.php in /var/www, directorul implicit care va fi citit de serverul web. In fisierul info.php vom pune urmatoarele linii:

< ?php
phpinfo();
?>

Acum apelam prin browser fisierul info.php – ex. http://localhost/info.php in cazul unui server LAMP local – iar ca rezultat ar trebui sa primim o lista completa de setari.

Acum ca suntem siguri ca PHP functioneaza corect impreuna cu serverul Apache, va trebui sa testam comunicarea PHP cu serverul MySQL. Pentru asta vom crea un fisier mysql.php in aceeasi locatie, cu urmatorul continut:

< ?php
$link = mysql_connect("localhost","root","lampserver");
if( $link ) 
    echo "Comunicarea functioneaza";
else
    echo "Comunicarea nu functioneaza";
?>

Vom accesa si acest fisier prin browser, iar daca pe ecran ne va aparea mesajul „Comunicarea functioneaza” vom stii ca serverul LAMP care l-am pregatit este functional din toate punctele de vedere – server web, server de baze de date, si limbaj de scripting pentru continut dinamic.