Célszerű telepíteni egy php script gyorsítót, amely csökkenti a webszerver terhelését. A gyorsító a leggyakrabban használt php szkripteket fordítja le, és elérésekor nem a forráskódot tölti be, hanem annak lefordított verzióját. Ennek köszönhetően felgyorsul a webhely végrehajtása és megjelenítése. Ez különösen észrevehető a "nehéz" CMS-eken, mint például a Bitrix.

Az APC-gyorsító telepítéséhez először telepítenie kell az XCode c-t az összetevővel együtt parancs sor.

A Mac OS X Maverick 10.9-es verziójára való frissítése után újra kell telepítenie a parancssori összetevőt. Most nincs telepítve ezen keresztül GUI, és a parancssor használatával: xcode-select --install

Ellenkező esetben, ha a pecl használatával telepíti a bővítményeket, a "php.h fájl nem található" hibaüzenetet kapja.

./configure make sudo make install

sudo pecl install apc

Ha minden jól ment, akkor ellenőrizze az APC telepítését egy php szkripttel a phpinfo () paranccsal. a parancs végrehajtásakor teljes hiba léphet fel, ebben az esetben meg kell próbálnia a következőket:

Ha ez a parancs sikertelen, akkor valószínűleg nincs telepítve a PEAR és a PECL. Ezeket a curl paranccsal le kell tölteni és telepíteni kell

Curl -O http://pear.php.net/go-pear.phar sudo php -d detect_unicode=0 go-pear.phar

Amikor a PEAR konfigurációról kérdezik, javítania kell az 1. és 4. paramétert. Hol lesz

11. A konfigurációs fájl neve:

1-11, "all" vagy Enter a folytatáshoz:

Először válaszoljon 1. És írja be a címet:

/usr/local/körte

Ezután válaszoljon a 4-re, és írja be a következő címet

Ezt követően nyomja meg az entert. PEAR telepítve. paranccsal ellenőrizheti

Körte változat

Ezután próbálkozzon újra

Ezúttal a következő üzenettel utasítottak el

Az autoconf nem található. Kérjük, ellenőrizze az autoconf telepítését és a

$PHP_AUTOCONF környezeti változó. Ezután futtassa újra ezt a szkriptet.

