Administrare server open source

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

Această pagină e creată pentru cei care vor o instalare LAMP rapidă, simplă, fără complicaţii. Pentru eficienţă în prezentare ne rezumăm strict la instalarea si pregătirea pachetelor de bază – Apache, MySQL şi PHP – pentru o funcţionare standard. Se presupune că sistemul de operare e deja instalat si ca avem acces ca root.

Prima dată instalăm gcc si gcc-c++, necesare pentru instalarea LAMP:

% yum install gcc
% yum install gcc-c++
% yum install ncurses-devel
% yum install libxml2
% yum install libxml2-devel
% yum install libpng
% yum install libpng-devel

Pasul urmator e sa verificam daca nu cumva exista deja instalate in sistem pachetele de care avem nevoie. Pentru verificare folosim comenzile rpm -a pentru verificarea pachetelor instalate si egrep pentru filtrare. Un exemplu ar fi urmatorul:

% rpm -qa | egrep '(php|apache|httpd|mysql)'
    httpd-manual-2.2.3-11.el5_1.centos.3
    php-ldap-5.1.6-20.el5
    httpd-2.2.3-11.el5_1.centos.3
    system-config-httpd-1.3.3.3-1.el5
    php-common-5.1.6-20.el5
    php-cli-5.1.6-20.el5
    mysql-5.0.45-7.el5
    php-5.1.6-20.el5

După cum se vede, odată cu instalarea sistemului de operare s-au instalat şi o parte din pachetele de care avem nevoie şi, pentru o instalare curată, ar fi bine sa le ştergem. Ştergerea pachetelor se face cu comanda rpm -e:

% rpm -e php-ldap-5.1.6-20.el5

Se rulează rpm -e pentru pentru fiecare pachet instalat iar unde e cazul pentru fiecare pachet de care depinde pachetul care trebuie dezinstalat. Comanda rpm -e va şterge doar pachetele instalate, nu şi datele şi fişierele de configurare. Astfel, dacă e vorba de o recondiţionare a unui server nu de o instalare de la zero, datele vor putea fi refolosite după instalarea noilor versiuni. Cu toate astea e recomandat un backup înainte de orice operaţiune importantă pentru a evita situaţiile neprevăzute.

Acum că avem un sistem putem trece la instalarea pachetelor. Pentru asta intrăm în folderul /usr/local/src unde downloadăm sursele pachetelor de instalat:

% cd /usr/local/src
% /usr/bin/wget http://www.php.net/distributions/php-5.2.9.tar.gz
% /usr/bin/wget http://apache.oregonstate.edu/httpd/httpd-2.2.11.tar.gz

Pachetul sursă MySQL poate fi descărcat de pe site-ul oficial doar după autentificare. După descărcare trebuie copiat în folderul /usr/local/src.

Mai departe trebuie să desfacem arhivele pentru a putea continua instalarea:

% /bin/tar zxf php-4.4.6.tar.gz
% /bin/tar zxf apache_1.3.37.tar.gz
% /bin/tar zxf mysql-4.1.22.tar.gz

MySQL

Prima dată instalăm MySQL. Pentru asta avem nevoie de utilizatorul mysql, utilizator sub care va rula serverul:

% /usr/sbin/groupadd mysql
% /usr/sbin/useradd -g mysql -c "MySQL Server" mysql

Înainte de instalare putem configura installerul pentru ca serverul MySQL să se instaleze cum dorim. Pentru o listă completă a parametrilor de configurat putem rula comanda:

% cd /usr/local/src/mysql-5.1.33
% ./configure --help

Pentru o instalare standard, următoarele comenzi ar trebui să pregătească instalarea serverului:

% cd /usr/local/src/mysql-5.1.33
% chown -R mysql.mysql .
% ./configure \
        --prefix=/usr/local/mysql \
        --localstatedir=/usr/local/mysql/data \
        --disable-maintainer-mode \
        --with-mysqld-user=mysql \
        --with-unix-socket-path=/tmp/mysql.sock \
        --without-comment \
        --without-debug \
        --without-bench

Dacă totul a decurs fără erori mai trebuie sa compilăm şi apoi să instalăm serverul, folosind următoarea comandă:

% make && make install

După finalizarea instalării mai avem de executat câteva comenzi pentru pregătirea serverului MySQL înainte de a-l putea utiliza. Prima dată va trebui să instalăm baza de date internă, numită mysql, care o instalăm rulând comanda:

% /usr/local/src/mysql-5.1.33/scripts/mysql_install_db

Următorul pas e să ne asigurăm că avem proprietarii corespunzători pe folderele folosite de serverul MySQL şi anume root:mysql pe /usr/local/mysql, folderul rădăcină a serverului, şi mysql:mysql pe /usr/local/mysql/data, folderul în care se păstrează bazele de date:

% chown -R root:mysql /usr/local/mysql/
% chown -R mysql:mysql /usr/local/mysql/data

