Odporúča sa nainštalovať akcelerátor php skriptov, ktorý zníži zaťaženie vášho webového servera. Akcelerátor skompiluje najčastejšie používané php skripty a pri prístupe načíta nie zdrojový kód, ale jeho skompilovanú verziu. Vďaka čomu dochádza k zrýchleniu vykonávania a zobrazovania vašej stránky. Toto je obzvlášť viditeľné na "ťažkých" CMS, ako je Bitrix.

Ak chcete nainštalovať akcelerátor APC, musíte najprv nainštalovať XCode c s komponentom príkazový riadok.

Po aktualizácii Mac OS X na verziu 10.9 Maverick musíte preinštalovať komponent príkazového riadka. Teraz nie je nainštalovaný cez GUI a pomocou príkazového riadka: xcode-select --install

V opačnom prípade sa pri inštalácii rozšírení pomocou pecl zobrazí chyba „súbor php.h sa nenašiel“

./configure make sudo make install

sudo pecl nainštalovať apc

Ak všetko prebehlo dobre, skontrolujte inštaláciu APC pomocou skriptu php s príkazom phpinfo (). pri vykonávaní príkazu môže dôjsť k úplnému zlyhaniu, v tomto prípade musíte vyskúšať nasledovné:

Ak tento príkaz zlyhá, potom s najväčšou pravdepodobnosťou nemáte nainštalované PEAR a PECL. Je potrebné ich stiahnuť pomocou príkazu curl a nainštalovať

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

Pri otázke o konfigurácii PEAR je potrebné opraviť parametre 1 a 4. Kde budú

11. Názov konfiguračného súboru:

1-11, "all" alebo Enter pre pokračovanie:

Najprv odpovedzte 1. A zadajte adresu:

/usr/local/hruška

Potom odpovedzte 4 a zadajte nasledujúcu adresu

Potom stlačte enter. HRUŠKA nainštalovaná. Môžete to skontrolovať pomocou príkazu

Hrušková verzia

Potom to skúste znova

Tentokrát som bol odmietnutý s nasledujúcou správou

Nemožno nájsť autoconf. Skontrolujte svoju inštaláciu autoconf a

$PHP_AUTOCONF premenná prostredia. Potom znova spustite tento skript.

