Introducere
Tendinta de globalizare si circulatia informatiei prin Internet au
determinat schimbari radicale in viata oamenilor. Mai mult in viata
celor care traiesc in partea de "vest" a lumii. Si in Romania se
fac simtite "replicile" acestui val Tsunami al informatiei. Paginile
HTML reprezinta sursa principala de informatii din Internet. Exista
demult suport pentru "client-side scripting", implementat cu JavaScript.
Insa, in contextul actual al dinamismului si interactivitatii, surfer-ul
nu mai asista pasiv la citirea unei pagini de Web, ci isi poate exprima
opiniile, poate selecta ce informatii sa-i fie prezentate regulat
la vizitarea unui site sau poate face cumparaturi intr-un magazin
virtual. Toate aceste facilitati sunt oferite prin folosirea bazelor
de date si a limbajelor de scripting executate pe server-ul de web.
ASP si Cold Fusion sint doua dintre acestea, disponibile comercial.
Concurentul OpenSource al acestora este PHP. Ce este PHP-ul? El este
un limbaj de scripting ce combina concepte de Perl, Java si C, facind
invatarea acestuia o joaca. Pentru a deveni productiv nu sint necesare
decat cateva zile de lucru. Ajuns la versiunea 4, PHP a crescut exploziv
anul trecut. De la un numar de zeci de mii de site-uri, in scurt timp
a fost depasita bariera de 500.000, concurand de la egal la egal produsele
comerciale. Trioul format din PHP (limbaj de scripting server-side),
MySQL (server de baza de date) si Apache (server de web) a luat pe
neasteptate orice predictii. Slashdot, Freshmeat, LinuxToday sint
numai unele dintre site-urile importante care utilizeaza PHP. Peste
700 de functii sint disponibile, incluzand interfete pentru cele mai
populare baze de date, suport XML, generare dinamica de imagini si
documente PDF, PHP compilandu-se sub o multime de variante Unix si
sub Windows.
Instalare
Mai intii trebuie sa obtineti sursele MySQL
(http://www.mysql.com),
PHP (http://www.php.net) si
Apache (http://www.apache.org).
Primul pas este sa va asigurati
ca aveti vreo 70 Mbytes liberi si sa dezarhivati pachetele intr-un
director de lucru temporar:
tar xfz mysql-3.22.32.tar.gz
tar xfz apache_1.3.12
tar xfz php_4.0b4pl1.tar.gz
Compilarea MySQL nu ridica nici un fel de probleme daca aveti toate
librariile necesare. Executati simplu:
./configure --prefix=/usr/local ;
make ; make install
in directorul surselor MySQL. Dupa o perioada de timp destul de lunga,
compilarea si instalarea se termina si trebuie creata baza de date
necesara la autentificarea utilizatorilor. In directorul de baza ale
surselor MySQL executati scriptul:
scripts/mysql_install_db
si apoi porniti server-ul cu comanda:
/usr/local/bin/safe_mysqld &
Este evident ca nu o sa faceti acest lucru de fiecare data astfel incit
este bine sa instalati un script care se va executa la pornirea sistemului:
cp support-files/mysql.server.sh /etc/rc.d/init.d/mysql
chmod +x /etc/rc.d/init.d/mysql
chkconfig --level 3 5 mysql on
Verificati ca totul este in regula conectindu-va la baza de date cu
clientul mysql si executati citeva comenzi SQL. Trebuie sa retineti
ca, implicit, baza de date nu este protejata. Daca doriti sa o conectati
sau sa dezvoltati aplicatii Internet trebuie obligatoriu sa definiti
drepturi si utilizatori care au acces la ea.
Aveti doua optiuni de compilare pentru PHP: ca aplicatie CGI sau ca
modul de Apache. Va recomand cea de-a doua optiune deoarece nu da
batai de cap prea multe, dar ofera si mai multa flexibilitate. Mai
intai intrati in directorul de baza al surselor Apache si executati:
./configure
Atentie, nu scrieti nici un parametru in linia de comanda! Din acest
moment se poate trece la configurarea compilarii PHP. Pentru aceasta,
intrati in directorul surselor PHP si executati:
./configure --with-apache=../apache_1.3.12 \
--with-mysql --enable--trackvars --with-ftp
Puteti compila suport LDAP si XML (daca aveti librariile corespunzatoare
instalate) adaugind la linia de comanda de mai sus optiunile:
--with-ldap --with-xml
Dupa se termina configurarea, in mod clasic, executati:
make
make install
Ultima comanda copiaza libraria PHP generata in structura de directoare
a surselor Apache, pentru a fi convertita in modul la compilarea serverului
de web. Treceti in directorul surselor Apache si executati linia de
comanda (tot textul reprezinta linia de comanda!):
./configure --prefix=/usr/local --enable-module=all\
--activate-module=src/modules/php4/libphp4.a
Compilarea si instalarea Apache si implicit a PHP se face executand:
make; make install
Singurul pas ramas este configurarea server-ului de web si a PHP. Cu
editorul preferat deschideti fisierul /usr/local/conf/httpd.conf.
Decomentati (adica eliminati caracterul #) liniile urmatoare:
#AddType application/x-httpd-php .php
#AddType application/x-httpd-php-source .phps
In acest fel Apache este invatat
ca fisierele cu extensia .php trebuie
date spre executie modulului PHP. Cautati linia: DirectoryIndex index.html
si inlocuiti-o cu DirectoryIndex index.html index.php . Acest lucru
va determina Apache sa caute si fisiere index.php ca fisiere index
in directoarele in care nu precizati adresa URL completa (exemplu:
http://www.situl-meu.ro/director/). Este timpul sa porniti server-ul
Apache:
/usr/local/bin/apachectl start
Ar fi bine sa scrieti aceasta linie in fisierul
/etc/rc.d/rc.local
pentru a porni automat Apache-ul la startarea Linux-ului.
Pentru a
testa ca PHP functioneaza corect, creati un fisier ce contine linia:
<?php phpinfo(); ?>
si copiati-l in /usr/local/htdocs/ sub numele test.php.
Porniti Netscape
sau KFM din KDE si la locatie scrieti http://localhost/test.php. Daca
totul merge bine veti obtine o pagina frumos colorata si o multime
de informatii despre Apache si PHP.
PHP - intalnire de gradul III
A venit momentul sa facem ceva mai complex de o linie. Mai intai sa
cream o tabela in baza de date test. Porniti programul client mysql
si executati comenzile urmatoare:
use test;
create table angajati (id int(8), nume char(30), salariu float(10,2));
insert into angajati values (1, 'Popescu Ion', 2200000);
insert into angajati values (2, 'Ilie Adriana', 1500000);
insert into angajati values (3, 'Constantin Florin', 3500000);
Pentru a va asigura ca datele dumneavoastra sint inregistrate corect
afisati-le cu comanda: select * from angajati;. Sa facem acum un script
PHP care citeste tabela angajati si ii afiseaza continutul intr-o
pagina de web generata dinamic. Creati fisierul
/usr/local/htdocs/exemplu1.php
si scrieti:
<html>
<head>
<title>Exemplu1</title>
</head>
<h1>Angajati</h1>
<table border=1>
<?php
// ma conectez la baza de date
$conn=mysql_connect("localhost","root","");
mysql_select_db("test",$conn);
/* execut interogarea dorita */
$rezultate=mysql_query("SELECT * FROM angajati",$conn);
// extrag si afisez rezultatele interogarii
while ($linie = mysql_fetch_row($rezultate)) {
echo "<tr>\n";
echo "<td>$linie[0]</td>\n";
echo "<td>$linie[1]</td>\n";
echo "<td>$linie[2]</td>\n";
echo "</tr>\n";
}
?>
</table>
</html>
Acum puneti browser-ul dumneavoastra sa afiseze
http://localhost/exemplu1.php
si veti obtine pagina din imaginea alaturata.
Iata o scurta explicatie
a liniilor de cod. Daca aveti ceva experinta de programare ati sesizat
imediat ca PHP suporta toate stilurile de comentarii: Perl, C si C++.
De asemenea, codul este inclus direct printre liniile HTML, incadrandu-l
intre tagurile <?php si ?>. Nu conteaza de cite blocuri PHP includeti
in pagina. Variabilele incep cu semnul $ (dolar) si pot fi scalare,
array-uri, clase si altele. In prima linie incerc conectarea la baza
de date MySQL precizind numele calculatorului gazda, numele meu de
cont si parola de conectare (in acest exemplu este nula). Functia
returneaza un identificator de conexiune pe care il voi folosi in
operatiile urmatoare. Urmatorul pas este sa ma conectez la baza de
date care gazduieste tabela de angajati, utilizand functia
mysql_select_db().
Atentie, este nerecomandat sa schimbati baza de date curenta pe parcursul
executiei unui script! Rezultatele sunt imprevizibile. Acestea fiind
precizate, pot executa orice interogare doresc. Cea mai utilizata
functie pentru accesul bazelor de date de catre programatorii PHP
este bineinteles mysql_query(), care primeste ca parametrii textul
interogarii si identificatorul de conexiune. Deoarece eventualele
date rezultate pot fi imense, executia unei interogari returneaza
un identificator pentru blocul de rezultate. Extragerea lor poate
fi facuta cu o multime de functii. Dumneavoastra o veti folosi pe
cea pe care o considerati adecvata aplicatiei. In acest caz am folosit
mysql_fetch_row() care returneaza un array, ale carui elemente constituie
o inregistrare din baza de date . Ciclul while se executa atata timp
cit pot extrage inregistrari rezultate din interogare. Afisarea de
texte sau generarea dinamica de cod HTML este facuta de functia
echo. Ea este identica cu functia print din Perl.
Elementele pentru coloanele
ID, NUME si SALARIU le accesez folosind indexarea in array-ul
$linie.
Trusa cu scule
Exista numeroase site-uri ce ofera scripturi PHP, majoritatea acestora
fiind contributii OpenSource. Un start bun in invatare este sa instalati
documentatia HTML a PHP si sa cumparati o carte de SQL. De asemenea,
instalati si manualul MySQL (tot HTML), si incercati sa sesizati particularitatile
lui, deoarece nu exista servere SQL care sa se comporte identic. Exista
o lista de discutii romaneasca moderata unde se discuta pe teme de
HTML, PHP si multe alte lucruri legate de webdesign. Trimiteti un
email gol la webexpert-subcribe@egroups.com si considerati-va binevenit
in comunitatea design-erilor HTML. Pentru a va usura munca de scriere
de cod PHP, instalati editorul nedit si luati de pe acelasi site si
fisierele de configurare pentru evidentierea codului PHP-HTML. Intrebati
orice programator PHP-MySQL si va va spune entuziasmat ce utilitare
grozave sint kmysqladmin si kmysql. Instalarea acestora ar trebui
sa fie cel de-al doilea pas dupa instalarea PHP, MySQL si Apache.
Tiberiu Craciun
a creat kphpdev, un mediu de dezvoltare
ce se vrea o replica la un produs similar facut de Microsoft. Desi
proiectul este la inceput, exista posibilitatea de lucru simultan
la acelasi proiect a mai multor programatori, functioneaza un client
MySQL integrat, un editor PHP si un sistem de administrare a proiectelor.
Trebuie sa obtineti arhivele .tgz pentru kphpdev, kphpdev_server si
kphpdev_server_setup. Daca doriti sa invatati HTML si sa lucrati productiv
site-uri, instalati imediat Quanta+. Acesta este un editor HTML integrat
care se adreseaza in acelasi timp incepatorilor si profesionistilor
si a fost creat de Yacovlev Alexander
si
Dmitry Poplavsky.
Resurse
|