HIBA: `phpize' nem sikerült

A hiba kijavításához le kell töltenie és telepítenie kell az autoconfig programot a következő terminálparancsokkal

Curl http://ftp.gnu.org/gnu/autoconf/autoconf-latest.tar.gz > autoconf.tar.gz tar -xvzf autoconf.tar.gz cd autoconf-* ./configure --prefix=/usr/local sudo make install

Az autoconfig telepítése után a parancs a következő:


sudo pecl install apc

Az APC összeállításakor feltett összes kérdésre az alapértelmezett bemenettel válaszolunk. Ha a kérdés

Belső hibakeresés engedélyezése az APC-ben: y

Ebben az esetben a kód végrehajtásakor végrehajtási hibaüzeneteket kaphat magától az APC-től. A helyes válasz: nem.

A telepítés sikeres volt. Most indítsa újra az apache-t

sudo apachectl újraindítás

Ha újratelepíti az APC-t a Mavericksre való frissítés után, akkor előfordulhat, hogy hiba áll a háttérben régi verzió phpize. Ebben az esetben a következő parancsok segíthetnek frissíteni a pecl konfigurációt sudo pear config-set php_ini /etc/php.ini sudo pecl config-set bin_dir /usr/bin/

Győződjön meg arról, hogy van egy sor az /etc/php.ini fájlban, és szükség esetén adja hozzá.

Extension=apc.so

És indítsa újra az apache-t.

Bejelentkezés a phpinfo()-ba


A Bitrix telepítést igényel további beállítások. Az APC beállítások a fájlban találhatók

A következő beállításokat állítottam be magamnak:

Apc.ttl=7200
apc.max_file_size=64M
apc.shm_size = 64M

Mit adott a teljesítmény változása (a Bitrix teljesítményfigyelő szerint) 10,62 egységről 40,52-re?
Ez olyan, mint minden.

Alapvető APC beállítások

  • apc.enabled- lehetővé teszi az APC engedélyezését vagy letiltását
  • apc.shm_segments az apc által használt megosztott memória szegmensek száma. Egyes rendszerek erre korlátozódnak maximális méret szegmenst, így beállíthatja az apc-t több szegmens használatára.
  • apc.shm_size az apc által használt megosztott memória szegmens mérete.
  • apc.ttl– Hány másodpercig nem szabad elérni egy gyorsítótár bejegyzést, mielőtt az apc felülírja.
  • apc.user_ttl- a leírás ugyanaz, mint az apc.ttl. Általában az apc.ttl.
  • apc.stat- jelzi, hogy az apc-nek ellenőriznie kell-e a php szkript módosítási idejét. Ha 0-ra van állítva, az apc nem ellenőrzi a változtatásokat a lemezen, és gyorsítótárazott másolatot készít.

Pecl telepítési feltöltés folyamata

Igaz, szükség lehet szuperfelhasználói jogokra (root).

sudo apt-get install php-apc - nem működik

Az Ubuntu 14.04-ben már nincs szükség APC-re. Az APC nem támogatott a PHP 5.5-ben, amely helyett saját beépített Opcache gyorsítótárral rendelkezik. Győződjön meg arról, hogy a gyorsítótár engedélyezve van, és szerkessze az /etc/php5/apache2/php.ini fájlt.
Csere:

;opcache.enable=0

Opcache.enable=1

Ezután győződjön meg arról, hogy a php modul engedélyezve van:

# php5enmod opcache

Végül indítsa újra az Apache-ot:

az apache2 szolgáltatás újraindítása

Vizsgálat:

http:// /info.php

Hozzon létre egy info.php fájlt a következő tartalommal a könyvtár gyökerében webszerverek/var/www/html/

És nyissa meg a böngészőben. Itt információkat talál a PHP-ről, beleértve az engedélyezett gyorsítótárat is. Ne hagyja ezt a fájlt az éles kiszolgálón. Ellenőrzés után törölje.
Látni kell:

A Zend OPcache opkód gyorsítótárazása és az optimalizálás futása engedélyezve stb.

Az alternatív PHP gyorsítótár (APC) telepítése az Ubuntu 12.04 rendszeren

Telepítés PECL-ről

Telepíteni innen Ubuntu adattár lásd lejjebb.

az APC-ről.
Az APC egy nagyszerű műveleti kód gyorsítótárazási rendszer a PHP számára, amely felgyorsíthatja webhelyét. A PHP egy dinamikus szerveroldali szkriptnyelv, amelyet a szervernek minden oldalkéréssel elemeznie, lefordítania és végrehajtania kell. Sok esetben azonban a kérések pontosan ugyanazt az eredményt adják, ami azt jelenti, hogy a felhőszervernek szükségtelenül meg kell ismételnie ezeket a lépéseket mindegyiknél.
Itt jön képbe az APC. Ez annyit tesz, hogy elmenti a PHP műveleti kódot (műveleti kódot) a RAM memóriába, és ha újra kérik, onnan végrehajtja. Lényegében megkerüli az elemzési és fordítási lépéseket, és minimálisra csökkenti a felhőkiszolgálón néhány szükségtelen terhelést.

Feltételezhető, hogy saját VPS-je van root jogosultságokkal és telepítve van a LAMP.

Először telepítse a csomagokat:

sudo apt-get install php-pear php5-dev make libpcre3-dev

Most telepítheti az APC-t a pecl paranccsal:

sudo pecl install apc

A rendszer felkéri, hogy válaszoljon néhány kérdésre, de amíg nem tudja a pontos választ, használja az alapértelmezett értéket az Enter megnyomásával.

A következő és utolsó lépés a php.ini fájl szerkesztése

a sor végére adva:

extension=apc.so

Mentse el a fájlt, és indítsa újra az Apache-t:

sudo service apache2 újraindítás

Az oldalon ellenőrizheti, hogy az APC engedélyezve van-e PHP információ. Ha nem rendelkezik ilyennel, hozza létre a /var/www könyvtárban:

Nano /var/www/info.php

és illessze be a kódot:

Nyissa meg egy böngészőben. Itt információkat talál a PHP-ről, beleértve az engedélyezett gyorsítótárat is. Ne hagyja ezt a fájlt az éles kiszolgálón. Ellenőrzés után törölje.

APC beállítása

Telepítette az APC-t, és az alapértelmezett beállításokkal fut. Legalább két beállítást kell tudnia. Nyissa meg a már szerkesztett php.ini fájlt:

Sudo nano /etc/php5/apache2/php.ini

Az APC engedélyezése sor alá írja be:

Apc.shm_size = 64

Ez lehetővé teszi, hogy az APC 64 MB RAM-ot használjon a gyorsítótárazáshoz. A konfigurációtól függően módosíthatja ezt az értéket.
Következő hozzáadandó sor:

apc.stat = 0

Az apc.stat opció minden kérésnél ellenőrzi a szkriptet, hogy lássa, megváltozott-e vagy sem. Ha a szkript megváltozott, az APC újrafordítja és gyorsítótárba helyezi új verzió. Ez az APC alapértelmezett viselkedése a telepítés után. A paraméter értékének 0-ra állításával azt mondjuk az APC-nek, hogy ne ellenőrizze a szkript változásait. Ez javítja a teljesítményt, de ha a szkriptet módosították, a változtatások a szerver újraindításáig nem érvényesülnek. Így a 0 értéket csak olyan éles kiszolgálón javasolt használni, ahol nincs állandó változás kód.

APC monitorozás
Van egy kis szkript az APC gyorsítótár állapotának és teljesítményének figyelésére.

Az apc.php fájlt átmásolhatja a /usr/share/php/ könyvtárból a webszerver munkakönyvtárába, például /vwr/www:

Cp /usr/share/php/apc.php /var/www - pecl-ről telepítve

Vagy töltse le:

Wget http://pecl.php.net/get/APCu -O - | tar xz --wildcards apcu*/apc.php

Most elérheti ezt a fájlt a böngészőből:

http:// /apc.php

Látnod kell az APC statisztikát. Vegye figyelembe, hogy az APC-nek kifogy a memóriája, és a töredezettség nem túl nagy.
Jó jel a gyorsítótár magas találati aránya, néhány kérés után körülbelül 95%.

Az APC gyorsítótár telepítése az Ubuntu lerakatból

$ sudo apt-get install php-apc

Indítsa újra az Apache-ot, és nézze meg az info.php webhelyet. Meg kell jelennie az APC (Enabled On) szakasznak.
A megfigyeléshez használja a csomagban található segédprogramot:

cd /usr/share/doc/php-apc # gunzip apc.php.gz

Másolja például az apc.php fájlt a /var/www mappába
A fájl elérése a böngészőből:

http:// /apc.php

Hiba:
Nem állnak rendelkezésre gyorsítótár-információk. APC nem futni látszik.

akkor jelenik meg, ha nincs jelszó beállítva az apc.php kódban.
apc.php fájl szerkesztése:

#vi /var/www/apc.php

és állítsa be a felhasználónevet és a jelszót:

Defaults("ADMIN_USERNAME","apc"); // Admin felhasználónév defaults("ADMIN_PASSWORD","pass"); // Admin jelszó - MÓDOSÍTSA EZT AZ ENGEDÉLYEZÉSHEZ!!!

Alapértékek("USE_AUTHENTICATION",0);

További lehetőségek az /etc/php5/apache2/conf.d/apc.ini fájlban

;apc.enabled=1 - nem releváns;apc.enable_cli=1 - nem releváns;apc.shm_size=64M # alapértelmezett 32M ;apc.stat = 0

APC a rövidítése Alternatív PHP gyorsítótár. Az orosz szöveg egy alternatív PHP gyorsítótár. Mire használják? A többi népszerű gyorsítótárhoz hasonlóan, mint az XCache és az eAccelerator, a PHP-szkriptek felgyorsítására szolgál. Ha van saját szervere, és aggódik a PHP szkriptek teljesítménye miatt, akkor az APC megoldást jelenthet problémájára. A mai cikkben többet megtudunk az APC-ről, megtudjuk, hogyan telepítsük és teszteljük, használjuk az APC gyorsítótárat PHP szkriptek írásakor.

Ma megtudjuk

Mi az APC-gyorsító?

GyorsítóAPC(Alternatív PHP Cache) egy ingyenes és nyílt műveleti kód gyorsítótár a PHP számára. Ingyenes, nyílt és stabil gyorsítótárazási és optimalizálási keretrendszernek készült. forráskód PHP. Az APC a fejlesztési szakaszban van. Jelenleg a PHP 4 és PHP 5 támogatása, beleértve az 5.3-at is. Feltehetően a hatodik verzió szabványos PHP magjába kerül.

Hogyan érhető el a gyorsulás?PHP?

Amikor késik a webhely betöltése, felmerül a kérdés: Miért? A tény az, hogy amikor szabványos hívást hajt végre egy PHP-szkripthez, minden alkalommal, amikor az újrafordításra kerül. Vagyis ugyanazt a munkát többször elvégzik. Ha ez egy kis projekt, a lassulások kisebbek, sőt láthatatlanok is lehetnek. De ha van egy nagy projektje (webhelye), akkor azt vette észre, hogy amikor hozzáfér, késik az oldal betöltése, annak ellenére, hogy az oldal jól optimalizált és szempontjából. Az érthetőség kedvéért nézzük meg, hogyan fut le egy szabványos lekérdezés anélkül PHP használat gyorsítók:

Ugyanakkor a végrehajtás kód összeállítása minden kérésre. A kérés feldolgozása sok időt vesz igénybe, ezért lelassul. Ennek megkerülésére gyorsítókkal rukkoltak elő, amelyeknek az APC a képviselője. Gyorsítótárazza a lefordított kódot a lemezen, ami után kiírja az eredményt. Ez növeli a sebességet PHP munka. Az APC két módban tud működni, amelyek a fájlban vannak konfigurálva /etc/php.d/apc.ini, változó apc.stat. A változó 1 és 0 értéket vehet fel (apc.stat=0 vagy apc.stat=1). Az apc.stat=1 mód használata kissé lelassítja a szkriptek működését, miközben ellenőrzi a fájlmódosításokat, de ezzel elkerülhetőek a kód megváltoztatásakor jelentkező problémák, és az eredmény kimenete változatlan marad. Ezért azt tanácsolom, hogy a változó értékét állítsa 1-re.

Az APC-gyorsító telepítése után a lekérdezés végrehajtási séma a következő lesz:

APC telepítés

Az APC telepítése nagyon egyszerű. Telepíthető Debian/Ubuntu és más disztribúciókra is.

Az APC telepítése CentOS, RHEL, Fedora rendszeren:

PECL-en keresztül telepítjük. Először is a .repo fájlt tartalmazza, amely a tényleges APC-t tartalmazza. Lásd az alábbi példát:

wget http://rpm.scwlab.com/el/php/yum.conf -O /etc/yum.repos.d/stalwart.repo

yum telepítse a php-pecl-apc-t

Most módosítsa az /etc/php.d/apc.ini fájl beállításait kedvére, és indítsa újra a kiszolgálót.

APC telepítése Debianra, Ubuntura

apt-get install apache2-threaded-dev php5-dev php5-pear make gcc g++

pecl install apc

A letöltés után nyissa meg a fájlt a /etc/php5/apache2/php.ini címen, és adja hozzá a paramétert extension=apc.so, és indítsa újra a szervert.

Amint láthatja, az APC telepítése Debianra vagy Ubuntura meglehetősen egyszerű, be kell írnia a parancsot a konzolba sudo aptitude install php-apc. Ezt a bővítményt a következőn keresztül is telepítheti szinaptikus. Ha más disztribúcióval rendelkezik, telepítheti az APC csomagot a PECL-ből. Ehhez futtassa a következő parancsot a konzolon sudo pecl install apc.

Csomag létezésének ellenőrzéseAPC

Ha van csomagbetöltési sor a php.ini beállítási fájlban extension=apc.so. Vagy létrejött egy apc.ini fájl azonos sorral a PHP kiterjesztések konfigurációs mappájában. Minden disztribúciónak saját címe van. Debian esetén ez az /etc/php5/apache2/conf.d/.

Ha ellenőrizte, és meggyőződött arról, hogy minden rendben van, indítsa újra a szervert. Most nézzük meg magáról az APC-csomagról szóló információkat. Ehhez keresse meg a mappát, ahová a kiterjesztést telepítette. A mappában név szerint találja a fájlt apc.php. Ez a fájl a telepítési archívumban is megtalálható. Másold át bármelyik könyvtárba a szerver oldalairól..php. Ha a csomag telepítése sikeres volt, akkor a fájl letöltésekor az alábbi táblázatban láthatja az aktuális APC-csomaggal kapcsolatos információkat.



APC használata PHP-ben

Az APC kiterjesztés használata PHP kód írásakor nagyon egyszerű és kényelmes. Most meglátod magad.

Először írunk egy osztályt, amely az APC gyorsítótárazó rendszeren keresztül a memóriával dolgozik. Hozzon létre egy fájlt, és helyezze el a kódot a következő címre:

classes/apc.caching.php

bEnabled = extension_loaded("apc"); ) // adatok lekérése a memória függvényből getData($sKey) ( $bRes = false; $vData = apc_fetch($sKey, $bRes); return ($bRes) ? $vData:null; ) // adatok mentése a memóriafüggvénybe setData($sKey, $vData) ( return apc_store($sKey, $vData, $this->iTtl); ) // adatok törlése a memóriafüggvényből delData($sKey) ( $bRes = false; apc_fetch($sKey, $ bRes); return ($bRes) ? apc_delete($sKey) : true; ) ) ?>

Az osztály leírja, hogy az egyes függvények mit csinálnak. Most hozzunk létre egy tesztfájlt.

index.php

"tábla", "szín" => "barna", "méret" => array("x" => 200, "y" => 120, "z" => 150,), "erő" => 10, ); request_once("classes/apc.caching.php"); $oCache = new CacheAPC(); echo "Adatok:

"; // Lássuk, mi van print_r($aData); echo "
"; if ($oCache->bEnabled) ( // Ha az APC elérhető $oCache->setData("my_object", $aData); // Adatok tárolása a memóriában $oCache->setData("our_class_object", $oCache) ; // Tárolja az osztályobjektumot a memóriában echo "Elméletileg a memóriában tároltuk az adatokat, kattintson ide, hogy ellenőrizze, valóban minden megvan-e."; ) else ( echo "Az APC csomag nincs telepítve, telepítse, majd tesztelje!" ;) ?>

Ebben a fájlban 2 objektumot tároltunk a memóriában: egy tömböt és egy osztályobjektumot. Most hozzuk létre a második fájlt.

index2.php

bEnabled) ( // Ha az APC elérhető $aMemData = $oCache->getData("my_object"); // Adatok lekérése a memóriából $aMemData2 = $oCache->getData("our_class_object"); // adatok lekérése a memóriából osztályban echo "Adatok a memóriában:

"; // ellenőrizze, mi van a memóriában print_r($aMemData); echo "
"; echo "Amint látod minden adat elérhető, most kérd le a memóriából, erre megyünk ide..."; ) else ( echo "Az APC csomag nincs telepítve, telepítsd, majd teszteled meg!";) ?>

Ebben a szkriptben csak a memóriából olvasunk információkat. Mint látható, minden információ tökéletesen kiolvasható a memóriából. Lássuk az utolsó példát.

index3.php

bEnabled) ( // Ha az APC elérhető $oCache->delData("my_object"); // Adatok lekérése a memóriából $oCache->delData("our_class_object"); // Adatok lekérése a memóriából $aMemData = $oCache-> getData ("my_object"); // adatok visszaszerzése $aMemData2 = $oCache->getData("our_class_object"); echo "Adatok a memóriából:

"; // Ellenőrizze, mi van a memóriában print_r($aMemData); echo "
"; echo "Adatok a CacheAPC osztály objektum memóriájából:
"; print_r($aMemData2); echo "
"; echo "Amint látja, minden adatot lekértek a memóriából. Hurrá!"; ) else ( echo "APC csomag nincs telepítve, telepítse és tesztelje később!"; ) ?>

Következtetés

Köszönöm a figyelmet! Remélem, hogy tetszett olvasni a használatrólAPC-kPHP. Ha van más ötlete a használatával kapcsolatbanAPC írás közbenPHP szkriptek, írj róla kommentben.


APC a rövidítése Alternatív PHP gyorsítótár. Az orosz szöveg egy alternatív PHP gyorsítótár. Mire használják? A többi népszerű gyorsítótárhoz hasonlóan, mint az XCache és az eAccelerator, a PHP-szkriptek felgyorsítására szolgál. Ha van saját szervere, és aggódik a PHP szkriptek teljesítménye miatt, akkor az APC megoldást jelenthet problémájára. A mai cikkben többet megtudunk az APC-ről, megtudjuk, hogyan telepítsük és teszteljük, használjuk az APC gyorsítótárat PHP szkriptek írásakor.

Mi az APC-gyorsító?

GyorsítóAPC(Alternatív PHP Cache) egy ingyenes és nyílt műveleti kód gyorsítótár a PHP számára. Ingyenes, nyílt és stabil keretrendszernek tervezték a PHP forráskód gyorsítótárazásához és optimalizálásához. Az APC a fejlesztési szakaszban van. Jelenleg a PHP 4 és PHP 5 támogatása, beleértve az 5.3-at is. Feltehetően a hatodik verzió szabványos PHP magjába kerül.
Hogyan érhető el a gyorsulás?PHP?
Amikor késik a webhely betöltése, felmerül a kérdés: Miért? A tény az, hogy amikor szabványos hívást hajt végre egy PHP-szkripthez, minden alkalommal, amikor az újrafordításra kerül. Vagyis ugyanazt a munkát többször elvégzik. Ha ez egy kis projekt, a lassulások kisebbek, sőt láthatatlanok is lehetnek. De ha van egy nagy projekted (weboldalad), akkor észrevetted, hogy amikor belépsz, késik az oldal betöltése, annak ellenére, hogy az oldal jól optimalizált html tömörítés és css tömörítés tekintetében. Az egyértelműség kedvéért nézzük meg, hogyan történik egy szabványos kérés végrehajtása PHP-gyorsítók használata nélkül:

Ugyanakkor a végrehajtás kód összeállítása minden kérésre. A kérés feldolgozása sok időt vesz igénybe, ezért lelassul. Ennek megkerülésére gyorsítókkal rukkoltak elő, amelyeknek az APC a képviselője. Gyorsítótárazza a lefordított kódot a lemezen, ami után kiírja az eredményt. Ez növeli a PHP sebességét. Az APC két módban tud működni, amelyek a fájlban vannak konfigurálva /etc/php.d/apc.ini, változó apc.stat. A változó 1 és 0 értéket vehet fel (apc.stat=0 vagy apc.stat=1). Az apc.stat=1 mód használata kissé lelassítja a szkriptek működését, miközben ellenőrzi a fájlmódosításokat, de ezzel elkerülhetőek a kód megváltoztatásakor jelentkező problémák, és az eredmény kimenete változatlan marad. Ezért azt tanácsolom, hogy a változó értékét állítsa 1-re.
Az APC-gyorsító telepítése után a lekérdezés végrehajtási séma a következő lesz:

Az APC Accelerator telepítése

Mivel az apt frissített verziók nagyon későn tette hozzá. Ezért az APC-t PECL-en keresztül telepítjük:

sudo apt-get remove --purge php-apc sudo apt-get install libpcre3-dev sudo pecl install apc
A telepítés során a következő konfigurációt állítottuk be (YMMV):
Belső hibakeresés engedélyezése az APC-ben : nem Az APC gyorsítótárából használt fájlokról kérésenkénti információ engedélyezése : nem Pörgetészár engedélyezése (KÍSÉRLETI) : nem Memóriavédelem engedélyezése (KÍSÉRLETI) : nem Pthread mutexek engedélyezése (alapértelmezett) : igen Pthread olvasási/írási engedélyezése zárak (KÍSÉRLETI) : nem Most engedélyeznie kell az APC-t a beállításokban, mert. ez nem történik meg automatikusan. Ehhez alkotunk apc.ini fájlt a megfelelő könyvtárba: sudo vim /etc/php5/conf.d/apc.ini és írja be a következő beállításokat ebbe a fájlba (a Magento használatához ajánlott) extension=apc.so apc.enabled=1 apc.shm_size=512M apc.num_files_hint=10000 apc.user_entries_hint=10000 apc.max_file_size=5M apc.stat=0 apc.optimization=0 apc.shm_size=0 apc.shm. apc.cache_by_default=1 apc.include_once_override=1

Engedélyezze az APC támogatást a Magento alkalmazásban

Nyissa meg a Magento konfigurációs fájlt: vi app/etc/local.xml és adja hozzá a következő kódot a globális szakaszhoz:


apc fájl 0 1 MAGE_ vagy apc adatbázis 0 1 MAGE_


Hol van feltüntetve az „Előtag” címkék között Rövid leírásáruházat, hogy az APC segítségével több, ugyanarra a Magento-ra épülő áruház gyorsítótárazására legyen képes.

Hogyan ellenőrizhető, hogy az APC működik-e?

Először is ezt kell észrevenned PHP szkriptek Magento, hogy gyorsabb legyen. Használat A Firebug és a hozzá tartozó beépülő modul, például az YSlow, a webhely sebességének értékeléséhez. Itt töltheti le a Firebug bővítményt a Firefoxhoz. Alternatív megoldásként használhatja az apc.php fájlt úgy, hogy átmásolja az APC terjesztési mappájából a projekted nyilvános: sudo cp /usr/share/php/apc.php /nyilvános elérési útja Most megnyithatja ezt a fájlt a böngészőjében: http://yourhost.local/apc.php

Ezeknek a függvényeknek a viselkedése a php.ini beállításaitól függ.

Míg az alapértelmezett APC-beállítások a legtöbb telepítéshez megfelelőek, egyes alkalmazások finomabb hangolást igényelhetnek.

Az APC konfigurálásakor két fő szempontra kell figyelni. Az első az, hogy mennyi memóriát kell rendelkezésre bocsátani az APC számára, a második pedig az, hogy az APC minden kérésnél ellenőrzi-e, hogy módosították-e a fájlt. Ezek a beállítások a paraméterek apc.shm_sizeés apc.stat, ill. Kérjük, figyelmesen olvassa el a paraméterek beállításával kapcsolatos részeket.

A szerver elindítása után a szkript apc.php A bővítményhez mellékelt fájlt a "docroot"-ba kell másolni, és engedélyekkel kell rendelkeznie a böngészőn keresztüli futtatásához. Ez a szkript részletes információkat nyújt az APC működéséről. Ha a GD engedélyezve van a PHP-ben, akkor ez a szkript hasznos grafikonokat is mutat. Természetesen az első dolog, ami érdekel, az az, hogy az APC gyorsítótáraz-e valamit. Ha az APC fut, akkor az érték A gyorsítótár teljes száma(balra) megmutatja, hányszor telt meg teljesen a gyorsítótár, és hányszor kénytelen volt törölni azokat a bejegyzéseket, amelyekhez utoljára nem fértek hozzá apc.ttl másodpercig. Minél kisebb ez a szám, annál jobb a gyorsítótár beállítása. Ha ez a szám folyamatosan növekszik, akkor az APC-nek folyamatosan meg kell tisztítania a régi rekordokat, és ezért a gyorsítótárazás lényege elvész. A legtöbb A legjobb mód ennek a számnak a csökkentéséhez több memória bővítése az APC számára. Ha ezt nem lehet megtenni, akkor újra kell konfigurálnia apc.filters a gyorsítótárazott szkriptek készletének korlátozására.

Ha az APC mmap (Memory Mapping) támogatással épül fel, akkor csak egy memóriaszegmenst használ, ha fordítva, az APC SHM (SysV Shared Memory) támogatással, akkor több szegmenst használ. Az MMAP-nak nincs maximális korlátja, ellentétben az SHM-mel, amely korlátozott /proc/sys/kernel/shmmax. Általában ajánlott az MMAP használata, mert a webszerver újraindításakor sokkal gyorsabban foglal le memóriát, ami befolyásolja a szerver indítási sebességét.

Az APC konfigurációs paraméterei
Név Alapértelmezett A változás helye Változások listája
apc.enabled "1" PHP_INI_SYSTEM PHP_INI_SYSTEM az APC 2-ben. PHP_INI_ALL az APC-ben<= 3.0.12.
apc.shm_segments "1" PHP_INI_SYSTEM
apc.shm_size "32M" PHP_INI_SYSTEM
apc.shm_strings_buffer "4M" PHP_INI_SYSTEM Az APC 3.1.4 óta elérhető.
apc.optimization "0" PHP_INI_ALL PHP_INI_SYSTEM az APC 2-ben. Eltávolítva az APC 3.0.13-ban.
apc.num_files_hint "1000" PHP_INI_SYSTEM
apc.user_entries_hint "4096" PHP_INI_SYSTEM Az APC 3.0.0 óta elérhető.
apc.ttl "0" PHP_INI_SYSTEM Az APC 3.0.0 óta elérhető.
apc.user_ttl "0" PHP_INI_SYSTEM Az APC 3.0.0 óta elérhető.
apc.gc_ttl "3600" PHP_INI_SYSTEM
apc.cache_by_default "1" PHP_INI_ALL PHP_INI_SYSTEM az APC-ben<= 3.0.12. Доступно с APC 3.0.0.
apc.filters NULLA PHP_INI_SYSTEM
apc.mmap_file_mask NULLA PHP_INI_SYSTEM
apc.slam_defense "1" PHP_INI_SYSTEM Az APC 3.0.0 óta elérhető. Az APC 3.1.4 előtt az alapértelmezett érték "0" (Tiltva).
apc.file_update_protection "2" PHP_INI_SYSTEM Az APC 3.0.6 óta elérhető.
apc.enable_cli "0" PHP_INI_SYSTEM Az APC 3.0.7 óta elérhető.
apc.max_file_size "1M" PHP_INI_SYSTEM Az APC 3.0.7 óta elérhető.
apc.use_request_time "1" PHP_INI_ALL Az APC 3.1.3 óta elérhető.
apc.stat "1" PHP_INI_SYSTEM Az APC 3.0.10 óta elérhető.
apc.write_lock "1" PHP_INI_SYSTEM Az APC 3.0.11 óta elérhető.
apc.report_autofilter "0" PHP_INI_SYSTEM Az APC 3.0.11 óta elérhető.
apc.serializer "alapértelmezett" PHP_INI_SYSTEM Az APC 3.1.0 óta elérhető.
apc.include_once_override "0" PHP_INI_SYSTEM Az APC 3.0.12 óta elérhető.
apc.rfc1867 "0" PHP_INI_SYSTEM Az APC 3.0.13 óta elérhető.
apc.rfc1867_prefix "feltöltés_" PHP_INI_SYSTEM
apc.rfc1867_name "APC_UPLOAD_PROGRESS" PHP_INI_SYSTEM
apc.rfc1867_freq "0" PHP_INI_SYSTEM
apc.rfc1867_ttl "3600" PHP_INI_SYSTEM Az APC 3.1.1 óta elérhető.
apc.localcache "0" PHP_INI_SYSTEM
apc.localcache.size "512" PHP_INI_SYSTEM Elérhető az APC 3.0.14 - 3.1.11 verziókban.
apc.coredump_unmap "0" PHP_INI_SYSTEM Az APC 3.0.16 óta elérhető.
apc.stat_ctime "0" PHP_INI_SYSTEM Az APC 3.0.13 óta elérhető.
apc.preload_path NULLA PHP_INI_SYSTEM Az APC 3.1.1 óta elérhető.
apc.file_md5 "0" PHP_INI_SYSTEM Az APC 3.1.1 óta elérhető.
apc.canonicalize "1" PHP_INI_SYSTEM Az APC 3.1.1 óta elérhető.
apc.lazy_functions 0 PHP_INI_SYSTEM Az APC 3.1.3 óta elérhető.
apc.lazy_classes 0 PHP_INI_SYSTEM Az APC 3.1.3 óta elérhető.
A PHP_INI_* állandók részletes leírását lásd: A konfigurációs beállítások megadása.

A konfigurációs direktívák rövid magyarázata.

Ha be van állítva apc.enabledállítsa 0-ra, akkor az APC nem lesz engedélyezve. Ez akkor hasznos, ha az APC statikusan engedélyezve van a PHP-ben, és nincs más lehetőség a használat letiltására. Ha az APC DSO-ként épül fel, egyszerűen kommentálhatja a sort kiterjesztés ban ben php.ini.

Apc.shm_segments egész szám

A gyorsítótár számára lefoglalt megosztott memória szegmensek száma. Ha az APC elhasználta az összes rendelkezésre álló megosztott memóriát, és apc.shm_size amennyire a rendszer lehetővé teszi, a beállítás növelése segíthet.

Apc.shm_size húr

Megosztott memória szegmensmérete, rövidített jelöléssel megadva (lásd ezt a GYIK-et). Alapértelmezés szerint egyes rendszerek (beleértve a legtöbb BSD-változatot is) rendkívül alacsony értékre korlátozzák ezt az értéket.

Apc.shm_strings_buffer húr

Az APC belső folyamatai által használt megosztott karakterlánc-gyorsítótárhoz lefoglalt memória mennyisége. A méretnek M vagy G utótaggal kell végződnie a megabájt, illetve a gigabájt jelölésére. Ennek az opciónak a használatával csökkenthető a PHP-FPM munkafolyamatok memóriaigénye, mivel az azonos karakterláncok csak egyszer kerülnek tárolásra a memóriában, és minden munkafolyamat használhatja őket.

Apc.optimization egész szám

Optimalizálási szint. A nulla letiltja az optimalizálást. Minél magasabb ez az érték, annál agresszívabb optimalizálást alkalmazunk. Ne számíts nagy sebességnövekedésre. Ez egy kísérleti funkció.

Apc.num_files_hint egész szám

Tipp a webhelyén használt egyedi fájlok számára. Állítsa nullára, vagy ne adja meg egyáltalán, ha nem biztos benne. Ez a beállítás akkor hasznos, ha több ezer fájllal rendelkezik.

Apc.user_entries_hint egész szám apc.file_update_protection egész szám

Ha egy fájlt menet közben módosítanak, azt atomosan kell megtenni. Vagyis először egy ideiglenes fájlba kell írni, majd át kell helyezni ( mv) célpozíciójába. Sok szövegszerkesztő cp, kátrány mások pedig nem. Emiatt előfordulhat, hogy a fájl lekérése (és gyorsítótárazása) az íráskor megtörténik. Beállítás apc.file_update_protection beállítja a gyorsítótárazási késleltetést a vadonatúj fájlok számára. Az alapértelmezett 2 másodperc. Ez azt jelenti, hogy ha a fájl módosítási időbélyeg ( mtime) azt mondja, hogy ha kevesebb mint 2 másodperc telt el a fájl módosítása óta, akkor nem kerül gyorsítótárba. Egy szerencsétlen ember, aki megpróbál hozzáférni egy félig mentett fájlhoz, furcsa viselkedést tapasztal, de legalább nem tart sokáig. Ha az összes webszerver fájl atomszerűen frissül, olyan módszerekkel, mint pl rsync(amely megfelelően frissül), akkor ez a viselkedés letiltható a paraméter nullára állításával. Ha a rendszer I/O túlterhelt, akkor egyes frissítések két másodpercnél tovább tarthatnak, és ezt a beállítást ennek megfelelően növelni kell.

Apc.enable_cli egész szám

Inkább teszteléshez és hibakereséshez. Ez a beállítás engedélyezi az APC-t a PHP CLI verziójához. Normál működés közben egy olyan APC futtatása, amely létrehozza, feltölti és megsemmisíti a gyorsítótárat minden alkalommal, amikor egy parancsfájlt futtat a konzolon, messze nem a legjobb ötlet. De tesztelés és hibakeresés céljából egyszerűen engedélyezheti az APC-t a CLI-hez.

Apc.max_file_size egész szám

A beállításnál nagyobb fájlokat nem tárolja a gyorsítótárban. Az alapértelmezett érték 1M.

Apc.stat egész szám

Legyen óvatos, amikor módosítja ezt a beállítást. Ez alapértelmezés szerint engedélyezve van, így az APC minden kérésnél ellenőrzi a szkriptfájlokat, hogy lássa, módosultak-e. Ha módosították őket, akkor újrafordításra és gyorsítótárba kerül. Ha ez a beállítás le van tiltva, akkor az APC nem hajt végre ilyen ellenőrzést, és ha a fájlt már gyorsítótárba helyezték, majd módosították, akkor az új verzió nem kerül be a gyorsítótárba. Az újragyorsításhoz újra kell indítania a webszervert. Ne feledje, hogy a FastCGI használatára konfigurált webszerverek nem feltétlenül törlik a gyorsítótárat újraindításkor. Éles környezetben, ahol ritkák a fájlmódosítások, ennek a beállításnak a letiltása jelentősen javíthatja a teljesítményt.

Az include/required keresztül betöltött fájlok esetén ez a beállítás remekül működik, de ügyeljen arra, hogy ha egy relatív elérési utat ad meg (Unix esetén ez minden olyan elérési út, amely nem / karakterrel kezdődik), az APC ellenőrzi az egyediséget. Abszolút elérési utak használata esetén az APC kihagyja ezt az ellenőrzést, és az abszolút elérési utat használja egyedi fájlazonosítóként.

Apc.write_lock logikai érték

Erősen terhelt szervereken, amikor a kiszolgáló elindul, vagy ha egyszerre sok fájl változik, az APC megpróbálhatja többször is lefordítani és gyorsítótárazni ugyanazt a fájlt egy időben. Az írási zár biztosítja, hogy csak egy folyamat kísérelje meg lefordítani és gyorsítótárazni a nem gyorsítótárazott fájlt. Más folyamatok, amelyeknek ezt a fájlt kell használniuk, a nem gyorsítótárazott verziót fogják használni, ahelyett, hogy megvárnák, hogy az megjelenjen a gyorsítótárban.

Apc.report_autofilter logikai érték

Naplóz minden olyan szkriptet, amelyet a gyorsítótárazásból kizártak a korai vagy késői kötési problémák miatt.

Apc.serializer húr

Megkéri az APC-t, hogy használjon harmadik féltől származó szerializálót.

Apc.include_once_override logikai érték

Optimalizálja a hívásokat tartalmazza_egyszerés igényel_egyszer hogy elkerüljük a drága rendszerhívásokat.

Figyelem

Ez a funkció az KÍSÉRLETI. Ennek az irányelvnek a viselkedése, neve és dokumentációja értesítés nélkül megváltozhat az APC jövőbeli verzióiban. Használja saját felelősségére.

Apc.rfc1867 logikai érték

Az RFC1867 File Upload Progress Hook csak PHP 5.2.0 vagy újabb verzióval készült APC-ben érhető el. Ha engedélyezve van, a szerverre feltöltött bármely fájl, amely az űrlapon a fájlt tartalmazó mező előtt tartalmazza a névvel rendelkező mezőt APC_UPLOAD_PROGRESS, arra kényszeríti az APC-t, hogy automatikusan hozzon létre egy egyéni gyorsítótár-bejegyzést a upload_ űrlapból kulcs, ahol kulcs a mező értéke APC_UPLOAD_PROGRESS.

Ne feledje, hogy a rejtett mező APC_UPLOAD_PROGRESS a terepre kell mennie a fájllal, különben a munka hibás lesz.

Vegye figyelembe, hogy a fájlletöltés nyomon követése a szálak szerint nem biztonságos, így ha az első letöltés során egy új, ugyanazzal a kulccsal rendelkező fájl történik, az első leállítja a követést.

vegye figyelembe, hogy mérték csak akkor lesz elérhető, ha az összes jelenlegi letöltés befejeződött.

Beispiel #1 apc.rfc1867 példa

print_r(apc_fetch("feltöltés_ $_POST [APC_UPLOAD_PROGRESS]" ));
?>

A példa futtatásának eredménye a következő lesz:

Tömb ( => 1142543 => 1142543 => 1828068.8 => teszt => fájl => /tmp/php8F => 0 => 1)

Apc.rfc1867_prefix húr

Az rfc1867 letöltési folyamatkövető funkció által létrehozott felhasználói gyorsítótár-bejegyzésben használandó kulcs előtag.

Apc.rfc1867_name húr

Megad egy nevet egy rejtett űrlapmezőhöz, amely elindítja az APC-feltöltési folyamatot, és megadja a felhasználói gyorsítótár kulcsának utótagját.

Apc.rfc1867_freq húr

A gyorsítótárban lévő felhasználói bejegyzés frissítésének gyakorisága a fájlletöltés során. Megadható százalékban és a méret bájtban történő megadásával is. Használhat utótagokat, ha tetszik. "k", "m"és "g"(kis- és nagybetű nem érzékeny) kilobyte, megabyte és gigabyte esetén. Ha nullára állítja, a frissítések a lehető leggyorsabban megtörténnek, de ez lelassíthatja a letöltést.

Apc.rfc1867_ttl egész szám

TTL rfc1867 rekordokhoz.

Apc.localcache logikai érték

Engedélyezi a nem blokkoló helyi folyamatok árnyék-gyorsítótárát, amely csökkenti a zárolások számát a gyorsítótár írása során.

Apc.localcache.size egész szám

A helyi árnyékfolyamat gyorsítótár méretének elég nagynak kell lennie, körülbelül az apc.num_files_hint felének.

Apc.coredump_unmap logikai érték

Lehetővé teszi az APC-nek, hogy elfogjon olyan jeleket, mint például a SIGSEGV, amely adott esetben magdumpot ír. Amikor ezeket a jeleket megkapja, az APC megpróbálja felszabadítani az összes megosztott memóriát, hogy az ne kerüljön bele a magtárolóba. Ez a beállítás növelheti a rendszer stabilitását, ha kritikus jel érkezett, és az APC nagy mennyiségű memória használatára van konfigurálva.

Figyelem

Ez a lehetőség potenciálisan veszélyes. A megosztott memória szegmenseinek felszabadítása kritikus jel fogadásakor kiszámíthatatlan viselkedéshez vezethet.

Megjegyzés:

Bár egyes kernelek lehetővé teszik bizonyos megosztott memória szegmensek figyelmen kívül hagyását az alapfájl írásakor, ezek a megvalósítások figyelmen kívül hagyhatják a fontos memóriaszegmenseket is, például az Apache eredménytábláját.

apc.stat_ctime egész szám

Ellenőrizzük a ctime függvényt, hogy elkerüljük az olyan programok által okozott problémákat, mint az svn vagy az rsync, ellenőrizve, hogy az inode nem változott-e a legutóbbi statisztikai adatgyűjtés óta. Az APC általában csak az mtime-t ellenőrzi.

Apc.canonicalize bool

Ha le van tiltva, akkor a relatív elérési utak kanonikussá alakulnak no-stat módban. Ha engedélyezve van, az adatfolyam burkolóján keresztül csatlakoztatott fájlok nem kerülnek gyorsítótárba, mert realpath() nem támogatja az adatfolyam-burkolókat.

Apc.preload_path húr

Választható. Megadja az APC által az indításkor tárolt adatok betöltéséhez használt elérési utat.

Apc.use_request_time bool

Használja a SAPI lekérdezés kezdő időpontját a TTL-hez.

Apc.file_md5 bool

Írjon md5 hash fájlokat.

Apc.lazy_functions egész szám

Lehetővé tesz lusta rakodás funkciókat.

Apc.lazy_classes egész szám

Lehetővé teszi a lusta osztálybetöltést.