of 15 /15
Implementarea unui sistem de dezvoltare a aplicaţiilor Web Instalare PHP, MySql, Apache şi crearea legăturilor dintre ele şl. Radu Damian, Facultatea de Electronică, Telecomunicaţii şi Tehnologia Informaţiei, Iaşi Lucrarea de faţă este orientată spre punerea la punct a unui sistem de dezvoltare de aplicaţii web, tehnologia avută în vedere este combinaţia: Apache ca server web, interfaţă intre aplicaţia 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 aplicaţii este dată de răspândirea lor, legată in primul rând de gratuitate, transparenţă mai mare în dezvoltare, şi maturitate a tehnologiilor, dovedită printr-o istorie destul de indelungată (pentru aplicaţii IT). Succesiunea iniţialelor poate fi intâlnită mai ales în sintagma LAMP (L- Linux, echipa de multe ori intâlnită în sistemele de lucru a server-elor web) dar si WAMP (W - Windows) aşa cum va fi întâlnită pe parcursul prezentei lucrări de laborator. Deşi imperecherea Windows ca sistem de operare - AMP ca server web/date/aplicaţii este mai rar intâlnită în cadrul sistemelor de menţinere a server -elor web capabile de aplicaţii (hosting) este o situaţie care prezintă destule avantaje pentru a fi deseori întâlnită în momentul dezvoltării aplicaţiilor respective. Lucrarea de laborator va avea ca scop înfăţişarea parcursului care trebuie parcurs pentru a instala Apache, MySql şi PHP pe un sistem cu sistem de operare Windows 2000 şi a legăturilor care trebuie create intre aceste aplicaţii pentru a le permite conlucrarea. Alegerea sistemului de operare Windows a fost impusă de faptul că, în ciuda discuţiilor aprinse legate de calitate, stabilitate, eficienţă, etc. Windows rămâne cel mai răspândit sistem de operare pe staţiile de lucru, iar numărul de aplicaţii (inclusiv profesionale) disponibile pentru Windows îi oferă, şi îi vor oferi şi în viitorul previzibil, un avantaj în faţa 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 realizării maşinii care va constitui server-ul pe o maşină virtuală rulând pe calculatorul dezvoltatorului, utilizarea unui sistem de operare mai puţin pretenţios va consuma mai puţine resurse de pe calculatorul gazdă. nu e lipsită de interes posibilitatea unui calculator independent pentru a rula post de server de dezvoltare în reţeaua organizaţiei sau reţeaua personală a celui care realizează aplicaţia web. În momentul de faţă un calculator capabil de a rula decent Windows 2000 dar inutilizabil ca staţie de lucru (depăşit moral de aplicaţiile prezentului, de ex. Windows Vista/7/8 şi un program antivirus) poate fi achiziţionat extrem de ieftin (50-100 RON).

Implementarea unui sistem de dezvoltare a aplica iilor Web ...rf-opto.etc.tuiasi.ro/docs/files/Laborator 1_2015.pdf · fi întâlnită pe parcursul prezentei lucrări de laborator

  • Author
    dinhtu

  • View
    213

  • Download
    0

Embed Size (px)

Text of Implementarea unui sistem de dezvoltare a aplica iilor Web...

  • 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).