Cum se poate schimba configurarea php pe un server shared ?

Cateodata in aplicatiile pe care le creati veti fi nevoiti sa modificati o anumita configurare a php-ului de la valoarea default la valoare necesara pentru a putea dezvolta aplicatia. Cea mai intalnita modificare este aceea legata de flag-ul global_registers si anume setarea lui off ( nu am nici cea mai mica idee de ce unele servere inca mai au global_registers on ).

Daca este vorba de un server local pe care il rulazi pe calculatorul tau, sau de un server la care ai acces de root, solutia este foarte simpla : trebuie doar sa modifici ce doresti in fisierul de configurare (php.ini) ce ai nevoie, restart la server … si voila job done.

Dar ce se intampla daca esti pe un hosting shared. Nu poti sa ceri echipei de suport a serverului sa modifice configurarea pentru tine ( nu prea ar putea nici daca ar vrea, deoarece ar afecta toate site-urile de pe server si ar fi cativa oameni nervosi pe chatul de suport in cateva minute de la schimbare 😀 ). Din fericire persoanele care au construit software-ul rulat de server ( apache in cele mai multe cazuri ) s-au gandit la tine si la situatia asta si au adaugat 2 posibilitati ca tu sa poti schimba local configurarile php fara a afecta celelalte domenii hostate pe server.

1. Crearea unui fisier PHP.ini local

Pur si simplu creezi un nou fisier php.ini in root-ul domeniului si adaugi configurarile de care ai nevoie in aceast fisier ca si cum el ar fi cel din directorul de instalare al php-ului. Aceasta va face ca acele setari sa fie suprascrise de la cele globale doar pentru domeniul tau. Revenind la situatia noastra de a seta register_globals off ar tb sa adaugi urumatoarea linie :

“register_globals = off”

2. Modificarea configurarii cu fisierul .htaccess

A doua metoda ar fi sa te folosesti de fisierul .htaccess ( cunoscut de uni doar pentru partea de url_rewrite ). Pentru aceasta trebuie sa stii o anumit sintaxa:

# pentru a modifica un atribut flag
php_flag [name] [value]

# pentru a modifica un atribut valoare
php_value [name] [value]

Revenind la exemplul nostru : php_flag register_globals off

Pentru a testa daca modificarile facute au fost efectuate, poti folosi functia phpinfo(). Noile setari ar trebui sa apara in coloana LOCAL.
Ar trebui sa stii ca nu toate serverele suporta aceste 2 metode, unele suporta doar una dintre ele, asa ca ar fi indicat sa intrebi baieti de la suport care din aceste metode este suportata de server, nu de alta dar sa nu te chinui degeaba si sa spui ca ti-am spus eu prostii.

Si inca o nota, nu toate setarile php pot fi modificate local. O lista cu toate setarile si cum pot fi ele modificate se gaseste pe site-ul oficial php :
http://www.php.net/manual/en/ini.php#ini.list
Setarile care pot fi suprascrise local au PHP_INI_PERDIR sau PHP_INI_ALL in coloana Changeable. Cele care au PHP_INI_SYSTEM pot fi modificate doar din fisierul php.ini din folderul de instalare al php-ului.

Cam asta a fost. Sper ca v-a redus googling time-ul putin.
Cheers.

Share your love
Gabriel Solomon
Gabriel Solomon

Ultramaratonist, Galantom, organizator de evenimente sportive

Articles: 1218

One comment

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.