Administrare server open source

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

CentOS, Community ENTerprise Operating System, e o distributie Linux gratuita bazata pe versiunea comerciala Enterprise a distributiei RedHat Linux. In ultimii ani CentOS a ajuns o distributie foarte folosita datorita atentiei deosebite acordata de cei de la cPanel care si-au facut inclusiv o varianta de CentOS cu cPanel preinstalat pentru a fi folosit in datacentere pentru un deploy rapid. Unul din motivele pentru care CentOS este o distributie iubita de multa persoane este suportul prelungit pentru fiecare versiune. De exemplu, CentOS 3 care a fost lansat in 2004 va primi suport si updateuri pana in 2010. CentOS 4 care a fost lansat in 2005 va primi suport si updateuri pana in 2012. CentOS 5 care a fost lansat in 2007 va primi suport pana in 2014.

Dupa cum se vede, suportul prelungit oferit CentOS este intr-adevar un atu in mod deosebit in cazul serverelor care sunt planificate pentru foarte putine interventii, sisteme care ar trebui sa ruleze in continuu ani intregi fara intreruperi pentru reinstalarea sistemului de operare – ex. routere, load balancere etc.

Pregatirea sistemului

Inainte de a transforma sistemul intr-un server LAMP trebuie sa ne asiguram ca sistemul care il avem la dispozitie e complet curat, fara nici o versiune instalata a aplicatiilor care urmeaza sa le instalam. Pentru asta vom folosi comanda yum remove:

[root@localhost ~]# yum remove httpd* -y
[root@localhost ~]# yum remove php* -y
[root@localhost ~]# yum remove mysql* -y

Acum ca nu avem nici o aplicatie instalata care ar putea sa ne incurce putem merge mai departe.

Instalare Apache

Pentru instalarea serverului web Apache vom folosi utilitarul yum. Pachetele care urmeaza sa le instalam sunt compilate pentru arhitectura care o folosim. In cazul de fata se foloseste i386 iar pentru a instala serverul web avem nevoie de pachetul httpd.i386. Daca am fi pe amd64 am folosi pachetul httpd.amd64:

[root@localhost ~]# yum install httpd.i386 -y
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: ftp.iasi.roedu.net
 * updates: download.srv.ro
 * addons: ftp.iasi.roedu.net
 * extras: ftp.iasi.roedu.net
......................................

Daca totul decurge normal si daca avem o conexiune decenta la internet in cel mult cinci minute ar trebui sa avem ultima versiune a serverului Apache instalata si functionala. Mai trebuie doar sa o pornim folosind urmatoarea comanda:

[root@localhost ~]# /etc/init.d/httpd start
Starting httpd:                               [OK]

Pentru a testa conexiunea vom accesa cu un browser web adresa serverului – ex. http://localhost/ daca instalarea e locala. In CentOS 5.3 nu exista o pagina default deci vom primi un mesaj „Forbidden„. E suficient ca sa stim ca serverul Apache este functional. Daca totusi dorim sa vedem o pagina concreta, putem adauga o pagina index.html in directorul /var/www/html, director implicit pentru continutul care urmeaza sa fie accesat.

Instalare MySQL

Pentru a instala MySQL, ca in cazul anterior, va trebui sa ne folosim de tipul arhitecturii sistemului. Unealta folosita pentru instalare va fi tot yum care in cazul unui sistem i386 se va folosi asa:

[root@localhost ~]# yum install mysql-server.i386 -y
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: ftp.iasi.roedu.net
 * updates: download.srv.ro
 * addons: ftp.iasi.roedu.net
 * extras: ftp.iasi.roedu.net
Setting up Install Process
Parsing package install arguments
Resolving Dependencies
......................................

Instalarea din nou se face rapid, in cateva minute. Dupa instalare putem porni serverul:

[root@localhost ~]# /etc/init.d/mysqld start
Starting MySQL:                         [OK]

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 2
Server version: 5.0.45 Source distribution
 
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

Pentru a face conexiunea intre serverul de baze de date si serverul web avem nevoie de PHP si extensiile acestuia. Instalarea se face folosind urmatoarele comenzi:

[root@localhost ~]# yum install php-bcmath.i386 php-cli.i386 php-mcrypt.i386 php-mhash.i386 php-mysql.i386
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: ftp.iasi.roedu.net
 * updates: download.srv.ro
 * addons: ftp.iasi.roedu.net
 * extras: ftp.iasi.roedu.net
Setting up Install Process
Parsing package install arguments
Resolving Dependencies

Acum ca am instalat PHP si extensiile aferente va trebui sa restartam serverul apache pentru a verifica daca totul functioneaza in parametri normali:

[root@localhost ~]# /etc/init.d/httpd restart
Stopping httpd:                       [OK]
Starting httpd:                       [OK]

Testare LAMP

Pentru a verifica daca serverul web interpreteaza corect codul PHP vom sterge din directorul /var/www/html fisierul index.html daca exista iar apoi vom crea un fisier index.php cu urmatorul continut:

< ?php
phpinfo();
?>

Daca accesam fisierul index.php prin browser vom primi o lita cu setarile PHP si modulele instalate.

Pentru a verifica daca serverul Apache comunica corect cu serverul MySQL cu ajutorul PHP vom crea un fisier mysql.php in aceeasi locatie, cu urmatorul continut:

< ?php
$link = mysql_connect("localhost","root","");
if( $link ) 
    echo "Comunicarea functioneaza";
else
    echo "Comunicarea nu functioneaza";
?>
 
 
Daca totul a decurs corect in browser ar trebui sa vedem mesajul "<em>Comunicarea functioneaza</em>", mesaj care ne spune ca avem un sistem LAMP pe CentOS care functioneaza in parametri normali.