Cu ajutorul acestui tutorial veti afla cea mai usoara modalitate de a instala si seta aplicatii precum PostgreSQL, Apache si PHP. In acest articol voi trata modul de instalare si configurare a unui server WEB (utilizam Apache ca server web) cu un modul de PHP si cu serverul de baze de date PostgreSQL. Cu aceste produse, care sunt gratuite, puteti construi site-uri cu continut dinamic preluAnd date din baza de date PostgreSQL, cu ajutorul limbajului de scripting numit PHP.
Pentru a putea face ceea ce ne-am propus trebuie sa avem instalat Linux-ul si ne mai trebuie pachetele cu surse ale celor trei produse. Presupunem ca vrem sa instalam : Apache 1.3.x ,PHP 4.0.x si PostgreSQL 7.0.x. Pentru aceasta trebuie sa download-am cele trei produse astfel:
APACHE
PHP
POSTGRESQL
Acestea le gasiti la adresele urmatoare:
APACHE - www.apache.org
PHP - http://www.php.net
POSTGRESQL - http://www.postgresql.org.
Odata ce am facut rost de cele trei pachete vom instala pachetele In directoare astfel: APACHE in /usr/local/apache, PHP ca modul al APACHE si POSTGRESQL In /usr/local/pgsql/, si catalogul de web este: /usr/local/apache/htdocs.
Instalarea server-ului POSTGRESQL
In primul rInd trebuie sa cream un cont pentru server-ul de baze de date astfel:
# su # /usr/sbin/adduser postgres # passwd postgres # exit
Odata ce am facut aceasta cream directoarele necesare pentru a putea instala server-ul POSTGRESQL cu permisiunile adecvate:
# su # cd /usr/src # mkdir pgsql # chown postgres:postgres pgsql # cd /usr/local # mkdir pgsql # chown postgres:postgres pgsql # exit
Acum incepem cu procesul de compilare si instalare:
# su postgres # cd /usr/src/pgsql # tar xzvf /local/download/postgres-7.0.x.tar.gz
Aici difera un pic in functie de versiune, configure poate fi ?n directorul postgres-7.0.x/src sau poate fi in postgres-7.0.x. Deci vedeti unde este, eventual dintr-o alta consola si apoi faceti schimbarea de director:
# cd /usr/src/pgsql/postgresql-7.0.x/src # ./configure --prefix=/usr/local/pgsql \ --with-tcl --with-perl # gmake all > make.log 2>&1 & # tail -f make.install.log # exit
Acum trebuie sa configuram sistemul si sa-l configuram astfel incat sistemul sa stie unde sunt bibliotecile, trebuie sa actualizam fisierul /etc/ld.so.conf:
# su # echo /usr/local/pgsql/lib >> /etc/ld.so.conf # /sbin/ldconfig # exit
De asemenea trebuie sa actualizam fisierul ~/.bash_profile al contului de administrator al serverului POSTGRESQL:
# su postgres
Apoi editam fisierul ~/.bash_profile si adaugam urmatoarele linii:
PATH =$PATH:/usr/local/pgsql/bin
MANPATH=$MANPATH:/usr/local/pgsql/man
PGLIB=/usr/local/pgsql/lib
PGDATA=/usr/local/pgsql/data
export PATH MANPATH PGLIB PGDATA
Odata ce am instalat si configurat serverul de baze de date POSTGRESQL trebuie sa initializam si sa pornim server-ul astfel:
# su postgres # initdb # cd # nohup postmaster -i > pgserver.log 2>&1 & ********************************************
Presupunem ca avem o baza de date numita Baza cu o tabela numita Test.
Aceasta o cream astfel, dupa ce am pornit server-ul cu comanda de mai sus:
# createdb Baza # psql Baza Baza=> create table Test(Nume varchar(20),Prenume varchar(20), Baza-> Email varchar(30));
Astfel ati creat baza de date Baza si in cadrul ei tabela Test.
Acum nu mai ramane decit sa introduceti citeva inregistrari ca sa aveti o baza de date. Aceasta se face astfel:
Baza=>INSERT INTO Test VALUES('Ionescu','Ion',' ionescu@gnulinux.ro '); Baza=>INSERT INTO Test VALUES('Popescu','Marin',' popescu@gnulinux.ro '); Baza=>INSERT INTO Test VALUES('Marin','Adrian',' marin@gnulinux.ro ');
Si puteti introduce cate inregistrari doriti.
********************************************
Acum trebuie sa setam drepturi de extragere pentru utilizatorul folosit de server-ul de web Apache:
# su postgres # psql Baza Baza=> GRANT SELECT ON Test TO nobody; Baza=> \z Baza=> \q # exit
In prealabil trebuia creat user-ul nobody cu comanda:
# createuser nobody
altfel riscati ca server-ul sa va spuna ca user-ul nobody nu exista.
Comanda createuser nobody o dati dupa ce ati intrat ca utilizator postgres si ati pornit server-ul cu comanda amintita mai sus (cea cu nohup postmaster).