CHYBA: `phpize' zlyhalo

Ak chcete túto chybu opraviť, musíte si stiahnuť a nainštalovať autokonfiguráciu pomocou nasledujúcich príkazov terminálu

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

Po nainštalovaní autokonfigurácie je príkaz:


sudo pecl nainštalovať apc

Všetky otázky položené pri kompilácii APC sú zodpovedané predvoleným vstupom. Ak je otázka

Povoliť interné ladenie v APC: y

V takom prípade sa pri vykonávaní kódu môžu od samotného APC zobraziť chybové správy. Správna odpoveď je nie.

Inštalácia prebehla úspešne. Teraz reštartujte apache

reštart sudo apachectl

Ak preinštalujete APC po aktualizácii na Mavericks, môže sa vyskytnúť chyba spojená s existenciou stará verzia phpize. V tomto prípade môžu nasledujúce príkazy pomôcť aktualizovať konfiguráciu pecl sudo pear config-set php_ini /etc/php.ini sudo pecl config-set bin_dir /usr/bin/

Musíte sa uistiť, že v súbore /etc/php.ini je riadok a v prípade potreby ho pridať.

Rozšírenie=apc.so

A znova reštartujte apache.

Kontrola phpinfo()


Bitrix vyžaduje inštaláciu ďalšie možnosti. Nastavenia APC sú v súbore

Nastavil som si pre seba nasledujúce možnosti:

Apc.ttl=7200
apc.max_file_size=64 miliónov
apc.shm_size = 64 miliónov

Čo priniesla zmena výkonu (podľa monitora výkonu Bitrix) z 10,62 jednotiek na 40,52)
To je ako všetko.

Základné nastavenia APC

  • apc.povolené- umožňuje povoliť alebo zakázať APC
  • apc.shm_segments je počet segmentov zdieľanej pamäte, ktoré apc použije. Niektoré systémy sú obmedzené na maximálna veľkosť segment, takže môžete nakonfigurovať apc na používanie viacerých segmentov.
  • apc.shm_size je veľkosť jedného segmentu zdieľanej pamäte, ktorý používa apc.
  • apc.ttl– koľko sekúnd nesmie byť prístup k záznamu cache, kým ho apc prepíše.
  • apc.user_ttl- popis je rovnaký ako apc.ttl. Zvyčajne nastavený na apc.ttl.
  • apc.stat- označuje, či má apc skontrolovať čas úpravy php skriptu. Ak je nastavená na 0, apc nebude kontrolovať zmeny na disku a vytvorí kópiu uloženú vo vyrovnávacej pamäti.

Pecl install uploadprogress

Pravda, môžu sa vyžadovať práva superužívateľa (root).

sudo apt-get install php-apc - nefunguje

APC už nie je potrebné v Ubuntu 14.04. APC nie je podporované v PHP 5.5, ktoré namiesto toho prichádza s vlastnou vstavanou vyrovnávacou pamäťou Opcache. Uistite sa, že je povolená vyrovnávacia pamäť, upravte súbor /etc/php5/apache2/php.ini.
Nahradiť:

;opcache.enable=0

Opcache.enable=1

Potom sa uistite, že je povolený modul php:

# php5enmod opcache

Nakoniec reštartujte Apache:

reštart služby apache2

Vyšetrenie:

http:// /info.php

Vytvorte súbor info.php s nasledujúcim obsahom v koreňovom adresári adresára webové servery/var/www/html/

A otvorte ho v prehliadači. Nájdete tam informácie o PHP vrátane povolenej vyrovnávacej pamäte. Nenechávajte tento súbor na produkčnom serveri. Po kontrole ho vymažte.
Musí vidieť:

Ukladanie operačného kódu Zend OPcache do vyrovnávacej pamäte a spustenie optimalizácie povolené atď.

Ako nainštalovať alternatívnu vyrovnávaciu pamäť PHP (APC) na Ubuntu 12.04

Inštalácia z PECL

Na inštaláciu z Úložisko Ubuntu Pozri nižšie.

o spoločnosti APC.
APC je skvelý operačný systém na ukladanie kódu do vyrovnávacej pamäte pre PHP, ktorý môže pomôcť urýchliť vašu stránku. PHP je dynamický skriptovací jazyk na strane servera, ktorý musí server analyzovať, skompilovať a spustiť pri každej požiadavke na stránku. V mnohých prípadoch však požiadavky prinášajú presne rovnaké výsledky, čo znamená, že cloudový server musí zbytočne opakovať všetky tieto kroky pre každú z nich.
Tu vstupuje do hry APC. To, čo robí, je uložiť operačný kód PHP (operačný kód) do pamäte RAM a ak je znova požiadaný, vykoná ho odtiaľ. V podstate obchádza kroky analýzy a kompilácie a minimalizuje niektoré zbytočné zaťaženie cloudového servera.

Predpokladá sa, že máte svoje vlastné VPS s oprávneniami root a nainštalovanú LAMP.

Najprv nainštalujte balíčky:

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

Teraz môžete nainštalovať APC pomocou príkazu pecl:

sudo pecl nainštalovať apc

Budete vyzvaní, aby ste odpovedali na niekoľko otázok, ale kým nebudete poznať presnú odpoveď, použite predvolenú hodnotu stlačením klávesu Enter.

Ďalším a posledným krokom je úprava súboru php.ini

pridanie riadku na koniec:

rozšírenie=apc.so

Uložte súbor a reštartujte Apache:

reštart služby sudo apache2

Ak chcete skontrolovať, či je APC povolené, skontrolujte stránku Informácie o PHP. Ak ho nemáte, vytvorte ho v adresári /var/www:

Nano /var/www/info.php

a vložte kód:

Otvorte ho v prehliadači. Nájdete tam informácie o PHP vrátane povolenej vyrovnávacej pamäte. Nenechávajte tento súbor na produkčnom serveri. Po kontrole ho vymažte.

Nastavenie APC

Nainštalovali ste APC a beží s predvolenými nastaveniami. Mali by ste si byť vedomí minimálne dvoch nastavení. Otvorte súbor php.ini, ktorý ste už upravili:

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

Pod riadok, v ktorom ste povolili APC, pridajte:

Apc.shm_size = 64

To umožní APC použiť 64 MB RAM na ukladanie do vyrovnávacej pamäte. V závislosti od konfigurácie môžete túto hodnotu zmeniť.
Ďalší riadok na pridanie:

apc.stat = 0

Možnosť apc.stat kontroluje skript pri každej požiadavke, aby zistila, či sa zmenil alebo nie. Ak sa skript zmenil, APC ho prekompiluje a uloží do vyrovnávacej pamäte Nová verzia. Toto je predvolené správanie APC po inštalácii. Nastavením hodnoty parametra na 0 hovoríme APC, aby nekontrolovala zmeny skriptov. To zlepšuje výkon, ale ak bol skript upravený, zmeny sa neuplatnia, kým sa server nereštartuje. Preto sa odporúča použiť hodnotu 0 iba na produkčnom serveri, kde nie je žiadna neustála zmena kód.

Monitorovanie APC
Existuje malý skript na sledovanie stavu a výkonu vyrovnávacej pamäte APC.

Súbor apc.php môžete skopírovať z /usr/share/php/ do pracovného adresára webového servera, napríklad /vwr/www:

Cp /usr/share/php/apc.php /var/www - pre nainštalovaný z pecl

Alebo si stiahnite:

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

Teraz prejdite k tomuto súboru z prehliadača:

http:// /apc.php

Mali by ste vidieť štatistiky APC. Všimnite si, že APC má nedostatok pamäte a fragmentácia nie je príliš vysoká.
Dobrým znamením by bolo vysoké percento zásahov do vyrovnávacej pamäte, približne 95 % po niekoľkých požiadavkách.

Inštalácia vyrovnávacej pamäte APC z úložiska Ubuntu

$ sudo apt-get install php-apc

Reštartujte Apache a pozrite sa na info.php. Mala by sa zobraziť sekcia APC (Enabled On).
Na monitorovanie použite obslužný program, ktorý je súčasťou balenia:

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

Skopírujte súbor apc.php napríklad do /var/www
Prístup k súboru z prehliadača:

http:// /apc.php

Chyba:
Nie sú k dispozícii žiadne informácie o vyrovnávacej pamäti. APC nie zdá sa, že beží.

sa zobrazí, ak v kóde apc.php nie je nastavené žiadne heslo.
Upravte súbor apc.php:

#vi /var/www/apc.php

a nastavte používateľské meno a heslo:

Defaults("ADMIN_USERNAME","apc"); // Admin Username defaults("ADMIN_PASSWORD","pass"); // Heslo správcu – ZMENIŤ TOTO NA POVOLENIE!!!

Defaults("USE_AUTHENTICATION",0);

Ďalšie možnosti v /etc/php5/apache2/conf.d/apc.ini

;apc.enabled=1 – nie je relevantné;apc.enable_cli=1 – nie je relevantné;apc.shm_size=64 miliónov # predvolená hodnota 32 miliónov ;apc.stat = 0

APC je skratka pre Alternatívne ukladanie do vyrovnávacej pamäte PHP. Ruský text je alternatívnym cacherom PHP. Načo sa to používa? Rovnako ako iné populárne cachery ako XCache a eAccelerator sa používa na zrýchlenie PHP skriptov. Ak máte vlastný server a obávate sa o výkon PHP skriptov, riešením vášho problému môže byť APC. V dnešnom článku sa dozvieme viac o APC, naučíme sa ho nainštalovať a otestovať, využiť APC caching pri písaní PHP skriptov.

Dnes to zistíme

Čo je to akcelerátor APC?

UrýchľovačAPC(Alternative PHP Cache) je bezplatný a otvorený cacher operačných kódov pre PHP. Bol koncipovaný ako bezplatný, otvorený a stabilný rámec pre ukladanie do vyrovnávacej pamäte a optimalizáciu. zdrojový kód PHP. APC je v štádiu vývoja. V súčasnosti podporuje PHP 4 a PHP 5, vrátane 5.3. Pravdepodobne bude súčasťou štandardného jadra PHP šiestej verzie.

Ako sa dosiahne zrýchlenie?PHP?

Keď dôjde k oneskoreniu načítania vašej stránky, vyvstáva otázka - Prečo? Faktom je, že pri vykonávaní štandardného volania skriptu PHP sa zakaždým skompiluje nanovo. To znamená, že rovnaká práca sa vykonáva niekoľkokrát. Ak ide o malý projekt, spomalenia môžu byť menšie, dokonca neviditeľné. Ak ale máte veľký projekt (webovú stránku), tak ste si všimli, že pri vstupe na ňu dochádza k oneskoreniu načítania stránky, napriek tomu je stránka dobre optimalizovaná z hľadiska a . Pre prehľadnosť sa pozrime, ako sa štandardný dotaz vykonáva bez Použitie PHP urýchľovače:

Zároveň aj exekúcia kompilácia kódu na každú žiadosť. Spracovanie požiadavky trvá veľa času, a preto sa spomaľuje. Aby to obišli, prišli s urýchľovačmi, ktorých zástupcom je APC. Uložia skompilovaný kód do vyrovnávacej pamäte na disk, po ktorom vytlačí výsledok. Tým sa zvyšuje rýchlosť PHP práca. APC môže pracovať v dvoch režimoch, ktoré sú nakonfigurované v súbore /etc/php.d/apc.ini, variabilný apc.stat. Premenná môže nadobúdať hodnoty 1 a 0 (apc.stat=0 alebo apc.stat=1). Použitie režimu apc.stat=1 trochu spomaľuje skripty pri kontrole modifikácie súboru, ale vyhnete sa tak problémom pri zmene kódu a výsledok zostane rovnaký. Preto vám odporúčam nastaviť hodnotu premennej na 1.

Po nainštalovaní akcelerátora APC bude schéma vykonávania dotazu nasledovná:

Inštalácia APC

Inštalácia APC je veľmi jednoduchá. Dá sa nainštalovať na Debian/Ubuntu aj iné distribúcie.

Inštalácia APC na CentOS, RHEL, Fedora:

Nainštalujeme cez PECL. Najprv zahrnieme .repo, ktoré obsahuje skutočné APC. Pozrite si príklad nižšie:

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

yum nainštalovať php-pecl-apc

Teraz zmeňte nastavenia súboru /etc/php.d/apc.ini podľa svojich predstáv a reštartujte server.

Inštalácia APC na Debian, Ubuntu

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

pecl nainštalovať apc

Po stiahnutí otvorte súbor na /etc/php5/apache2/php.ini, pridajte parameter rozšírenie=apc.so a reštartujte server.

Ako vidíte, inštalácia APC na Debian alebo Ubuntu je pomerne jednoduchá, musíte zadať príkaz do konzoly sudo aptitude nainštalujte php-apc. Toto rozšírenie môžete nainštalovať aj cez synaptické. Ak máte inú distribúciu, môžete si nainštalovať balík APC z PECL. Ak to chcete urobiť, spustite v konzole nasledujúci príkaz sudo pecl nainštalovať apc.

Kontrola, či balík existujeAPC

Ak sa v súbore nastavení php.ini nachádza riadok načítania balíka rozšírenie=apc.so. Alebo bol vytvorený súbor apc.ini s rovnakým riadkom v konfiguračnom priečinku PHP extensions. Každá distribúcia má svoju adresu. Pre Debian je to /etc/php5/apache2/conf.d/.

Ak ste skontrolovali a ubezpečili sa, že je všetko v poriadku, reštartujte server. Teraz sa pozrime na informácie o samotnom balíku APC. Ak to chcete urobiť, vyhľadajte priečinok, v ktorom bolo rozšírenie nainštalované. V priečinku nájdete súbor podľa názvu apc.php. Tento súbor sa nachádza aj v inštalačnom archíve. Skopírujte ho do ľubovoľného adresára zo stránok vášho servera..php. Ak bol balík úspešne nainštalovaný, po stiahnutí tohto súboru sa zobrazí nasledujúca tabuľka s informáciami o aktuálnom balíku APC.



Používanie APC v PHP

Používanie rozšírenia APC pri písaní PHP kódu je veľmi jednoduché a pohodlné. Teraz uvidíte sami.

Na začiatok napíšeme triedu na prácu s pamäťou prostredníctvom systému vyrovnávacej pamäte APC. Vytvorte súbor a vložte tam kód na nasledujúcu adresu:

class/apc.caching.php

bEnabled = extension_loaded("apc"); ) // získanie údajov z pamäťovej funkcie getData($sKey) ( $bRes = false; $vData = apc_fetch($sKey, $bRes); return ($bRes) ? $vData:null; ) // uloženie údajov do pamäte setData($sKey, $vData) ( return apc_store($sKey, $vData, $this->iTtl); ) // odstránenie údajov z pamäte funkcia delData($sKey) ( $bRes = false; apc_fetch($sKey, $ bRes); return ($bRes) ? apc_delete($sKey) : true; ) ) ?>

Trieda popisuje, čo každá funkcia robí. Teraz vytvoríme testovací súbor.

index.php

"tabuľka", "farba" => "hnedá", "veľkosť" => pole("x" => 200, "y" => 120, "z" => 150,), "sila" => 10, ); require_once("classes/apc.caching.php"); $oCache = new CacheAPC(); echo "Údaje:

"; // Pozrime sa, čo máme print_r($aData); echo "
"; if ($oCache->bEnabled) ( // Ak je APC k dispozícii $oCache->setData("my_object", $aData); // Uloženie údajov do pamäte $oCache->setData("our_class_object", $oCache) ; // Uloženie objektu triedy do pamäte echo "Teoreticky sme údaje uložili do pamäte, kliknite sem a skontrolujte, či tam naozaj všetko je."; ) else ( echo "Balík APC nie je nainštalovaný, nainštalujte a potom otestujem!"; ) ?>

V tomto súbore máme v pamäti uložené 2 objekty: pole a objekt triedy. Teraz vytvoríme druhý súbor.

index2.php

bEnabled) ( // Ak je k dispozícii APC $aMemData = $oCache->getData("my_object"); // Získanie údajov z pamäte $aMemData2 = $oCache->getData("our_class_object"); // Získanie údajov z pamäte, ktoré v triede echo "Údaje v pamäti:

"; // skontrolujte, čo máme v pamäti print_r($aMemData); echo "
"; echo "Ako vidíte, všetky údaje sú k dispozícii, teraz ich získame z pamäte, ideme sem..."; ) else ( echo "Balík APC nie je nainštalovaný, nainštalujte ho a potom budete testovať to!";) ?>

V tomto skripte čítame informácie iba z pamäte. Ako vidíte, všetky informácie sa dokonale čítajú z pamäte. Pozrime sa na posledný príklad.

index3.php

bEnabled) ( // Ak je APC k dispozícii $oCache->delData("my_object"); // Získanie údajov z pamäte $oCache->delData("our_class_object"); // Získanie údajov z pamäte $aMemData = $oCache-> getData ("my_object"); // pokus o získanie údajov späť $aMemData2 = $oCache->getData("our_class_object"); echo "Údaje z pamäte:

"; // Skontrolujte, čo máme v pamäti print_r($aMemData); echo "
"; echo "Údaje z pamäte objektu triedy CacheAPC:
"; print_r($aMemData2); echo "
"; echo "Ako vidíte, všetky údaje boli načítané z pamäte. Hurá!"; ) else ( echo "Balík APC nie je nainštalovaný, nainštalujte a otestujte neskôr!"; ) ?>

Záver

Ďakujem za tvoju pozornosť! Dúfam, že sa vám páčilo čítanie o použitíAPCPHP. Ak máte iné nápady na použitieAPC pri písaníPHP skripty, napíšte o tom v komentároch.


APC je skratka pre Alternatívne ukladanie do vyrovnávacej pamäte PHP. Ruský text je alternatívnym cacherom PHP. Načo sa to používa? Rovnako ako iné populárne cachery ako XCache a eAccelerator sa používa na zrýchlenie PHP skriptov. Ak máte vlastný server a obávate sa o výkon PHP skriptov, riešením vášho problému môže byť APC. V dnešnom článku sa dozvieme viac o APC, naučíme sa ho nainštalovať a otestovať, využiť APC caching pri písaní PHP skriptov.

Čo je to akcelerátor APC?

UrýchľovačAPC(Alternative PHP Cache) je bezplatný a otvorený cacher operačných kódov pre PHP. Bol koncipovaný ako bezplatný, otvorený a stabilný rámec na ukladanie do vyrovnávacej pamäte a optimalizáciu zdrojového kódu PHP. APC je v štádiu vývoja. V súčasnosti podporuje PHP 4 a PHP 5, vrátane 5.3. Pravdepodobne bude súčasťou štandardného jadra PHP šiestej verzie.
Ako sa dosiahne zrýchlenie?PHP?
Keď dôjde k oneskoreniu načítania vašej stránky, vyvstáva otázka - Prečo? Faktom je, že pri vykonávaní štandardného volania skriptu PHP sa zakaždým skompiluje nanovo. To znamená, že rovnaká práca sa vykonáva niekoľkokrát. Ak ide o malý projekt, spomalenia môžu byť menšie, dokonca neviditeľné. Ak ale máte veľký projekt (webovú stránku), tak ste si všimli, že pri vstupe na ňu dochádza k oneskoreniu načítania stránky, napriek tomu je stránka dobre optimalizovaná z hľadiska html kompresie a css kompresie. Pre prehľadnosť sa pozrime, ako sa štandardná požiadavka vykonáva bez použitia akcelerátorov PHP:

Zároveň aj exekúcia kompilácia kódu na každú žiadosť. Spracovanie požiadavky trvá veľa času, a preto sa spomaľuje. Aby to obišli, prišli s urýchľovačmi, ktorých zástupcom je APC. Uložia skompilovaný kód do vyrovnávacej pamäte na disk, po ktorom vytlačí výsledok. To zvyšuje rýchlosť PHP. APC môže pracovať v dvoch režimoch, ktoré sú nakonfigurované v súbore /etc/php.d/apc.ini, variabilný apc.stat. Premenná môže nadobúdať hodnoty 1 a 0 (apc.stat=0 alebo apc.stat=1). Použitie režimu apc.stat=1 trochu spomaľuje skripty pri kontrole modifikácie súboru, ale vyhnete sa tak problémom pri zmene kódu a výsledok zostane rovnaký. Preto vám odporúčam nastaviť hodnotu premennej na 1.
Po nainštalovaní akcelerátora APC bude schéma vykonávania dotazu nasledovná:

Inštalácia APC Accelerator

Keďže v apt aktualizované verzie pridané veľmi neskoro. Preto nainštalujeme APC cez PECL:

sudo apt-get remove --purge php-apc sudo apt-get install libpcre3-dev sudo pecl install apc
Počas inštalácie nastavíme nasledujúcu konfiguráciu (YMMV):
Povoliť interné ladenie v APC : nie Povoliť informácie o súboroch použitých z vyrovnávacej pamäte APC na základe žiadosti : nie Povoliť uzamknutie otáčania (EXPERIMENTÁLNE): nie Povoliť ochranu pamäte (EXPERIMENTÁLNE) : nie Povoliť mutexy pthread (predvolené) : áno Povoliť čítanie/zápis pthread zámky (EXPERIMENTÁLNE) : č Teraz musíte povoliť APC v nastaveniach, pretože. toto sa nerobí automaticky. Pre toto tvoríme apc.ini súbor v príslušnom adresári: sudo vim /etc/php5/conf.d/apc.ini a do tohto súboru zapíšte nasledujúce nastavenia (odporúčané pre prácu s Magento) extension=apc.so apc.enabled=1 apc.shm_size=512 miliónov apc.num_files_hint=10000 apc.user_entries_hint=10000 apc.max_file_size=5M apc.stat=0 apc.optimization=0 apc.shm_segments=1 apc.shm_segments apc.cache_by_default=1 apc.include_once_override=1

Povoliť podporu APC v Magento

Otvorte konfiguračný súbor Magento: vi app/etc/local.xml a do globálnej sekcie pridajte nasledujúci kód:


apc súbor 0 1 MAGE_ alebo databáza apc 0 1 MAGE_


Kde medzi značkami "Prefix" je uvedené Stručný opis store, aby bolo možné použiť APC na ukladanie viacerých obchodov postavených na rovnakom Magento.

Ako skontrolovať, či APC funguje?

V prvom rade by ste si to mali všimnúť PHP skripty Magento, aby sa stal rýchlejším. Použite Firebug a doplnok k nemu, napríklad YSlow, na vyhodnotenie rýchlosti webu. Tu si môžete stiahnuť rozšírenie Firebug pre Firefox. Prípadne môžete použiť súbor apc.php tak, že ho skopírujete z distribučného priečinka APC do verejnosť vášho projektu: sudo cp /usr/share/php/apc.php /vaša verejná cesta Teraz môžete tento súbor otvoriť vo svojom prehliadači: http://yourhost.local/apc.php

Správanie sa týchto funkcií závisí od nastavení v php.ini.

Zatiaľ čo predvolené nastavenia APC sú vhodné pre väčšinu inštalácií, niektoré aplikácie môžu vyžadovať jemnejšie ladenie.

Pri konfigurácii APC je potrebné venovať pozornosť dvom hlavným bodom. Prvým je, koľko pamäte sprístupní APC, a druhým je, či APC pri každej požiadavke skontroluje, či bol súbor upravený. Tieto nastavenia sú parametre apc.shm_size a apc.stat, resp. Veľmi pozorne si prečítajte časti týkajúce sa nastavenia týchto parametrov.

Po spustení servera sa skript apc.php Súbor , dodávaný s týmto rozšírením, musí byť skopírovaný do "docroot" a musí mať povolenia na jeho spustenie v prehliadači. Tento skript poskytuje podrobné informácie o prevádzke APC. Ak je v PHP povolené GD, potom tento skript zobrazí aj užitočné grafy. Samozrejme, prvá vec, ktorú by ste mali zaujímať, je, či APC niečo ukladá do vyrovnávacej pamäte. Ak je spustený APC, potom hodnota Úplný počet vyrovnávacej pamäte(vľavo) zobrazí, koľkokrát sa vyrovnávacia pamäť úplne zaplnila a bol nútený vynútiť vymazanie záznamov, ku ktorým sa naposledy nepristupovalo apc.ttl sekúnd. Čím je toto číslo menšie, tým je vyrovnávacia pamäť lepšie nakonfigurovaná. Ak toto číslo neustále narastá, potom musí APC neustále čistiť staré záznamy, a preto sa stráca celý zmysel ukladania do vyrovnávacej pamäte. Väčšina Najlepšia cesta znížiť toto číslo znamená pridať viac pamäte pre APC. Ak to nie je možné, musíte prekonfigurovať apc.filtre obmedziť súbor skriptov uložených vo vyrovnávacej pamäti.

Ak je APC zostavené s podporou mmap (Memory Mapping), bude používať iba jeden segment pamäte, ak je naopak, APC je zostavené s podporou SHM (SysV Shared Memory), použije niekoľko segmentov. MMAP nemá maximálny limit, na rozdiel od SHM, ktorý je obmedzený /proc/sys/kernel/shmmax. Vo všeobecnosti sa odporúča používať MMAP, pretože pri reštartovaní webového servera alokuje pamäť oveľa rýchlejšie, čo ovplyvňuje rýchlosť spúšťania servera.

konfiguračné parametre APC
názov Predvolené Miesto zmeny Zoznam zmien
apc.povolené "1" PHP_INI_SYSTEM PHP_INI_SYSTEM v APC 2. PHP_INI_ALL v APC<= 3.0.12.
apc.shm_segments "1" PHP_INI_SYSTEM
apc.shm_size "32 miliónov" PHP_INI_SYSTEM
apc.shm_strings_buffer "4 milióny" PHP_INI_SYSTEM Dostupné od APC 3.1.4.
apc.optimalizácia "0" PHP_INI_ALL PHP_INI_SYSTEM v APC 2. Odstránené v APC 3.0.13.
apc.num_files_hint "1000" PHP_INI_SYSTEM
apc.user_entries_hint "4096" PHP_INI_SYSTEM Dostupné od APC 3.0.0.
apc.ttl "0" PHP_INI_SYSTEM Dostupné od APC 3.0.0.
apc.user_ttl "0" PHP_INI_SYSTEM Dostupné od APC 3.0.0.
apc.gc_ttl "3600" PHP_INI_SYSTEM
apc.cache_by_default "1" PHP_INI_ALL PHP_INI_SYSTEM v APC<= 3.0.12. Доступно с APC 3.0.0.
apc.filtre NULOVÝ PHP_INI_SYSTEM
apc.mmap_file_mask NULOVÝ PHP_INI_SYSTEM
apc.slam_defense "1" PHP_INI_SYSTEM Dostupné od APC 3.0.0. Pred APC 3.1.4, predvolená hodnota "0" (zakázané).
apc.file_update_protection "2" PHP_INI_SYSTEM Dostupné od APC 3.0.6.
apc.enable_cli "0" PHP_INI_SYSTEM Dostupné od APC 3.0.7.
apc.max_file_size "1 milión" PHP_INI_SYSTEM Dostupné od APC 3.0.7.
apc.use_request_time "1" PHP_INI_ALL Dostupné od APC 3.1.3.
apc.stat "1" PHP_INI_SYSTEM Dostupné od APC 3.0.10.
apc.write_lock "1" PHP_INI_SYSTEM Dostupné od APC 3.0.11.
apc.report_autofilter "0" PHP_INI_SYSTEM Dostupné od APC 3.0.11.
apc.serializer "predvolené" PHP_INI_SYSTEM Dostupné od APC 3.1.0.
apc.include_once_override "0" PHP_INI_SYSTEM Dostupné od APC 3.0.12.
apc.rfc1867 "0" PHP_INI_SYSTEM Dostupné od APC 3.0.13.
apc.rfc1867_prefix "nahrať_" 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 Dostupné od APC 3.1.1.
apc.localcache "0" PHP_INI_SYSTEM
apc.localcache.size "512" PHP_INI_SYSTEM Dostupné v APC 3.0.14 - 3.1.11.
apc.coredump_unmap "0" PHP_INI_SYSTEM Dostupné od APC 3.0.16.
apc.stat_ctime "0" PHP_INI_SYSTEM Dostupné od APC 3.0.13.
apc.preload_path NULOVÝ PHP_INI_SYSTEM Dostupné od APC 3.1.1.
apc.file_md5 "0" PHP_INI_SYSTEM Dostupné od APC 3.1.1.
apc.canonicalize "1" PHP_INI_SYSTEM Dostupné od APC 3.1.1.
apc.lazy_functions 0 PHP_INI_SYSTEM Dostupné od APC 3.1.3.
apc.lazy_classes 0 PHP_INI_SYSTEM Dostupné od APC 3.1.3.
Podrobný popis konštánt PHP_INI_* nájdete v časti Kde možno nastaviť možnosti konfigurácie.

Stručné vysvetlenie konfiguračných smerníc.

Ak je nastavený apc.povolené nastavte na 0, potom APC nebude aktivované. To je užitočné, keď je APC staticky povolené v PHP a neexistujú žiadne iné možnosti na zakázanie jeho používania. Ak je APC postavený ako DSO, môžete jednoducho komentovať riadok rozšírenie v php.ini.

Apc.shm_segments celé číslo

Počet segmentov zdieľanej pamäte pridelených pre vyrovnávaciu pamäť. Ak spoločnosť APC vyčerpala všetku dostupnú zdieľanú pamäť, a apc.shm_size tak veľké, ako to systém umožňuje, môže pomôcť zvýšenie tohto nastavenia.

Apc.shm_size reťazec

Veľkosť segmentu zdieľanej pamäte uvedená v skrátenom zápise (pozrite si tieto často kladené otázky). Niektoré systémy (vrátane väčšiny variantov BSD) štandardne obmedzujú túto hodnotu na extrémne nízku hodnotu.

Apc.shm_strings_buffer reťazec

Množstvo pamäte pridelenej zdieľanej vyrovnávacej pamäti reťazcov, ktorú používajú interné procesy APC. Veľkosť musí končiť príponou M alebo G na označenie megabajtov a gigabajtov. Použitie tejto možnosti môže znížiť pamäťovú stopu pracovných procesov PHP-FPM, pretože identické reťazce budú uložené v pamäti iba raz a môžu byť použité všetkými pracovnými procesmi.

Apc.optimalizácia celé číslo

Úroveň optimalizácie. Nula zakáže optimalizáciu. Čím vyššia je táto hodnota, tým agresívnejšia optimalizácia sa použije. Nečakajte veľké zvýšenie rýchlosti. Toto je experimentálna funkcia.

Apc.num_files_hint celé číslo

Tip na počet jedinečných súborov použitých na vašom webe. Ak si nie ste istí, nastavte ho na nulu alebo ho nešpecifikujte vôbec. Toto nastavenie je užitočné, keď máte mnoho tisíc súborov.

Apc.user_entries_hint celé číslo apc.file_update_protection celé číslo

Keď sa súbor upraví za chodu, musí sa to urobiť atomicky. To znamená, že najprv musí byť zapísaný do dočasného súboru a potom presunutý ( mv) do cieľovej polohy. Veľa textových editorov cp, decht a iní nie. To môže spôsobiť, že súbor bude vyžiadaný (a uložený do vyrovnávacej pamäte) v čase, keď je zapísaný. Nastavenie apc.file_update_protection nastavuje oneskorenie ukladania do vyrovnávacej pamäte pre úplne nové súbory. Predvolená hodnota je 2 sekundy. To znamená, že ak časová pečiatka úpravy súboru ( mtime) hovorí, že ak od úpravy súboru uplynuli menej ako 2 sekundy, súbor sa neuloží do vyrovnávacej pamäte. Nešťastník, ktorý sa pokúsi dostať k napoly uloženému súboru, spozoruje zvláštne správanie, no aspoň to nebude trvať dlho. Ak budú všetky súbory webového servera aktualizované atomicky, pomocou metód ako napr rsync(ktorý sa aktualizuje správne), potom je možné toto správanie deaktivovať nastavením tohto parametra na nulu. Ak je systém I/O preťažený, niektoré aktualizácie môžu trvať dlhšie ako dve sekundy a toto nastavenie by sa malo zodpovedajúcim spôsobom zvýšiť.

Apc.enable_cli celé číslo

Viac na testovanie a ladenie. Toto nastavenie povolí APC pre verziu CLI PHP. V bežnej prevádzke nie je spustenie APC, ktoré vytvorí, naplní a zničí vyrovnávaciu pamäť zakaždým, keď spustíte skript v konzole, zďaleka najlepší nápad. Ale na účely testovania a ladenia môžete jednoducho povoliť APC pre CLI.

Apc.max_file_size celé číslo

Neukladá do vyrovnávacej pamäte súbory väčšie ako toto nastavenie. Predvolená hodnota je 1M.

Apc.stat celé číslo

Pri zmene tohto nastavenia buďte opatrní. V predvolenom nastavení je povolená, čo spôsobuje, že APC kontroluje súbory skriptov pri každej požiadavke, aby zistila, či boli zmenené. Ak boli zmenené, budú prekompilované a znovu uložené do vyrovnávacej pamäte. Ak je toto nastavenie vypnuté, APC nevykoná takúto kontrolu a ak už bol súbor uložený do vyrovnávacej pamäte a potom zmenený, nová verzia sa do vyrovnávacej pamäte nedostane. Pre obnovenie pamäte budete musieť reštartovať webový server. Upozorňujeme, že webové servery nakonfigurované na používanie FastCGI nemusia pri reštarte vymazať vyrovnávaciu pamäť. V produkčných prostrediach, kde sú zmeny súborov zriedkavé, môže zakázanie tejto možnosti výrazne zvýšiť výkon.

Pre súbory načítané cez zahrnuté/požadované táto možnosť funguje skvele, ale uvedomte si, že keď zahrniete súbor s relatívnou cestou (v Unixe je to akákoľvek cesta, ktorá nezačína na /), APC skontroluje jedinečnosť. Ak sa použijú absolútne cesty, APC túto kontrolu preskočí a ako jedinečný identifikátor súboru použije absolútnu cestu.

Apc.write_lock boolovská hodnota

Na vysoko zaťažených serveroch, keď sa server spustí alebo keď sa súčasne zmení veľa súborov, APC sa môže pokúsiť skompilovať a uložiť do vyrovnávacej pamäte ten istý súbor viackrát v rovnakom čase. Zámok zápisu zaisťuje, že iba jeden proces sa pokúsi skompilovať a uložiť do vyrovnávacej pamäte súbor bez vyrovnávacej pamäte. Ostatné procesy, ktoré potrebujú použiť tento súbor, použijú verziu bez vyrovnávacej pamäte namiesto toho, aby čakali, kým sa objaví vo vyrovnávacej pamäti.

Apc.report_autofilter boolovská hodnota

Zaznamenáva všetky skripty, ktoré boli vylúčené z ukladania do vyrovnávacej pamäte kvôli skorým alebo neskorým problémom s väzbou.

Apc.serializer reťazec

Hovorí spoločnosti APC, aby použila serializátor tretej strany.

Apc.include_once_override boolovská hodnota

Optimalizuje hovory zahrnúť_raz a vyžadovať_raz aby ste predišli drahým systémovým volaniam.

Pozornosť

Táto funkcia je EXPERIMENTÁLNY. Správanie tejto smernice, jej názov a dokumentácia sa môžu v budúcich verziách APC zmeniť bez upozornenia. Používate ho na vlastné riziko.

Apc.rfc1867 boolovská hodnota

RFC1867 File Upload Progress Hook je dostupný iba v APC, keď je vytvorený s PHP 5.2.0 a vyšším. Ak je povolené, na server sa nahrá akýkoľvek súbor, ktorý obsahuje vo formulári pred poľom so súborom pole s názvom APC_UPLOAD_PROGRESS, prinúti APC automaticky vytvoriť vlastný záznam do vyrovnávacej pamäte formulára upload_ kľúč, kde kľúč je hodnota poľa APC_UPLOAD_PROGRESS.

Pamätajte, že skryté pole APC_UPLOAD_PROGRESS musí ísť do poľa so súborom, inak bude práca nesprávna.

Upozorňujeme, že sledovanie sťahovania súborov je nezabezpečené vláknom, takže ak sa počas prvého sťahovania vyskytne nový súbor s rovnakým kľúčom, prvé prestane sledovať.

poznač si to sadzba bude k dispozícii až po dokončení všetkých aktuálnych sťahovaní.

Príklad Beispiel #1 apc.rfc1867

print_r(apc_fetch("upload_ $_POST [APC_UPLOAD_PROGRESS]" ));
?>

Výsledkom spustenia tohto príkladu bude niečo také:

Pole ( => 1142543 => 1142543 => 1828068,8 => test => súbor => /tmp/php8F => 0 => 1)

Apc.rfc1867_prefix reťazec

Predpona kľúča, ktorá sa má použiť v položke vyrovnávacej pamäte používateľa vytvorenej funkciou sledovania priebehu sťahovania rfc1867.

Apc.rfc1867_name reťazec

Určuje názov pre skryté pole formulára, ktoré spustí proces nahrávania APC a špecifikuje príponu kľúča vyrovnávacej pamäte používateľa.

Apc.rfc1867_freq reťazec

Frekvencia, s akou sa bude záznam používateľa vo vyrovnávacej pamäti aktualizovať počas sťahovania súboru. Dá sa zadať v percentách aj zadaním veľkosti v bajtoch. Ak chcete, môžete použiť prípony. "k", "m" a "g"(nerozlišujú sa malé a veľké písmená) pre kilobajty, megabajty a gigabajty. Ak je nastavená na nulu, aktualizácie budú prebiehať čo najrýchlejšie, ale to môže spomaliť sťahovanie.

Apc.rfc1867_ttl celé číslo

TTL pre záznamy rfc1867.

Apc.localcache boolovská hodnota

Povolí neblokujúcu tieňovú vyrovnávaciu pamäť lokálnych procesov, ktorá znižuje počet zámkov počas zápisov do vyrovnávacej pamäte.

Apc.localcache.size celé číslo

Veľkosť lokálnej vyrovnávacej pamäte tieňového procesu by mala byť dostatočne veľká, približne polovica apc.num_files_hint .

Apc.coredump_unmap boolovská hodnota

Umožňuje APC zachytiť signály, ako je SIGSEGV, ktoré po zadaní zapíšu Coredump. Keď sú tieto signály prijaté, APC sa pokúsi uvoľniť všetku zdieľanú pamäť, aby nebola zahrnutá do Coredump. Toto nastavenie môže zvýšiť stabilitu systému, keď bol prijatý kritický signál a APC je nakonfigurované na používanie veľkého množstva pamäte.

Pozornosť

Táto možnosť je potenciálne nebezpečná. Uvoľnenie segmentov zdieľanej pamäte pri prijatí kritického signálu môže viesť k nepredvídateľnému správaniu.

Komentujte:

Hoci niektoré jadrá poskytujú možnosť ignorovať určité segmenty zdieľanej pamäte pri písaní základného súboru, tieto implementácie môžu tiež ignorovať dôležité segmenty pamäte, ako je tabuľka výsledkov Apache.

apc.stat_ctime celé číslo

Kontrola proti ctime, aby sa predišlo problémom spôsobeným programami ako svn alebo rsync tým, že sa uistíte, že inode sa od posledného zberu štatistík nezmenil. APC zvyčajne kontroluje iba mtime.

Apc.canonicalize bool

Ak je zakázaná, relatívne cesty sa skonvertujú na kanonické v režime bez štatistiky. Ak je povolené, súbory pripojené cez obal streamu sa nebudú ukladať do vyrovnávacej pamäte, pretože realpath() nepodporuje obaly streamov.

Apc.preload_path reťazec

Voliteľné. Určuje cestu, ktorú používa APC na načítanie údajov uložených vo vyrovnávacej pamäti pri spustení.

Apc.use_request_time bool

Použiť čas začiatku dotazu SAPI pre TTL .

Apc.file_md5 bool

Napíšte md5 hash súborov.

Apc.lazy_functions celé číslo

Dovoľuje lenivé načítanie funkcie.

Apc.lazy_classes celé číslo

Umožňuje lenivé načítanie triedy.