v9z1zp
Aceasta sectiune prezinta modul de instalare si configurare al PHP. Cunostinte
si software necesare:
Cunostinte elementare de UNIX (folosirea "make" si a unui compilator
C)
Un compilator C
Un server web
Instructinui de instalare (versiunea pentru modulul de Apache)
1. gunzip apache_1.3.x.tar.gz
2. tar xvf apache_1.3.x.tar
3. gunzip php-x.x.x.tar.gz
4. tar xvf php-x.x.x.tar
5. cd apache_1.3.x
6. ./configure --prefix=/www
7. cd ../php-x.x.x
8. ./configure --with-mysql --with-apache=../apache_1.3.x --enable-track-vars
9. make
10. make install
11. cd ../apache_1.3.x
12. pentru PHP 3: ./configure --activate-module=src/modules/php3/libphp3.a pentru PHP 4: ./configure --activate-module=src/modules/php4/libphp4.a
13. make
14. make install
15. cd ../php-x.x.x
16. for PHP 3: cp php3.ini-dist /usr/local/lib/php3.ini for PHP 4: cp php.ini-dist /usr/local/lib/php.ini
Puteti edita fisierul .ini pentru a seta optiunile PHP.
Daca vreti ca acest fisier sa se afle in alta locatie folositi
--with-config-file-path=/path la pasul 8.
17. Editati fisierul httpd.conf sau srm.conf si adaugati:
Pentru PHP 3: AddType application/x-httpd-php3 .php3
Pentru PHP 4: AddType application/x-httpd-php .php
Puteti alege orice extensie doriti aici. .php este cea pe care am propus-o noi.
18. Folositi procedura normala pentru a porni serverul Apache. (Trebuie sa opriti si sa reporniti serverul.)Modulul pentru Apache
PHP poate fi compilat in diverse moduri. In continuare prezentam un sumar:
./configure --with-apxs --with-pgsqlAceasta comanda va crea o librarie libphp4.so
care este incarcata in Apache folosind o linie LoadModule in
fisierul de configurare al Apache, httpd.conf. Suportul PostgreSQL este inclus
in libraria libphp4.so.
./configure --with-apxs --with-pgsql=sharedAceasta comanda va crea din nou
o librarie libphp4.so pentru Apache, dar va crea si o librarie pgsql.so care
este incarcata in PHP fie folosind directiva pentru extensie in
fisierul php.ini, fie incarcandu-l explicit itr-un script
folosind functia dl().
./configure --with-apache=/path/to/apache_source --with-pgsqlAceasta comanda
va crea librarii libmodphp4.a, mod_php4.c si cateva fisiere suplimentare
si le va copia in directorul src/modules/php4 corespunzator Apache-ului.
In continuare copilati Apache-ul folosind --activate-module=src/modules/php4/libphp4.a
si "sistemul de contructie" al Apache va crea libphp4.a si o va lega
static in httpd. Suportul PostgreSQL este inclus direct in acest nou httpd,
deci rezultatul final este un singur fisier httpd care include Apache si PHP.
./configure --with-apache=/path/to/apache_source --with-pgsql=sharedIn
acest caz efectul va fi acelasi ca la exemplul precedent, exceptand faptul
ca suportul PostgreSQL nu va fi inclus direct in rezultatul final al httpd.
Veti obtine o librarie pgsql.so pe care o puteti incarca in PHP
fie din fisierul php.ini, fie utilizand direct dl().
Modulul pentru fhttpd
Pentru a construi PHP ca un modul fhttpd, raspundeti cu "yes" la "Build
as an fhttpd module?" (optiunea --with-fhttpd=DIR la configurare) si specificati
directorul sursa al fhttpd. Directorul implicit este /usr/local/src/fhttpd.
Daca rulati fhttpd, construind PHP ca un modul veti obtine performante mai bune,
mai mult control si posibilitatea de executie la distanta.
Versiunea CGI
Implicit PHP va fi construit ca un program CGI. Daca rulati un server web pentru
care PHP ofera suport (prin intermediul modulelor), ar trebui sa alegeti aceasta
soluti din motive de performanta. Versiunea CGI permite utilizatorilor Apache
sa ruleze diferite pagini care contin PHP folosind identificatori diferiti pentru
utilizatori.
Optiuni pentru suportul bazelor de date
PHP are integrat suport pentru o serie de baze de date (ca si ODBC).
Adabas D
--with-adabas=DIRActiveaza suportul pentru Adabas D. Parametrul este directorul
unde este instalat Adabas D, implicit este /usr/local/adabasd.
dBase
--with-dbaseActiveaza suportul pentru DBase. Nu e necesara nici o librarie exterioara.
filePro
--with-fileproActiveaza suportul doar pentru citirea bazei de date filePro.
Nu e necesara nici o librarie exterioara.
IBM DB2
--with-ibm-db2=DIRActiveaza suportul pentru IBM DB2. Parametrul este directorul
unde este instalat DB2, implicit este /home/db2inst1/sqllib.
mSQL
--with-msql=DIRActiveaza suportul pentru mSQL. Parametrul este directorul unde
este instalat mSQL, implicit este /usr/local/Hughes. Acesta este direcotrul
implicit al distributiei mSQL 2.0. configure detecteaza automat ce versiune
de mSQL rulati. PHP suporta ambele versiuni 1.0 si 2.0, dar daca compilati PHP-ul
cu mSQL 1.0 puteti accesa doar bazele de date mSQL 1.0, si vice-versa.
MySQL
--with-mysql=DIRActiveaza suportul pentru MySQL. Parametrul este directorul
unde este instalat MySQL, implicit este /usr/local. Acesta este direcotrul implicit
de instalare al MySQL.
iODBC
--with-iodbc=DIRInclude suport pentru iODBC. Aceasta caracteristica a fost dezvoltata
prima data pentru iODBC Driver Manager, un driver manager ce poate fi redistribuit
gratuit si care ruleaza pe mai multe versiuni de UNIX. Parametrul este directorul
unde este instalat iODBC, implicit este /usr/local.
OpenLink ODBC
--with-openlink=DIRInclude suport pentru OpenLink ODBC. Parametrul este directorul
unde este instalat OpenLink ODBC, implicit este /usr/local/openlink.
Oracle
--with-oracle=DIRInclude suport pentru Oracle. A fost testat pentru versiunile
Oracle 7.0 pana la 7.3. Parametrul este directorul ORACLE_HOME. Nu trebuie
sa specificati acest parametru daca variabilele de mediu pentru Oracle au fost
setate.
PostgreSQL
--with-pgsql=DIRInclude suport pentru PostgreSQL. Parametrul este directorul
unde este instalat PostgreSQL, implicit este /usr/local/pqsql.
Solid
--with-solid=DIRInclude suport pentru Solid. Parametrul este directorul unde
este instalat Solid, implicit este /usr/local/solid.
Sybase
--with-sybase=DIRInclude suport pentru Sybase. Parametrul este directorul unde
este instalat Sybase, implicit este /home/sybase.
Sybase-CT
--with-sybase-ct=DIRInclude suport pentru Sybase-CT. Parametrul este directorul
unde este instalat Solid-CT, implicit este /home/sybase.
Velocis
--with-velocis=DIRInclude suport pentru Velocis. Parametrul este directorul
unde este instalat Velocis, implicit este /usr/local/velocis.
O librarie ODBC personalizata
--with-custom-odbc=DIRInclude suport pentru o librarie ODBC personalizata. Parametrul
este directorul unde este instalata, implicit este /usr/local.
Acesta optiune necesita ca variabila CUSTOM_ODBC_LIBS sa fie definita cand
rulati scriptul de configurare. Deasemenea, in calea de includere trebuie
sa aveti un fisier odbc.h valid. Daca nu aveti unul creati-l si include7-il.
Fisierul odbc.h ar putea necesita unele definitii externe, mai ales cand
suporta mai multe platforme. In acest caz definiti variabila CFLAGS.
De exemplu, puteti folosi Sybase SQL Anywhere pe QNX: CFLAGS=-DODBC_QNX LDFLAGS=-lunix
CUSTOM_ODBC_LIBS="-ldblib -lodbc" ./configure --with-custom-odbc=/usr/lib/sqlany50
Unified ODBC
--disable-unified-odbcDezactiveaza modulul Unified ODBC, care este o interfata
comuna tuturor bazelor de date cu interfete bazate pe ODBC, ca de exemplul Solid,
IBM DB2 si Adabas D. Functioneaza si pentru librariile normale ODBC. A fost
testat cu iODBC, Solid, Adabas D, IBM DB2 si Sybase SQL Anywhere. Aceasta optiune
necesita ca unul dintre aceste module (doar unul) sau modulul pentru Velocis
sa fie activat, sau sa se specifice o librarie ODBC personalizata. Aceasta optiune
se poate aplica doar daca este folosita una din urmatoarele optiuni: --with-iodbc,
--with-solid, --with-ibm-db2, --with-adabas, --with-velocis, or --with-custom-odbc.
LDAP
--with-ldap=DIRInclude suport pentru LDAP (Lightweight Directory Access Protocol).
Parametrul este directorul unde este instalat LDAP, implicit este /usr/local/ldap.
Mai multe informatii despre LDAP puteti gasi in RFC1777 si RFC1778.
Alte optiuni de configurare
--with-mcrypt=DIR
--with-mcrypt=DIRInclude suport pentru librariile mcrypt. Daca folositi argumentul
optional DIR, PHP va cauta fisierul mcrypt.h in DIR/include.
--enable-sysvsem
--enable-sysvsemInclude suport pentru semafoare Sys V (suportate de majoritatea
versiunilor de UNIX).
--enable-sysvshm
--enable-sysvshmInclude suport pentru semafoare Sys V (suportate de majoritatea
versiunilor de UNIX).
--with-xml
--with-xmlInclude suport pentru un parser XML.
--enable-maintainer-mode
--enable-maintainer-modeDepinde de dependentele suplimantare si de avertizarile
compilatorului folosite de dezvoltatorii de PHP.
--with-system-regex
--with-system-regexFoloseste libraria de expresii regulate a sistemului. Daca
contruiti PHP ca un modul pentru server, trebuie sa folositi aceeasi librarie
cand construiti PHP si cand legati serverul. Activati aceasta daca
libraria sistemului ofera caracteristicile de care aveti nevoie. Este recomandat
sa folositi libraria legata dinamic daca este posibil.
--with-config-file-path
--with-config-file-pathCalea in care va fi cautat fisierul de configurare
cand porneste PHP.
--with-exec-dir
--with-exec-dirPermite rularea executabilelor in DIR doar in "safe
mode". Implicit DIR este /usr/local/bin. Aceasta optiune seteaza doar directorul
implicit, care poate fi modificat cu directiva safe_mode_exec_dir din fisierul
de configurare.
--enable-debug
--enable-debugActiveaza informatii suplimantare in timpul debugului. Aceasta
face posibila obtinerea unor informatii detaliate cand sunt probleme cu
PHP. (A se remarca faptul ca acest lucru nu are nici o legatura cu facilitatile
de debug sau cu informatiile disponibile scripturilor PHP.)
--enable-safe-mode
--enable-safe-modeActiveaza implicit "safe mode". Aceasta impune unele
restrictii asupra a ceea ce PHP poate face, cum ar fi deschiderea fisierelor
din documentul radacina. Utilizatorilor CGI le este recomandat sa activeze intotdeauna
modul sigur. Aceasta optiune seteaza doar modul implicit, care poate fi activat
sau dezactivat cu directiva safe_mode din fisierul de configurare.
--enable-track-vars
--enable-track-varsFace ca PHP sa retina de unde provin variabilele GET/POST/cookie
in vectorii HTTP_GET_VARS, HTTP_POST_VARS si HTTP_COOKIE_VARS. Aceasta
op#iune seteaza doar modul implicit, care poate fi activat sau dezactivat cu
directiva track_vars din fisierul de configurare.
--enable-magic-quotes
--enable-magic-quotesActiveaza "ghilimele magice" ca fiind implicite.
Aceasta optiune seteaza doar modul implicit, care poate fi activat sau dezactivat
cu directiva magic_quotes_runtime din fisierul de configurare.
--enable-debugger
--enable-debuggerActiveaza suportul pentru debugger-ul intren al PHP.
--enable-discard-path
--enable-discard-pathDaca aceasta optiune este folosita, interpretorul de PHP
CGI poate fi localizat in siguranta in afara arborelui web si utilizatorii
nu vor putea sa ocoleasca securitatea oferita de .htaccess.
--enable-bcmath
--enable-bcmathActiveaza functiile matematice bc de precizie abritrara.
--enable-force-cgi-redirect
--enable-force-cgi-redirectACtiveaza controlul securitatii pentru redirectarile
interne ale serverului. Daca rulati versiunea CGI cu Apache, va recomandam sa
folositi aceasta optiune.
Cand folositi PHP ca interpretor CGI, PHP verifica mai intai
(implicit) daca este folosit prin redirectare (de exemplu sub Apache, folosind
directivele Action). Acest lucru asigura ca interpretorul PHP nu poate fi folosit
pentru a evita procedurile standard de autentificare ale serverului web, apelandu-l
direct, ca de exemplu https://my.host/cgi-bin/php/secret/doc.html. Acest exemplu
aceseaza https://my.host/secret/doc.html dar nu respecta nici o regula de securitate
impusa de httpd pentru directorul /secret.
Neactivarea optiunii dezactiveaza verificarea si permite evitarea securitatii
si a regulilor de autentificare oferite de httpd. Faceti acest lucru doar daca
serverul dumneavoastra nu poate determina daca a fost facuta o redirectare sigura
si toate fisierele din root si directoarele utilizatorilor pot fi accesate de
catre oricine.
--disable-short-tags
--disable-short-tagsDezactiveaza tagul PHP de forma <? ?>. Trebuie sa
dezactivati acest tag daca intentionati sa utilizati PHP cu XML. Dezactivand
acest tag, singurul tag PHP este <?php ?>. Aceasta optiune seteaza doar
modul implicit, care poate fi activat sau dezactivat prin intemediul directivei
short_open_tag din fisierul de configurare.
--enable-url-includes
--enable-url-includesFace posibila rularea de cod pe alte servere HTTP sau FTP
direct din PHP folosind include().
--disable-syntax-hl
--disable-syntax-hlDezactiveaza syntax highlighting.
CPPFLAGS si LDFLAGS
Pentru a face ca la instalarea PHP fisierele header sau librariile sa fie cautate
in alte directoare, modificasi variabilele de mediu CPPFLAGS si LDFLAGS.
Daca utilizati un shell sensibil, ar trebui sa puteti face in modul urmator:
LDFLAGS=-L/my/lib/dir CPPFLAGS=-I/my/include/dir ./configure.
Construirea
Dupa ce PHP a fost configurat, puteti construi executabilul CGI sau libraria
PHP. Comanda make ar trebui sa faca aceste lucruri.
Testarea
Daca ati construit PHP ca un program CGI, puteti testa rezultatul prin make
test. Este recomdat sa testati rezultatul constructiei. In acest mod puteti
observa eventualele probleme ale PHP din timp.
Benchmarking
Daca ati construit PHP ca un program CGI, puteti benchmark constructia cu make
bench. Daca modul singur este implicit, benchmark-ul s-ar putea sa nu se incheie
in cazul in care dureaza mai mult de 30 de secunde, timpul alocat.
Acest lucru are loc pentru ca set_time_limit() nu poate fi folosita in
modul sigur. Folositi setarea max_execution_time pentru a controla acest timp
pentru scripturile proprii. make bench ignora fisierul de configurare.