Blog - Linux, programare, sunt!
De fiecare dată când deschideți o pagină de aplicații web dinamice, server de web se referă la PHP, care încarcă fișierul .php solicitat și toate includ și Solicitam, apoi parsează, compileaza la un bytecode intermediar (Opcode) și execută. Și în procesul de proiecte de anvergură includ toate includ fișiere poate dura foarte mult timp.
Prin urmare, s-au dezvoltat numeroase cache PHP-uri. Cele mai populare dintre ele sunt APC (Alternative PHP Cache), XCache și eAcelerator. Toate acestea vă permit să salvați și să reutilizați bytecode PHP compilat, care economisește timp pentru asamblarea tuturor incluziunile și elaborarea lor, economisește timp CPU și memorie (și foarte mult). În plus, ele vă permit să stocați variabilele PHP în memoria cache și să le accesați data viitoare când apelați scriptul. Pe care dintre aceste cache-uri să le folosiți nu este deosebit de importantă, ele nu diferă foarte mult în performanță. Am ales XCache pentru că ea nu se plânge ca eAcelerator și am lucrat deja cu APC, și a fost interesant să încercați ceva nou
Deci, să începem. Instalarea XCache este destul de simplă, dar încă:
Instalați pachetul php5-xcache:
[codesyntax lang = "bash"] sudo apt-get instala php5-xcache [/ codesyntax]
Editarea configurației extensiei PHP xcache.ini
[codesyntax lang = "bash"] sudo nano /etc/php5/conf.d/xcache.ini[/codesyntax]
Acolo am corectat liniile:
dimensiunea memoriei cache opcode. Setați aproximativ 64MB. În general, dacă aveți multe script-uri PHP diferite pe site-ul dvs. cu o mulțime de diferite includ, atunci trebuie să setați o valoare mai mare. Dacă site-ul este doar unul - puteți lăsa o valoare mică.
xcache.size = 64M
dimensiunea cache-ului de date / variabile. Dacă utilizați xCache ca cache de date, puneți mai mult. Dacă utilizați Memcached, setați la 0
xcache.var_size = 32M
indicați numărul de procesoare (sau nuclee) de pe computer
xcache.count = 2
Asigurați-vă că există o cusătură
xcache.cacher = Activat
Salvați, reporniți serverul web / php
[codesyntax lang = "bash"] sudo /etc/init.d/apache2 restart [/ codesyntax]
P.S .: după instalarea cache-ului, Zend Debuger a renunțat la mesajul "Debugger compile handler overriden, nu poate continua". Desigur, este ciudat să punem un kesher și un debugger pe o roabă, dar toate la fel. Pentru a remedia această recomandare
[Codesyntax lang = "bash"] sudo nano /etc/php5/conf.d/zend_debugger.ini[/codesyntax]
Directiva zend_debugger.expose_remotely determină dacă debuggerul se va expune pe sine (adică semnal la prezență) clienților aflați la distanță. Acest lucru este necesar dacă doriți ca bara de instrumente Zend Studio Browser să detecteze automat paginile care pot fi depanate. Selectați "întotdeauna", "niciodată" sau "permis_hosts" (acest lucru expune gazdele numai în lista gazdă permisă)
Ie specifică cazurile în care Zend Debuger ar trebui să-și lanseze prezența (prin intermediul unui antet special HTTP). Deci, această opțiune devine "întotdeauna", dar cel puțin va funcționa. Cu toate acestea, acest lucru este în mod clar un bug și nu o caracteristică!
Am făcut xcache.size = 64M și xcache.var_size = 32M site-ul merge la "502 Bad Gateway". Instalat Nginx poate din cauza asta?
Dacă schimbați valorile xcache.size și xcache.var_size altora, atunci site-ul funcționează, dar comanda php -v produce, pe lângă ieșirea standard:
php -v
/ dev / zero: Nu mai există spațiu pe dispozitiv
Nu a reușit să se creeze maparea fișierelor
Eroare fatală a erorilor: Eroare la crearea fișierului mapping în Necunoscut pe linia 0
PHP Eroare fatală: XCache: Nu se poate crea shm în Necunoscut pe linia 0
În general, până acum xcache.size = 16M și xcache.var_size = 16M, deci nu apar erori. Dar este interesant cum se poate remedia aceasta?
/ dev / zero: Nu mai există spațiu pe dispozitiv
Poate că nu aveți un dispozitiv / dev / zero
Este posibil să încercați să înlocuiți xcache.mmap_path = "/ dev / zero", de exemplu, pe xcache.mmap_path = "/ tmp / xcache"
Ei bine, xcache.var_size are sens să pună mai mult de 0 numai dacă utilizați funcții precum xcache_set () xcache_get ()
Nu am un astfel de dispozitiv, atunci când a pus în / tmp / zero, de îndată ce fișierul ajunge la o anumită dimensiune (xcache.size + xcache.var_size) site-ul oferă 500. Nu contează ce se va xcache.size și xcache.var_size, deși în 1M la fel.
În special, se recomandă creșterea valorii kernel.shmall a kernel-ului
Pentru a vedea valoarea curentă, puteți
sysctl -A | grep kernel.shm
Orei bune din timpul zilei. Nu înțeleg ce este problema. Toate instalate, construi o gazdă pentru hkhes și a lansat interfața web produce o mulțime de erori ca aceasta:
Indice nedefinit: avail în /www/xcache.local/www/admin/xcache.tpl.php on line 58
... ..
Am încercat să scot codul, nu mă pot gândi la nimic. Pot unde trebuie să specificați o cale suplimentară? Vă mulțumim anticipat