Ps »tuning php
Blog - Linux, programozás, én!
Minden alkalommal, amikor megnyit egy oldalt dinamikus webes alkalmazások, web szerver utal PHP, ami betölti a kért .php fájlt, és az összes között, és a szükség, akkor értelmezi azt, fordít egy köztes bytecode (műveleti kód), és végrehajtja. És a folyamat nagy projektek tartalmazzák az összes olyan fájlokat tartalmaznak vehet egy nagyon hosszú idő.
Ezért sok PHP-Kesher fejlesztettek ki. A legnépszerűbb közülük - APC (Alternative PHP cache), XCache és eAcelerator. Mindegyikük lehetővé teszi, hogy mentse, és újra a lefordított PHP bájtkódot, amely időt takarít meg a szerelvény összes zárványok és összeállítása, takarít CPU és a memória (és nagyon sok). Ezen kívül, lehetővé teszi, hogy tárolja a cache PHP változók és elérheti őket a következő hívás forgatókönyvet. Az alábbiak közül melyik Kesher használat - nem különleges elvileg nem különböznek jelentősen a teljesítményt. Azért választottam, mert XCache ez nem panaszkodik a eAcelerator és én már dolgoztam APC, és nagyon érdekes volt kipróbálni valami újat
Tehát kezdjük. XCache telepítés nagyon egyszerű, de mégis:
A csomag telepítése php5-xcache:
[Codesyntax lang = "bash"] sudo apt-get install php5-xcache [/ codesyntax]
Szerkesztése config kiterjesztés PHP xcache.ini
[Codesyntax lang = "bash"] sudo nano /etc/php5/conf.d/xcache.ini[/codesyntax]
Van fix sorok:
opcode cache méretét. Tedd körülbelül 64 MB. Általában, ha van egy weboldal különböző PHP szkripteket a közé számos különböző, akkor meg kell, hogy egy magasabb értéket. Ha a hely csak egy - akkor hagyjuk a kis érték.
xcache.size = 64M
A gyorsítótár méretének adat / változókat. Ha ön használ ez xCache, aztán egy kicsit több, mint Kesher adatokat. Ha ön használ Memcached, majd állítsa 0
xcache.var_size = 32M
Meghatározza a processzorok számát (vagy magok) a számítógépen
xcache.count = 2
Győződjön meg arról, hogy van egy vonal
xcache.cacher = On
Mentse, indítsa újra a web szerver / php
[Codesyntax lang = "bash"] sudo /etc/init.d/apache2 restart [/ codesyntax]
S.: Kesher leesett telepítése után Zend Debuger azzal az üzenettel: „Debugger összeállításához felvezető felülírva, nem lehet folytatni.” Természetesen ahhoz, hogy Kesher és debugger egy autó, de mindegy. Hogy ez fix ajánlott
[Codesyntax lang = "bash"] sudo nano /etc/php5/conf.d/zend_debugger.ini[/codesyntax]
A zend_debugger.expose_remotely irányelv határozza meg, hogy a hibakereső teszi ki magát (azaz jel jelenlétét) a távoli ügyfelek. Erre azért van szükség, ha szeretné, hogy a Zend Studio Böngésző eszköztár automatikusan észleli oldalakat, amelyek hibakeresése. Kiválasztás „mindig”, „soha”, vagy „allowed_hosts” (ez csak kiteszi a házigazdák a megengedett hosztlistára)
Ie megadja, hogy mely esetekben a Zend Debuger állít jelenlétét (via egyéni HTTP fejléc) .Such módon ez a lehetőség abban a helyzetben, „mindig”, de még megy dolgozni. Ez azonban nyilvánvalóan egy hiba, nem pedig egy funkciót!
Made xcache.size = 64M és 32M xcache.var_size = oldalon megy a „502 Bad Gateway». Nginx lehet állítani, mert ez?
Ha a változó értéke xcache.size és xcache.var_size a másik oldalon működik, de a php -v parancs megjeleníti mellett a standard kimenet:
php -v
/ Dev / zero: nincs elég hely az eszközön
Nem sikerült a fájl létrehozásakor mappping
PHP Fatal error: Failed fájl létrehozása mappping az ismert on line 0
PHP Fatal error: XCache: nem hozható létre shm az ismert on line 0
Általában amíg xcache.size = 16M és 16M xcache.var_size =, tehát nincs hiba. Még mindig kíváncsi, hogyan lehet megjavítani?
/ Dev / zero: nincs elég hely az eszközön
Talán nincs olyan eszköz a / dev / zero
Meg lehet próbálni, cseréje xcache.mmap_path = "/ dev / zero", mint xcache.mmap_path = "/ tmp / xcache"
Nos, akkor van értelme, hogy xcache.var_size nagyobb, mint 0 csak akkor, ha bizonyos funkciókat, pl xcache_set () xcache_get ()
Nem kell egy ilyen eszköz, ha fel a / tmp / nulla, amint a fájl elér egy bizonyos méretet (xcache.size + xcache.var_size) a weboldal 500. Nem számít, hogy mi fog xcache.size és xcache.var_size, bár az 1M egyébként.
Különösen ajánlott értékének növelése a kernel paraméter kernel.shmall
Az aktuális érték lehet
sysctl -A | grep kernel.shm
Jó az idő. Nem értem, mi a probléma. Minden találtam sozad host hkesh és elindított egy webes felületen ad egy csomó hibát itt ezen fajtája:
Undefined index: hiába a /www/xcache.local/www/admin/xcache.tpl.php on line 58
... ..
Próbált ásni php kódot, nem tudok rájönni. Hol megadhat egy további módja? Előre is köszönöm