Dezvoltarea unui site PHP cu baze de date PostgreSQL

Vezi subiectul anterior Vezi subiectul urmator In jos

Dezvoltarea unui site PHP cu baze de date PostgreSQL

Mesaj  zooky la data de Vin Mar 20, 2009 10:43 pm

Dezvoltarea unui site PHP cu baze de date PostgreSQL de Culmes Aurelian


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 free, 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 - http://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 rand 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 asta creeam 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 in 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
# exit




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 Proba cu o tabela numita Test.


Aceasta o cream astfel, dupa ce am pornit server-ul cu comanda de mai sus:
# createdb Proba
# psql Proba
Proba=> create table Test(Nume varchar(20),Prenume varchar(20),
Proba-> Email varchar(30));



Astfel ati creat baza de date Proba si in cadrul ei tabela Test.
Acum nu mai ramane decat sa introduceti cateva inregistrari ca sa aveti o
baza de date.


Aceasta se face astfel:

Proba=>INSERT INTO Test VALUES('Ionescu','Ion','ionescu@linux.ro');
Proba=>INSERT INTO Test VALUES('Popescu','Marin','popescu@linux.ro');
Proba=>INSERT INTO Test VALUES('Marin','Adrian','marin@linux.ro');



Si puteti introduce cate inregistrari doriti.
********************************************


Acum trebui sa setam drepturi de extragere pentru utilizatorul folosit de server-ul de web Apache.

# su postgres
# psql proba
Proba=> GRANT SELECT ON Test TO nobody;
Proba=> \z
Proba=> \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.


Instalarea server-ului de web APACHE cu PHP ca modul si cu suport de baze de date PostgreSQL
Pentru a instala APACHE cu PHP introducem urmatoarele instructiuni:

# su
# cd /usr/src
# tar xzvf /local/download/apache_1.3.x.tar.gz
# tar xzvf /local/download/php-4.0.x.tar.gz
# cd apache_1.3.x
# ./configure --prefix=/usr/local/apache
# cd ../php-4.0.x
# ./configure --with-pgsql=/usr/local/pgsql \
--with-apache=../apache_1.3.x --enable-track-vars \
--enable-sysvsem --enable-sysvshm \
--enable-url-includes
# make
# make install
# cd ../apache_1.3.x
# ./configure --prefix=/usr/local/apache \
--activate-module=src/modules/php4/libphp4.a
# make
# make install
# cd ../php-4.0.x
# cp php4.ini-dist /usr/local/lib/php4.ini
# exit



Acum trebuie configurat serverul de web APACHE.Aceasta se face prin modificarea catorva setari in fisierul /usr/local/apache/conf/httpd.conf

In acesta trebuie modificate directivele: ServerAdmin , ServerName, DocumentRoot si directiva Directory dar si
AddType application/x-httpd-php4 .php
DirectoryIndex index.htm index.php



Acestea toate si celelalte sunt bine comentate in fisierul httpd.conf din directorul conf al server-ului APACHE.Comentariile incluse in fisier va dau explicatii detaliate pentru a putea face corect aceste setari.Acum dupa ce am facut toate setarile de rigoare nu ne ramane decat sa pornim server-ul.


Pornirea serverului APACHE se face astfel:

# su
# cd /usr/local/apache/bin
# ./apachectl start


Iar oprirea server-ului se face tot cu comanda apachectl astfel:
# ./apachectl stop

Exemple


Acum dupa ce am instalat toate cele necesare sa vedem mai intai daca PHP-ul conlucreaza bine cu server-ul Apache.Trebuie sa cream un fisier pe care il numim index.php,iar in acest fisier vom scrie urmatorul cod PHP:

echo phpInfo();
?>



Acest fisier il salvam in directorul pe care l-am setat la directiva DocumentRoot in fisierul httpd.conf sub numele index.php


Apoi il apelam din browser astfel: http://localhost/index.php


Presupun ca ati setat ServerName localhost,altfel apelati fisierul cu http://xxxxx/index.php
xxxxx reprezinta numele serverului pe care l-ati setat tot in fisierul httpd.conf cu directiva ServerName.

Ruland micul script PHP pe care l-am scris mai devreme atunci trebuie sa obtineti o pagina cu toate setarile server-ului Apache si cu modulele aferente lui.

Odata ce am vazut ca PHP-ul merge impreuna cu Apache-ul,acum trebuie sa vedem cum merg toate impreuna adica Apache-ul cu PHP-ul si cu PostgreSQL.

Presupunem ca avem ca mai devreme baza de date Proba cu tabela Test, care are trei campuri si anume Nume,Prenume,Email.

Vom scrie urmatorul script PHP care se conecteaza la PostgreSQL:






$conexiune = pg_connect("","","","","Proba");
if(!$conexiune) {
echo "
A aparut o eroare la conexiunea cu baza de date.
";
exit;
}
$strsql = "SELECT * FROM Test ORDER BY Nume;";
$rez = pg_Exec($conexiune,$strsql);
$num = pg_NumRows($rez);
for($j=0;$j<$num;$j++) {
echo "Nume: ".pg_result($rez,$j,0)."
Prenume: ".pg_result($rez,$j,1)."

E-mail: "pg_result($rez,$j,2)."

";
}
pg_close($conexiune);
?>





Acest script de mai sus ar trebui sa listeze toate inregistrarile din tabela Test care face parte din baza de date Proba.

Urmand exemplu de mai sus si rasfoind si manualul PHP puteti crea pagini dinamice in functie de imaginatia si de dorintele voastre.
avatar
zooky
Moderator
Moderator

Numarul mesajelor : 147
Data de inscriere : 15/03/2009
Varsta : 24
Localizare : Cernatesti City

Vezi profilul utilizatorului http://e-learning.forumhit.ro

Sus In jos

Vezi subiectul anterior Vezi subiectul urmator Sus


 
Permisiunile acestui forum:
Nu puteti raspunde la subiectele acestui forum