OPcache е PHP ускорител, който прилага opcode кеширане и оптимизиране, чрез което ускорява процеса по обработка на PHP скриптовете.
Вижте какво означава opcode кеширане в статията: 🔗 Ускоряване на PHP приложения чрез opcode кеширане | Help
OPcache ускорява генерирането на HTML кода, което се отразява в ускорено зареждане на сайта.
OPcache е модул за PHP, който записва в паметта на системата резултатите от компилирането на PHP кода (байткода). При следващо изпълнение на същия PHP скрипт, PHP интерпретаторът взима байткода директно от паметта и го изпълнява. По този начин се спестява процесорен ресурс и време, като се прескачат стъпките по четенето и компилирането на първичния PHP код.
OPcache е добавен към ядрото на PHP във версия PHP 5.5. Този модул е заместител на остарелите PHP модули като APC (Alternative PHP Cache) и eAccelerator. За PHP версия 5.5 и следващи (PHP 7.x, 8.x) се препоръчва активирането му.
APC и eAccelerator са изоставени от разработка и поддръжка проекти. Възможно е да се използват за PHP версии преди 5.5.
Как се активира и деактивира OPcache?
Активирането и деактивирането на OPcache в хостинг акаунт при СуперХостинг.БГ се извършва през контролния панел cPanel и инструмента PHP Manager by SuperHosting – Управление на PHP модули.
🔗 Как се активира PHP модул в хостинг акаунта? | Help
Как се използва OPcache в сайта?
Ако сайтът е написан на PHP и OPcache е активиран през PHP Manager в cPanel, OPcache се използва автоматично от PHP интерпретатора. Не са нужни модификации на кода или настройките на приложението.
OPcache статус и параметри
С phpinfo можете да проверите статуса на OPcache и параметрите, с които работи.
Промяна на параметрите на OPcache
Промяна на параметрите на OPcache може да се извърши в ini файла за модулите, който е активен за използваната PHP версия. Например ако за хостинг акаунта сте активирали PHP версия 7.1 през PHP Manager, ini файлът php71.ini ще се намира в директория:
/home/cpuser/.sh.phpmanager/php71.d/
cpuser – заменете с потребителя за cpanel;
php71 – заменете с версията на PHP, която е активирана за акаунта/директорията, например php73;
След като извършите промени по директивите в този файл, за да влязат в сила новите стойности, може да рестартирате PHP процесите през cPanel » Process Manager by SuperHosting » Спиране на всички PHP процеси.
Параметри и настройки на OPcache: Runtime Configuration.
Съобщения за грешка с OPcache
При работата на OPcache с някои приложения, е възможно да се получат съобщения за грешка или некоректно функциониране на сайта.
За да установите на тестовото копие на сайта, дали некоректното му функциониране е причинено от OPcache, може да деактивирате модула през PHP Manager. След това извършете тестове и проверки на работата на сайта. Ако след деактивиране на модула, не се забелязва некоректна работа на сайта, това е индикатор, че причината може да е в OPcache и зададените му параметри. Това ще наложи по-задълбочена проверка на зададените параметри за OPcache и несъвместимостта им с работата на приложението. Тази проверка е нужно да се извърши от лицето, което отговаря за поддръжката и разработката на сайта.
В много редки случаи е възможно зададената памет за OPcache да не е достатъчна. Може да проверете параметъра:
opcache.memory_consumption = 64
Ако правите промени по PHP файловете и не виждате промените веднага, може да проверите следните два параметъра:
opcache.validate_timestamps = 1
opcache.revalidate_freq = 0
opcache.validate_timestamps – Когато тази опция е активирана (1) OPcache ще обновява кеша при засечена промяна в даден файл. Когато скриптът е наличен в кеша, OPcache ще извърши проверка на реалния файл и ако има промяна ще подмени записаната информация за него в кеша. Важно е да се отбележи, че подмяната с прясна и актуална информация ще се извърши след зададения период в следващата опция на OPcache (opcache.revalidate_freq).
opcache.revalidate_freq – Когато за тази опция е зададена стойност 0, това означава, че OPcache ще подмени кешираната информация за файла веднага, след като установи, че има промяна в оригиналния файл (opcache.validate_timestamps = 1). Ако зададете стойност 300 например, до 5 минути, след като OPcache е установил, че има промяна в оригиналния файл, информацията в кеша ще се опресни. Препоръчително е, когато извършвате промени по PHP файловете на сайта, да поставите стойност 0 на тази опция.
OPcache и грешка 500 (Internal Server Error)
При активиран OPcache при някои приложения като PrestaShop версии 1.7.4.3, 1.7.5.1 може да се получи съобщение за грешка или Error 500 при изчистване на кеша или други действия в сайта/администрацията.
Може да опитате да спрете получаването на грешката, като се уверите, че следните параметри са зададени в конфигурацията на OPcache:
opcache.validate_timestamps = 1
opcache.revalidate_freq = 0
opcache.fast_shutdown = 0
Ако след промяна на параметрите, съобщението за грешка продължи да се получава, ще е нужна допълнителна проверка на казуса.