Cresteti viteza aplicatiilor web prin modificarea configurarii php

Acest articol doreste sa va ajute sa mariti viteza aplicatiilor php pe care le scrieti prin tweaking la configurarile php default. Timpul castigat prin aceste modificari poate nu va fi asa vizibil din partea de user, dar poate usura un pic munca server-ului, deasemenea unele vor avea si un impact in partea de securitate a aplicatiei.

Daca esti pe un server shared si nu stii cum se schimba configurarea php ar fi poate mai bine sa citesti acest articol inainte.

Dar destul cu palavrageala hai sa vedem exact despre ce e vorba. Voi scrie numele configurari, setarea pe care o recomand si motivatia pentru aceasta configurare.

short_open_tag = Off

Aceasta va anula short tags ( <? …. ?> ) care nu sunt atat de recomandat de folosit si in plus engine-ul php va avea o problema in plus pe care sa il rezolve.

asp_tags = Off

Aceasi explicatie … nu folosi taguri : <% echo “hello world”; %>

memory_limit = 32M

Aceasta configurare va fi una pe care o vei modifica de cateva ori. Dar e mai bine ca pentru inceput sa o setezi la o valoare mai mica pentru a urmari care scripturi folosesc mai multa memorie si a urmari din ce cauza se inampla aces lucru.
Un articol despre consumul de memorie in php poti gasi aici .

register_long_array = Off

Aceasta configurare spune engine-ului PHP sa nu mai declare variabilele de tip $HTTP_*_VARS care sunt de mult timp nefolosite. Valoarea default e On. Din cauza ca nimeni nu prea le foloseste ( doar daca nu aveti nevoie pentru compatibilitate cu vreun script mai vechi ) e recomandat sa le aveti off, pentru motive de performanta. In locul lor este recomandat sa folosti matricile superglobale $_GET, $_POST etc.

register_argc_argv = Off

Aceasta setare e mai mult sau mai putin la fel ca cea de sus register_long_arrays ( daca credeti ca ma insel, certati-ma intr-un comentariu ) asa ca o vom seta tot off.

auto_globals_jit = On

Aceasta setare va opri php sa genereze variabilele SERVER si ENV la inceputul scriptului ( asa cum face in configuratia default ), in schimb generandule pe masura ce ele sunt necesare (Just In Time). Aceasta ar trebui sa ajute la performanta prin reducerea cantitatii de memorie folosita de scriptul php.
Pentru ca aceasta setare sa functioneze este nevoie ca register_globals, register_long_arrays, si register_argc_argv sa fie disabled.
Ca un inside info : am incercat pe unul din servere aceasta configuratie si nu a mers, variabilele SERVER si ENV fiind nule, dar cred ca era ceva in neregula pentru ca am incercat pe alt server si a mers :D.

magic_quotes_gpc

Aceasta setare s-a dovedit a fi o adevarata durere de cap cateodata. Cand este on , toate ‘ (ghilimele simple), ” (ghilimele duble), \ (backslash) si valori NUL’s sunt “anulate” cu un backslash automat. De ce este asa rau ? Pentru ca nu detineti dumneavoastra controlul asupra acestui lucru. De exemplu daca folositi un mysql wrapper pentru interactiunea cu baza de date care are deja o functie de escape ( probabil si mai mult decat atat, una de clean pentru coduri sql ), ceea ce va face ca valorile introduse sa fie de doua ori “escaped” si dupa cateva edit-uri sa zicem valoarea va fi plina de backslash-uri. Asa ca mai bine o setezi off si iti faci propriul escape, si poate si o functie de clean pentru valorile folosite in interogarile SQL pentru a preveni SQL Injection.

always_populate_raw_post_data = Off

Raw Post data este o setare mai avansata, asa ca daca nu stii despre ce e vorba inseamna ca nu o folosesti asa ca mai bine o setezii off si ii mai iei o grija din lista de treburi facute de engine-ul php

Cam atat pentru acum …. daca v-am fost util s-au vreti sa ma certati ca am batut campii … folositi cu incredere formularul de comentarii

Share your love
Gabriel Solomon
Gabriel Solomon

Ultramaratonist, Galantom, organizator de evenimente sportive

Articles: 1218

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.