Acum trebuie sa creăm fişierul de configurare, /etc/my.cnf, care va păstra parametrii de rulare. Pentru asta putem folosi unul din fişierele care vin odată cu arhiva de instalare:

% cp /usr/local/src/mysql-5.1.33/support-files/my-small.cnf /etc/my.cnf
% chown root:sys /etc/my.cnf
% chmod 644 /etc/my.cnf

Instalarea e aproape finalizată. Mai trebuie sa îi spunem sistemului de operare unde să găsească librăriile necesare, să creăm un script de iniţializare şi apoi să pregătim binarele necesare.

Pentru ca sistemul de operare să găsească librariile pentru încărcarea dinamica trebuie sa adăugăm calea către librării în fişierul /etc/ld.so.conf. O putem face rulând următoarele două comenzi:

% echo "/usr/local/mysql/lib/mysql" >> /etc/ld.so.conf
% /sbin/ldconfig

Pentru scriptul de iniţializare, exceptând cazul în care dorim o iniţializare deosebită, putem copia fisierul standard care îl găsim în arhiva:

% cp /usr/local/src/mysql-5.1.33/support-files/mysql.server /etc/rc.d/init.d/mysql
% chmod 755 /etc/rc.d/init.d/mysql
% /sbin/chkconfig --level 3 mysql on

Următorul şi ultimul pas înainte de pornirea serverului este pregătirea binarelor care le vom copia într-o locaţie inclusă în variabila $PATH pentru ca mai târziu să nu fim nevoiţi să folosim calea absolută:

% cd /usr/local/mysql/bin
% for file in *; do ln -s /usr/local/mysql/bin/$file /usr/bin/$file; done

Acum avem serverul MySQL instalat şi îl putem porni:

% /etc/rc.d/init.d/mysql start

Pentru a verifica dacă serverul e instalat corect ne conectăm la serverul MySQL folosind comanda mysql:

% mysql
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.1.33 Source distribution
 
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
 
mysql> quit
Bye

Dacă se deschide shell-ul intern al serverului totul a decurs cum trebuie şi putem merge mai departe la instalarea serverului web.

Apache

Partea cea mai complicată, instalarea serverului MySQL, a trecut. Acum urmează instalarea serverului web, Apache. Pentru o mai mare flexibilitate vom include suport DSO, care ne va permite să includem suport pentru diferite facilităţi sau limbaje fără a necesita reinstalarea serverului web.

Pregătirea instalării, ca în cazul MySQL, se face rulând fişierul ./configure:

% cd /usr/local/src/httpd-2.2.11
% ./configure \
--prefix=/usr/local/apache \
--enable-shared=max \
--enable-module=rewrite \
--enable-module=so

Dacă totul a decurs normal, fără erori, instalăm serverul web folosind comanda:

make && make install

PHP

Înainte de a trece la configurarea serverului web instalăm PHP care, din nou, se poate instala folosind ./configure pentru pregătirea instalării şi make && make install pentru instalare. Cu toate că PHP a ajuns să includă foarte multe librării instalarea o vom face pentru doar câteva care sunt strict necesare în rularea unui server LAMP:

% cd /usr/local/src/php-5.2.9
% ./configure \
    --with-apxs2=/usr/local/apache/bin/apxs \
    --disable-debug \
    --enable-ftp \
    --enable-inline-optimization \
    --enable-magic-quotes \
    --enable-mbstring \
    --enable-safe-mode \
    --enable-wddx=shared \
    --enable-xml \
    --with-gd \
    --with-gettext \
    --with-mysql=/usr/local/mysql \
    --with-regex=system \
    --with-zlib-dir=/usr/lib

Finalizarea instalării se face folosind comanda:

% make && make install

Dacă se doreşte o instalare PHP complexă se pot extrage parametrii posibili pentru configurare folosind comanda:

% cd /usr/local/src/php-5.2.9
% ./configure --help

Acum că am instalat şi PHP trebuie sa creăm un fişier de configurare sau, mai bine, să copiem fişierul care vine cu distribuţia în locaţia potrivită:

% cp /usr/local/src/php-5.2.9/php.ini-dist /usr/local/lib/php.ini

Configurarea serverului web

Acum că avem totul instalat trecem la ultima fază, configurarea serverului web. Pentru configurare va trebui să modificăm fişierul /usr/local/apache/conf/httpd.conf. Deschidem fişierul cu un editor de text (ex. vim) şi verificăm dacă există o linie de forma:

LoadModule php5_module        modules/libphp5.so

Daca nu există va trebui sa o adăugăm. De asemenea trebuie sa adăugăm, dacă nu există, următoarele două linii:

AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

Cu asta am terminat de configurat serverul web. Mai trebuie doar sa îl facem să pornească odată cu sistemul, folosind următoarele comenzi:

% ln -s /usr/local/apache/bin/apachectl /etc/rc.d/init.d/apache
% ln -s /etc/rc.d/init.d/apache /etc/rc.d/rc3.d/S90apache

Dacă totul a decurs fără nici o eroare, serverul web va pori si va interpreta corect scripturile PHP.