Author
dinhtu
View
213
Download
0
Embed Size (px)
Implementarea unui sistem de dezvoltare a aplicaiilor Web
Instalare PHP, MySql, Apache i crearea legturilor dintre ele
l. Radu Damian,
Facultatea de Electronic, Telecomunicaii i Tehnologia Informaiei, Iai
Lucrarea de fa este orientat spre punerea la punct a unui sistem de dezvoltare de aplicaii web,
tehnologia avut n vedere este combinaia:
Apache ca server web, interfa intre aplicaia realizat i restul lumii
MySql, ca server de baze de date
PHP, Hypertext Preprocessor, ca limbaj de procesare la nivelul server-ului
Orientarea spre aceste aplicaii este dat de rspndirea lor, legat in primul rnd de gratuitate,
transparen mai mare n dezvoltare, i maturitate a tehnologiilor, dovedit printr-o istorie destul de
indelungat (pentru aplicaii IT). Succesiunea iniialelor poate fi intlnit mai ales n sintagma LAMP (L- Linux,
echipa de multe ori intlnit n sistemele de lucru a server-elor web) dar si WAMP (W - Windows) aa cum va fi ntlnit pe parcursul prezentei lucrri de laborator. Dei imperecherea Windows ca sistem de operare -
AMP ca server web/date/aplicaii este mai rar intlnit n cadrul sistemelor de meninere a server-elor web
capabile de aplicaii (hosting) este o situaie care prezint destule avantaje pentru a fi deseori ntlnit n
momentul dezvoltrii aplicaiilor respective.
Lucrarea de laborator va avea ca scop nfiarea parcursului care trebuie parcurs pentru a instala
Apache, MySql i PHP pe un sistem cu sistem de operare Windows 2000 i a legturilor care trebuie create
intre aceste aplicaii pentru a le permite conlucrarea.
Alegerea sistemului de operare Windows a fost impus de faptul c, n ciuda discuiilor aprinse legate
de calitate, stabilitate, eficien, etc. Windows rmne cel mai rspndit sistem de operare pe staiile de lucru,
iar numrul de aplicaii (inclusiv profesionale) disponibile pentru Windows i ofer, i i vor oferi i n viitorul
previzibil, un avantaj n faa altor sisteme de operare. Partizanii Linux se vor putea consola cu faptul c
sistemul lor preferat de operare vine deja cu Apache, MySql i PHP preinstalate i preconfigurate. Partizanii
MacOS vor trebui sa se descurce singuri. Alegerea Windows 2000 ca versiune de Windows utilizat e legat de:
n cazul realizrii mainii care va constitui server-ul pe o main virtual rulnd pe calculatorul
dezvoltatorului, utilizarea unui sistem de operare mai puin pretenios va consuma mai puine resurse
de pe calculatorul gazd.
nu e lipsit de interes posibilitatea unui calculator independent pentru a rula post de server de
dezvoltare n reeaua organizaiei sau reeaua personal a celui care realizeaz aplicaia web. n
momentul de fa un calculator capabil de a rula decent Windows 2000 dar inutilizabil ca staie de
lucru (depit moral de aplicaiile prezentului, de ex. Windows Vista/7/8 i un program antivirus)
poate fi achiziionat extrem de ieftin (50-100 RON).
Nu este obligatoriu ca sistemul de server sa fie instalat pe o main separat (real sau virtual) i nici
ca dezvoltarea aplicaiilor s se realizeze lucrnd pe acea main. Cel mai des separarea este impus de
necesiti de securitate i de protejare a mainii de lucru:
de atacuri din afar (un server este automat mai vizibil pe Internet i mai greu de protejat) .
de utilizare neperformant (sistemele de test, pe care se experimenteaz o aplicaie inainte de a fi
distribuit, sau, cum e cazul curent, sistemele de laborator pe care se fac experimente n scopul
nvrii).
1. Varianta simpl i rapid (For dummies - pentru bunica)
Aceast variant (nerecomandat) permite obtinerea rapid a unui sistem de dezvoltare AMP. Acest
lucru se realizeaz cu ajutorul unei aplicaii care instaleaz automat succesiunea amintit. Ca exemple
amintim:
EasyPHP (http://www.easyphp.org/)
WAMP Server (http://www.wampserver.com/)
O list a mai multor astfel de suite cu detalii poate fi citit la adresa
"http://en.wikipedia.org/wiki/Comparison_of_WAMPs".
Vom exemplifica pentru WAMP procedura de instalare pe o main virtual. De pe internet se
descarc programul corespunztor (la momentul scrierii acestor rnduri este vorba de WampServer2.2.exe ce
conine - Apache 2.2.22, MySQL 5.5.24, PHP 5.4.3) i se copie pe sistemul virtual (Guest) prin drag'n'drop sau
prin intermediul unui director partajat cu drepturi de scriere de pe sistemul virtual.
Procedura de instalare este rapid, singura alegere fiind la nivelul directorului n care va fi instalat
aplicaia (implicit "c:\wamp") care va avea drept consecin locul in care vor fi poziionate fiierele accesibile
prin server-ul Apache (implicit "c:\wamp\www\"). Succesul instalrii poate fi observat dup pornirea server-
ului prin apariia icoanei de control wamp n "system tray", i prin ncrcarea paginii de start a
server-ului (fiind vorba de calculatorul local adresa este "http://localhost") n browser (Win 2000 cu SP4 are
preinstalat Internet Explorer 5.0).
http://www.easyphp.org/http://www.wampserver.com/
Utilizarea mouse-ului click dreapta permite oprirea server-elor ("Exit") indicat i prin oprirea
proceselor httpd.exe i mysqld.exe i eliberarea resurselor. Utilizarea mouse-ului click stnga permite afiarea
unui meniu de control din care se poate alege deschiderea spre exterior a server-ului ("Put online") ceea ce
permite accesarea server-ului (cel mai adesea prin intermediul adresei IP) de pe alte maini, n caz contrar
accesul fiind permis doar de pe maina pe care e instalat server-ul (localhost). De asemenea se pot
activa/dezactiva unele module, i se pot accesa fiierele de configurare pentru toate aplicaiile.
Soluia "all-in-one" are anumite avantaje, dintre care cel mai important este legat de faptul c (cel
puin n cazul WAMP) se pot instala simultan mai multe versiuni pentru fiecare aplicaie n parte care pot fi
rulate pe rnd permind astfel testarea unei aplicaii intr-o multitudine de configuraii (oricare posibil n
cazul unui server de hosting real).
Totui dezavantajele sunt mai mari i mai multe dect avantajele, astfel n cazul unui utilizator
profesionist este recomandat instalarea individual a aplicaiilor. Dezavantajele principale in de securitate
(de exemplu pentru server-ul MySql se creaz un singur utilizator, root, cu drepturi depline, inclusiv pentru
aplicaii, chiar dac se poate schimba parola) i de dificultatea controlrii n amnunt a aplicaiilor, lucru care
poate deveni necesar pentru anumite aplicaii realizate.
2. Instalarea individual a aplicaiilor
Se vor exemplifica modalitile de instalare pentru Apache 2.0.63, MySQL 5.0.19, PHP 5.2.0 pe
Windows 2000. Chiar dac acestea nu sunt ultimele variante disponibile sunt totui de ultim generaie.
Motivul alegerii explicite a acestor variante este legat de suportul pentru sistemul de operare Windows 2000 la
care se renun n versiunile mai noi (de exemplu MySQL 5.0 prezint suport pentru Windows 2000 n timp ce
MySQL 5.1 nu). Oricum sistemele comerciale de hosting bazate pe LAMP nu se "reped" la instalarea noilor
versiuni imediat ce acestea apar, preferndu-se ntotdeauna alegerea soluiilor stabile i verificate timp ct
mai ndelungat. Se prezinta mai jos situaia prezent n dou astfel de situaii.
Instalarea efectiv a aplicaiilor nu prezint complexiti deosebite si este exemplificat n continuare.
2.1. Apache
Server-ul Apache poate fi obtinut de la adresa "http://httpd.apache.org/" in diverse variante si
versiuni. Versiunea 2.0.63 este ultima versiune 2.0. Conform conveniilor Linux versiunile pare (2.0, 2.2, etc.)
reprezint versiunile stabile iar cele impare (2.3.5 de exemplu) sunt versiunile viitoare n teste, nerecomandate
pentru utilizare n aplicaii comerciale. Versiunile pentru Windows se regsesc n forma Windows Installer File
(extensia msi - executabil n versiunile recente Windows) i sunt prezente cu OpenSSL (Secure Sockets Layer)
incluse sau fr. Versiunea care intereseaz este cuprins n fiierul " apache_2.0.63-win32-x86-no_ssl.msi".
Setrile implicite la instalare (cum ar fi calea) pot fi lsate nemodificate. De obicei o main de
dezvoltare a aplicaiilor, cum este cazul aici, nu este prevzut cu un nume de domeniu i implicit nici cu un
nume de server astfel nct, fr a fi esenial, dar mcar pentru a elimina o suit de erori care pot fi anunate
de server-ul Apache la fiecare pornire, e indicat s introducem adresa IP a mainii, aa cum e obinut prin
comanda "ipconfig /all" introdus n prompter-ul de comenzi text al sistemului de operare. Adresa de email a
http://httpd.apache.org/
administratorului e de obicei inutil deoarece de multe ori un server realizat pe sistem de operare Windows nu
are prezent i funcia SMTP. Este utilizat pentru a trimite anumite informaii prin email administratorului
(erori etc.).
[Sat Feb 20 23:18:36 2010] [notice] Apache/2.0.63
(Win32) configured -- resuming normal operations
[Sat Feb 20 23:18:36 2010] [notice] Server built: Jan
17 2008 22:58:29
[Sat Feb 20 23:18:36 2010] [notice] Parent: Created
child process 2160
[Sat Feb 20 23:18:36 2010] [notice] Child 2160: Child
process is running
[Sat Feb 20 23:18:36 2010] [notice] Child 2160:
Acquired the start mutex.
[Sat Feb 20 23:18:36 2010] [notice] Child 2160:
Starting 250 worker threads.
Calea implicit de instalare a programului apache este "C:\Program Files\Apache Group\Apache2\".
mpreun cu programele ce constituie aplicaia server se instaleaz i o aplicatie secundar extrem de util pe
o main de dezvoltare, intitulat Apache Service Monitor, accesibil din meniul de start sau din icoana de
control din "system tray". Aceast aplicaie permite pornirea/oprirea unui anume server Apache prezent pe
sistem. Prezint un buton intitulat "Services" care prezint lista de servicii din Windows. Este un moment n
care, dac se dorete se poate modifica serviciul corespunztor server-ului Apache pentru a nu porni automat
la pornirea calculatorului, schimbnd "Startup type" din Automatic n Manual. Aceast operaiune este
necesar de obicei doar n cazul n care se realizeaz instalarea aplicaiilor chiar pe maina de lucru, nu pe o
main dedicat. In acest caz ar putea aparea necesitatea pornirii serverului doar n momentul n care este
necesar.
Starea server-ului Apache se poate observa n programul amintit, dar detalii pot fi obtinute consultnd
fiierul text "error.log" ce poate fi gsit n directorul "C:\Program Files\Apache Group\Apache2\logs\".
Momentan in acest log pot fi gsite informaii relativ la pornirea/oprirea normal a server-ului.
2.2. PHP
Interpretorul HyperText Preprocessor PHP poate fi obinut la adresa "http://www.php.net/". Dei
exist i posibilitatea utilizrii unui procedeu automat de instalare ("PHP 5.2.x installer") n momentul de fa
acesta nu este foarte bine pus la punct i este preferabil controlul manual. PHP este un interpretor de text care
va fi lansat de Apache "cnd" va fi nevoie i ca atare, neavnd nevoie de control detaliat n legatur cu sistemul
de operare, instalarea pus la dispoziie automat nu este necesar.
Ca urmare pachetul cel mai util este pachetul arhiva ("PHP 5.2.x zip package") care conine toate
elementele necesare, elemente care pot fi dezarhivate ntr-un director oarecare, recomandat "C:\PHP" pentru
claritate.
2.3. MySql
Server-ul de baze de date MySql poate fi gsit la adresa "http://dev.mysql.com/downloads/mysql/"
Instalarea decurge fara probleme deosebite. Calea implicit de instalare " C:\Program Files\MySQL\MySQL
Server 5.0\" poate fi pastrat fr nici o problem. Restul opiunilor pot fi pstrate pe valorile implicite
http://www.php.net/http://dev.mysql.com/downloads/mysql/
deasemenea. La sfritul instalrii apare opiunea lansrii aplicaiei de configurare a server-ului i este
recomandat s facei imediat acest lucru, pentru a controla de la nceput cteva opiuni eseniale de
funcionare a aplicaiei.
Aplicaia de configurare a server-ului poate fi apelat din meniul de start i mai trziu dac este
nevoie, cu toate c instalarea aplicaiei MySql Administrator va permite control mai fin al server-ului. Pentru
configurarea la instalare a MySql urmrii punctul urmtor (3.1)
3. Configurare
Configurarea aplicaiilor va fi diferit ca metod de lucru. Dac MySql vine mpreun cu o aplicaie cu
interfa grafic bine pus la punct pentru modificarea fiierului text de configurare "my.ini", iar funcionarea
MySql este independent, n cazul Apache i PHP va trebui realizat modificarea fiierelor text de configurare
("C:\Program Files\Apache Group\Apache2\conf\httpd.conf" i "C:\PHP\php.ini") n aa fel nct s se realizeze
legtura dintre acestea (Apache va trebui sa gaseasc i s lanseze PHP la nevoie, acesta la rndul lui trebuind
s acceseze server-ul independent MySql).
Not! Este poate util instalarea anterioar a Notepad ++ (seciunea 4.4) naintea modificrii fiierelor de
configurare Apache i PHP datorit avantajelor evidente de vizualizare/cutare puse la dispoziie de acest
program (numai indicarea numrului de linie aa cum e menionat n continuare permite o accelerare
deosebit a aciunilor menionate).
3.1. MySql
Aplicaia de configurare a server-ului poate fi apelat din meniul de start i mai trziu dac este
nevoie, cu toate c instalarea aplicaiei MySql Administrator va permite control mai fin al server-ului. Se alege
configurare detaliat pentru a avea acces la opiunile de baz. Accesul la server (din exterior, din PHP) se va
realiza prin protocol TCP/IP care trebuie activat. Este poate util schimbarea portului implicit (3306) pe o
main care va juca strict rol de server de dezvoltare din raiuni de securitate mai strict. Un server care
comunica pe portul implicit MySql va fi mai sensibil la atacuri exterioare.
La capitolul configurare aplicaie este recomandat instalarea ca serviciu a aplicaiei, i se poate alege
pornirea automat a acestui serviciu (cazul unui server dedicat sau main virtual) sau nu (echivalent co
modificarea "Startup type" din Automatic n Manual n serviciile Windows - cazul n care server-ul funcioneaz
direct pe maina de dezvoltare, pentru pornirea/oprirea dup nevoie a server-ului). Trebuie de asemenea
aleas o parol (puternic) pentru contul de administrare ("root") i se poate alege a permite sau nu accesul
de pe alte maini a utilizatorului "root" la server-ul MySql. Tipic, pe un server dedicat (virtual sau real) ar trebui
permis acest acces deoarece programatorul va lucra n mod curent pe maina de dezvoltare, n cazul n care
server-ul este instalat chiar pe maina de dezvoltare este contrar contraindicat permiterea acestui acces.
Facilitatea de configurare a server-ului permite modificarea unui numr mai mare de opiuni,
schimbarea unelor dintre ele fiind utile (cu o documentare prealabil asupra sensului) dar majoritatea pot fi
lsate la valorile implicite. Menionam ca utile/utilizabile: modificarea gradului de ocupare a resurselor (care
poate fi diferita pe main dedicat, virtual sau real, dar nerecomandat pe o main de dezvoltare),
modificarea setului implicit de caractere n latin2 sau UTF8 pentru lucrul cu diacriticile romneti, tipul
tranzacional sau nu al bazei de date - depinznd mai ales de tipul de baz de date a server-ului de hosting
int, locaia fiierelor binare ce conin datele efective memorate de server etc.
3.2. Apache
Fisierul text de configurare se numete "httpd.conf" poate fi gsit n directorul (implicit) "C:\Program
Files\Apache Group\Apache2\conf\". In acest fiier se gsesc suficiente explicaii pentru configurarea server-
ului (caracterul "#" la nceputul liniei transform linia respectiv n comentariu), dar n anumite situaii o
documentare suplimentar este recomandat.
Anumite optiuni sunt preconfigurate n timpul instalrii, de exemplu:
ServerRoot "C:/Program Files/Apache Group/Apache2" (linia 57) calea spre programe - NU trebuie
schimbat
ServerAdmin so[email protected] (linia 198)
ServerName 192.168.72.128:80 (linia 212)
DocumentRoot "C:/Program Files/Apache Group/Apache2/htdocs" (linia 228) - locaia documentelor
vizibile din exterior.
Anumite opiuni este recomandat s fie schimbate. Locaia implicit a documentelor de exemplu
"C:/Program Files/Apache Group/Apache2/htdocs" este greu de accesat din acest motiv este recomandat s se
creeze un director n rdcin n care s fie stocate fiierele. Acel director va trebui accesat frecvent pentru
stocarea fiierelor din programul de editare, deci pe o masin dedicat (real sau virtual) va trebui ca acest
director s fie partajat n reea ("Share"). Deci recomandat:
DocumentRoot "C:/Server" (linia 228) - locaia documentelor vizibile din exterior.
Aceast schimbare implic i modificarea drepturilor de acces corespunztoare, opiunea fiind necesar s devin:
(linia 253)
Deoarece vom realiza server-ul pentru a servi n special fiiere care conin i cod PHP va mai fi
necesar schimbarea opiunii "DirectoryIndex index.html index.html.var" n:
DirectoryIndex index.php index.html index.html.var (linia 321) - fiierul implicit trimis de Apache dac
URL-ul primit reprezint un director.
Mai rmne de realizat (ca modificare esenial) instruirea Apache s utilizeze PHP ca interpretor
pentru fiierele PHP. Utilizarea recomandat este ncrcarea PHP ca modul Apache iar instruciunile pot fi
gsite n fiierul "install.txt" care vine impreun cu PHP (locaia n cazul respectrii setrilor anterioare este
"C:\PHP\install.txt"). Se poate cuta n acest document zona corespunztoare "Apache 2.0.x on Microsoft
Windows". Pentru versiunea PHP 5.2.0 exemplificat aici se va regsi aceast seciune:
# For PHP 5 do something like this: LoadModule php5_module "c:/php/php5apache2.dll" AddType application/x-httpd-php .php # configure the path to php.ini PHPIniDir "C:/php"
Indicaiile prezente n fiier amintesc necesitatea schimbrii cii spre directorul PHP cu cea efectiv,
faptul c n configurarea text pentru Apache se utilizeaz slash ("/") n loc de backslash ("\") pentru delimitarea
directoarelor n cale, i "Users of Apache 2.2.x may use the documentation below except the appropriate DLL
file is named php5apache2_2.dll and it only exists as of PHP 5.2.0.". Ca urmare trebuie introduse n fiierul
"httpd.conf" liniile noi:
LoadModule php5_module "C:/PHP/php5apache2.dll"
AddType application/x-httpd-php .php
PHPIniDir "C:/PHP"
Alte opiuni Apache sunt utile (uneori chiar eseniale din punctul de vedere al securitii - cum ar fi
seciunea "AccessFileName .htaccess" i cele asociate) i permit controlul n detaliu al server-ului, dar nefiind
eseniale ntr-un sistem de dezvoltare a aplicaiilor rmn pentru studiu individual.
3.3. PHP
Aa cum este amintit anterior ("# configure the path to php.ini") PHP folosete configurrile dintr-un
fiier text editabil "php.ini". n acest moment al exemplificrii n directorul "C:\PHP" nu se gsete nici un fiier
"php.ini". Pachetul arhiva contine dou fiiere "php.ini-recommended" i "php.ini-dist" care pot fi folosite ca
model pentru a crea un fiier "php.ini" adaptat cerinelor de pe maina configurat. Fiierul "php.ini-dist"
conine setrile implicte, utilizate de PHP chiar i n cazul absenei "php.ini" i este mai puin strict dar i mai
puin sigur. Se recomand redenumirea celui de-al doilea fiier "php.ini-recommended" n "php.ini" i editarea
acestui fiier pentru detalierea configurrilor.
Ca i n cazul Apache n fiier se gsesc suficiente explicaii pentru configurarea PHP-ului (caracterul ";"
la nceputul liniei transform linia respectiv n comentariu), dar n anumite situaii o documentare
suplimentar este recomandat.
PHP va fi utilizat mcar pentru acces la baze de date MySql deci va trebui ncrcat extensia
corespunztoare. Alte extensii utile sunt biblioteca grafic "gd2" i eventual altele dac aplicaia respectiv o
impune. Extensiile se regsesc n subdirectorul "ext" din locaia in care a fost amplasat PHP. O modificare
esenial n "php.ini" va fi indicarea cii respective:
extension_dir = "C:\PHP\ext" (linia 520)
Trebuie apoi specificate extensiile ncrcate de PHP, dup dorin. Extensiile exist n "php.ini" dar
eliminate prin comentariu (";"). Trebuie eliminat acest caracter din faa extensiilor care se doresc folosite.
extension=php_gd2.dll (linia 639)
extension=php_mysql.dll (linia 651) (Facultativ ncepnd cu 2015)
extension=php_mysqli.dll (linia 652)
Este recomandat verificarea prezenei fiierelor "dll" corespunztoare extensiilor n directorul
specificat extension_dir = "C:\PHP\ext".
Dac va fi schimbat portul TCP/IP din cel implicit "3306" la configurarea MySql (vezi n continuare)
trebuie schimbat i seciunea existent dar neiniializat, neiniializat nsemnnd implicit:
mysql.default_port = (linia 765)
Alte seciuni care ar putea interveni n funcie de aplicaie:
session.save_path = "C:\PHP\sessiondata" (linia 969) n cazul n care se folosesc funciile de control a
sesiunii, directorul indicat poate fi modificat dup dorin
max_execution_time = 30 (linia 300) limitare a timpului maxim de execuie - secunde, util n cazul
scripturilor intensive, dar protecie contra unor erori n faza de dezvoltare
max_input_time = 60 (linia 301) limitare a timpului de ateptare a datelor de intrare - secunde, util n
cazul reelelor lente, dar protecie contra unor erori de comunicaii
memory_limit = 16M (linia 300) limitare a memoriei maxime utilizate - octei, util n cazul scripturilor
ce controleaz multe date, dar protecie contra unor erori n faza de dezvoltare
post_max_size = 8M (linia 468) limitare a cantitii datelor de intrare - octei, util n cazul trimiterii
spre server a unor cantiti mari de date (cmpuri BLOB n MySql), dar protecie contra unor erori de
comunicaii sau de programare
file_uploads = On (linia 566) permiterea/interzicerea trimiterii de fiiere spre server
upload_max_filesize = 2M (linia 573) limitare a dimensiunii fiierului trimis - octei, util n cazul
trimiterii spre server a unor cantiti mari de date, dar protecie contra unor erori de comunicaii sau
de programare
Not important 1. Unele extensii PHP necesit ca anumite biblioteci s poat fi gsite de sistemul de operare.
Este cazul extensiei MySql care are nevoie de utilizarea bibliotecii "libmysql.dll" care se gsete n directorul
"C:\PHP". Se impune ori copierea acestui fiier ntr-un director aflat n variabila "PATH" a sistemului (de
exemplu "C:\Windows\system32") ori modificarea acestei variabile sistem prin adugarea directorului
"C:\PHP".
Not important 2. Server-ul Apache trebuie repornit dup schimbarea fiierelor de configurare Apache/PHP
pentru a permite reiniializarea sa cu noile valori introduse. Acest lucru poate fi fcut cu ajutorul aplicaiei
Apache Service Monitor iar succesul poate fi observat prin modificarea liniilor introduse la pornire n log-ul de
erori a serverului ("error.log" amintit anterior), linia "Apache/2.0.63 (Win32) configured -- resuming normal
operations" devine "Apache/2.0.63 (Win32) PHP/5.2.0 configured -- resuming normal operations".
4. Aplicaii utile
4.1. Apache
Server-ul Apache are o funcionare de sine stttoare i intervine destul de puin n partea de
dezvoltare a aplicaiilor. Totui funcionarea implicit n tandem cu interpretorul PHP face ca erorile i
notificrile mai puin eseniale (warning) privind funcionarea scripturi-lor PHP s se regseasc n log-ul de
erori "error.log" a server-ului Apache. Consultarea facil a acestui log este benefic n faza de dezvoltare a
aplicaiilor.
O aplicaie recomandat este LogView, disponibil gratuit la adresa
"http://www.rftech.ro/logview.php". Aplicaia permite ncrcarea automat a unui fiier la intervale regulate
de timp, cu evidenierea modificrilor aprute fa de ultima citire, i cu posibilitatea semnalizrii n "system
tray" a apariiei unor modificri. Aplicaia funcioneaz pe toate sistemele Windows >= 2000 i este
recomandat s fie rulat pe maina de dezvoltare a aplicaiilor i nu pe maina server (real sau virtual), caz n
care e nevoie ca fiierul log de erori s fie accesibil prin reea ("C:\Program Files\Apache
Group\Apache2\logs\" partajat cu drepturi de citire).
http://www.rftech.ro/logview.php
4.2. PHP
O opiune suplimentar interesant i extrem de util celor care realizeaz dezvoltarea de programe
este utilitarul de documentaie n format chm - Compiled Help File, disponibil ntr-un pachet separat. Dei
documentaia este disponibil i n format HTML, avantajul formatului chm este dat de facilitatea integrat de
cutare i indexare care accelereaz destul de mult gsirea informaiilor necesare. Suplimentar, o versiune
mult mai util dar la care din pcate s-a renunat la realizarea formatului chm este Manualul PHP cu notele
utilizatorilor incluse.
De multe ori reinventarea roii nu este necesar astfel nct apelul la experiena anterioar a altor
utilizatori prin multitudinea de exemple introduse in manual este extrem de util. Trebuie menionat c
versiunea on-line a documentaiei, accesibil la adresa "http://www.php.net/manual/en/index.php" sau n
limba romn la adresa "http://www.php.net/manual/ro/index.php" conine notele utilizatorilor, s-a renunat
la introducerea acestor note n formatul compilat chm. Singura soluie disponibil este gsirea unui fiier
corespunztor unei versiuni mai vechi (de cele mai multe ori suficient pentru operaiile uzuale ntlnite n
lucrul n PHP). Versiunea chm extins (cu notele utilizatorilor) este identificabil prin prezena a dou fiiere
"php_manual_en.chm" i "php_manual_notes.chm".
Aceast documentaie trebuie de asemenea s se gseasc pe maina de dezvoltare a aplicaiilor i nu
pe maina server (n cazul n care nu coincid).
De asemenea ncepnd cu Windows XP SP2 sistemul de operare detecteaz faptul c fiierul chm este
"strin" adic provine de pe un alt calculator i este nevoie s fie deblocat nainte de a fi utilizat.
4.3. MySql
MySql se bucur de un numr mai mare de aplicaii disponibile la adresa
"http://dev.mysql.com/downloads/workbench/". n momentul scrierii acestor informaii cele mai utile sunt
aplicaiile grupate sub denumirea "MySql Tools for 5.0" fiierul corespunztor fiind "mysql-gui-tools-5.0-r17-
win32.msi". Aceast suit cuprinde aplicaiile individuale:
MySql Administrator, un program de administrare al server-ului, extrem de util i necesar. Utilitatea
oferit consta n:
http://www.php.net/manual/en/index.phphttp://www.php.net/manual/ro/index.phphttp://dev.mysql.com/downloads/workbench/
o Seciunea "Startup Variables" - ofer posibilitatea configurrii din interfa grafic a server-ului
MySql, n detalii care nu apar n utilitarul de configurare utilizat la instalare. Una din opiunile
care ar putea fi necesar s fie modificate de exemplu este n zona Tab "Advanced Networking"
-> Max_packet_size = 1M (implicit) n cazul dorii s introducei cantiti mari de date (de
exemplu fiiere)
o Seciunea "User Administration" - pentru a aduga utilizatori suplimentari, cu drepturi mai
mici asupra server-ului, nafara utilizatorului de administrare "root" creat la instalare. Se pot
controla in detaliu drepturile fiecrui utilizator asupra fiecrei baze de date controlate. Un pas
absolut necesar, deoarece probabilitatea de a avea acces la utilizatorul "root" pe un server
profesionist de hosting este infim.
o Seciunile "Backup" i "Restore" utile pentru a crea/restaura copii de siguran ale datelor,
copii eseniale n cazul unor server-e de dezvoltare de aplicaii n cazul crora codul este de
multe ori experimental.
MySql Query Browser, un program de trimitere a interogrilor SQL spre server, util pentru:
o crearea de baze de date i tabele
o vizualizarea i modificarea structurii bazelor de date
o vizualizarea i modificarea datelor stocate
o experimentarea interogrilor SQL naintea utilizrii lor n scripturile PHP
o modificarea script-urilor SQL, inclusiv a celor rezultate n urma operaiunilor de backup, n
vederea controlului datelor sau a diferenelor ntre diferite versiuni/produse software (de
exemplu un fiier backup produs de PHP My Admin nu va putea fi restaurat de MySql
Administrator fr o modificare prealabil, dar va putea fi rulat cu MySql Query Browser)
MySql Migration Toolkit, un utilitar care permite conversia bazelor de date din alte server-e (MS
Access, MS SQL, Oracle, Sybase .a.), n special MS Access este extrem de util datorit posibilitii de
conlucrare facil n interiorul MS Office ntre Access i alte aplicaii posibil purttoare de informaie
(Excel i Word)
MySql System Tray Monitor, aplicaie care permite o funcionalitate echivalent cu "Apache Service
Monitor", introducnd o icoan n "system tray" de unde se poate opri/porni server-ul MySql, util
dac server-ul se instaleaz pe maina de dezvoltare a aplicaiilor, pentru a permite oprirea/pornirea
facil dup dorin a server-ului n vederea economiei de resurse/cretere a securitii.
Trebuie menionat c aceste aplicaii se instaleaz pe maina de dezvoltare a aplicaiilor nu pe maina
care conine server-ul (dac nu coincid) cu excepia MySql Administrator care la instalarea pe maina server
primete acces la log-urile server-ului. Utilitatea deplin a aplicaiilor se obine cu condiia s fie permis accesul
utilizatorului "root" de pe alte maini la server-ul MySql (din nou dac maina de dezvoltare nu coincide cu
maina server).
De asemenea trebuie amintit faptul c suportul pentru aplicaiile individuale amintite anterior a fost
eliminat de MySql ceea ce face ca fiierul amintit "mysql-gui-tools-5.0-r17-win32.msi" s nu mai fie disponibil
dect n seciunea Archive la adresa "http://dev.mysql.com/" sau, momentan pe pagina
"http://dev.mysql.com/downloads/workbench/". Se afl n pregtire o aplicaie mai complex de proiectare a
bazelor de date MySQL Workbench care va conine faciliti modelare i proiectare a bazelor de date,
dezvoltare SQL (nlocuind MySql Query Browser) i administrare server (nlocuind MySql Administrator).
Momentan, n momentul scrierii acestui material, versiunea MySQL Workbench 6.0.9 disponibil la adresa
"http://dev.mysql.com/downloads/tools/workbench/" include nlocuitorii Query Browser i Administrator dar
are o interfa greoaie. Totui exist anumite faciliti care pot justifica instalarea i utilizarea aplicaiei.
4.4. Aplicaii generale
Aici trebuie amintit un editor extrem de bun, Notepad ++, disponibil la adresa "http://notepad-plus-
plus.org/". Recunoaterea limbajelor uzuale (HTML, PHP, SQL, Javascript), afiarea liniei curente n surs
(esenial la depanarea plecnd de la log-ul de erori Apache) i afiarea difereniat a sintaxei l fac inestimabil
(fr a exagera) n crearea i depanarea fiierelor implicate n dezvoltarea aplicaiilor web.
Trebuie menionat i Adobe/Macromedia Dreamweaver care are avantajul interpretrii codului HTML
fiind o aplicaie WYSIWYG (What You See Is What You Get) i posibilitatea lucrului cu abloane (template), dar
licena foarte scump i afiarea difereniat a sintaxei mult mai deficitar dect n Notepad ++ fac s nu fie
utilizat n laborator.
5. Testarea mainii server
Un prim test const n utilizarea funciei PHP predefinite phpinfo(). Se creaz n radcina de
documente a server-ului ("C:\Server") fiierul "index.php". Fr a intra n detalii de limbaj, acest document va
trebui s conin scheletul unui document HTML iar n sectiunea doar rezultatul funciei "phpinfo()".
Fiierul rezultat va fi urmtorul:
Untitled Document
n acest moment introducerea n browser a adresei "http://localhost/" pe maina server sau
"http://192.168.72.128/" pe maina de dezvoltare ar trebui n caz de succes s conin o pagin bogat n
http://dev.mysql.com/http://dev.mysql.com/downloads/workbench/http://dev.mysql.com/downloads/tools/workbench/http://notepad-plus-plus.org/http://notepad-plus-plus.org/
informaii despre: Sistemul de operare, interpretorul PHP, server-ul Apache. (192.168.72.128 se consider a fi
adresa IP a mainii server aflat cu "ipconfig /all" la un pas anterior)
Acest prim test evideniaz funcionarea corect a server-ului Apache i a interpretorului PHP, inclusiv
a legturii dintre ele. Se poate observa deasemenea ncrcarea modulelor MySql n PHP, fr a avea informaii
despre existena i funcionarea server-ului de baze de date.
Testarea funcionrii server-ului MySql i a accesibilitii prin intermediul PHP-ului necesit civa pai
suplimentari. Mai nti se folosesc aplicaiile MySql pentru a accesa server-ul respectiv. Se pornete MySql
Query Browser, cu comanda "File>Open Script" se deschide script-ul SQL "world.sql" existent n directorul
"C:\kit\Exemple". Acest script este o copie a fiierului de test disponibil pe Internet la adresa
"http://dev.mysql.com/doc/index-other.html", - "MySQL Documentation: Other MySQL Documentation:
Example Databases" cu modificrile SQL pentru crearea bazei de date (CREATE DATABASE world; USE world;).
Executarea acestui script are ca efect crearea unei baze de date denumit "world" i popularea ei cu date
(tabele pentru ar, ora, limb). Chiar pornirea MySql Query Browser implic conectarea la server deci o
validare a existenei acestuia. Reaciunea corect la script-ul amintit certific suplimentar funcionarea corect
a acestuia.
Pentru validarea accesibilitii din PHP a server-ului MySql se utilizeaz MySql Administrator, Seciunea
"User Administration", pentru a crea un utilizator denumit "web" cu parola "test" cu drepturile "SELECT" +
"INSERT" + "UPDATE" asupra bazei de date "world". Se copie apoi din directorul "C:\kit\Exemple" n directorul
rdcin a documentelor web "C:\Server" fiierul "test.php" ce are ca scop rularea interogrii SQL "SELECT
`Code`,`Name`,`Population` FROM `country` AS c ;" prin intermediul interpretorului PHP.
Not important 1. Fiierele prezente pe maina de lucru nu vor funciona cu extensia "mysqli" deci e
recomandabil ca aceasta s fie activat (temporar)
Introducerea n browser a adresei "http://localhost/test.php" pe maina server sau
"http://192.168.72.128/ test.php " pe maina de dezvoltare ar trebui n caz de succes afiarea unui tabel cu
datele dorite. Se verifica coincidena datelor respective cu cele obinute ca urmare a rulrii aceleiai interogri
n MySql Query Browser. Se verific faptul c numrul de linii obinute este acelai n ambele situaii.
6. Note actuale (Februarie 2015)
n momentul scrierii acestor rnduri versiunile curente ale softurilor sunt:
Apache: 2.4.12, http://www.apachelounge.com/download/
PHP: 5.6.6, http://windows.php.net/download/
MySql: MySQL Community Server 5.6.23, http://dev.mysql.com/downloads/mysql/
Wamp: 2.5 (Apache : 2.4.9 MySQL : 5.6.17 PHP : 5.5.12 PHPMyAdmin : 4.1.14 SqlBuddy : 1.3.3 XDebug
: 2.2.5), http://www.wampserver.com/en/
MySQL Workbench: 6.2.4, http://dev.mysql.com/downloads/workbench/
innd cont de natura open-source a (majoritii) programelor utilizate, originalul disponibil este sursa
n C/C++ a acestor programe, pentru fiierele executabile disponibile pentru download realizndu-se
compilarea cu compilatorul Visual C++ (Microsoft). Programele compilate cu compilatorul Visual C++ necesita o
extensie a sistemului de operare numit "Visual C++ Redistributable for Visual Studio XXXX" unde se indic
http://www.apachelounge.com/download/http://windows.php.net/download/http://dev.mysql.com/downloads/mysql/http://www.wampserver.com/en/http://dev.mysql.com/downloads/workbench/
anul de apariie sau versiunea compilatorului (de ex. 2010, 2012, sau VC9, VC10, VC11 etc.). Cu intenie sau nu,
versiunile mai noi de programe nu pot fi instalate pe sistemele de operare mai vechi, ca urmare:
O main virtual/calculator separat cu Windows 2000 este limitat la versiunile binare compilate cu
VC6, n general corespunztoare versiunilor prezentate n documentul curent.
O main virtual cu Windows XP este limitat la versiunile binare compilate cu VC9, Apache 2.4.12
(disponibil nc), PHP 5.4.38, MySql 5.6.16, Wamp 2.2
Versiunile curente, VC11 pot fi rulate doar pe Windows > Vista SP2 || Server 2008 SP1
O consecin indirect este anularea unuia din avantajele primare ale distribuiilor Wamp: capacitatea
de a "jongla" cu versiunile softurilor pentru verificarea aplicaiilor pe diverse combinaii L(W)AMP. Wamp 2.5
(VC11) de exemplu nu va putea incrca versiunile mai vechi ale aplicaiilor (VC6).
Dei nimeni nu neag avantajele adiiilor noi la softurile utilizate ntre care cele mai importante sunt:
ncepnd cu PHP 5.6 extensia "php_mysql.dll" nu mai este disponibil (din motive de securitate) orice
dezvoltare MySql de aplicaii noi fiind obligatoriu cu php_mysqli sau prin PDO (PHP Data Objects)
ncepnd cu MySql 5.6 motorul InnoDB accept index de tip FULLTEXT
...,
o main virtual cu Windows > Vista necesit prea multe resurse pentru a fi rulat cu succes n laborator. O
main virtual cu Windows XP i versiunile maxime disponibile pentru acest sistem de operare va fi
disponibil n laborator i va fi (poate: S9 final) utilizat la proiect.
Soluia alternativ este instalarea unei distribuii Linux curente ntr-o main virtual (de exemplu
CentOS, abordare la alte discipline).