Для зменшення споживання пам'яті PHP і прискорення його роботи рекомендується використовувати різні акселератори. Особливо це актуально для бюджетних VPS з невеликою кількістю оперативної пам'яті на яких крутяться сайти на ненажерливих CMS типу WordPress.
Акселератор PHP - розширення для PHP, основне призначення якого - збільшення продуктивності інтерпретатора при обробці сценаріїв шляхом кешування їх байт-коду.
Інформація з Вікіпедії
У даній статті розповім як встановити PHP акселератор на CentOS якщо ви використовуєте панель управління хостингом VestaCP.
Існуючі акселератори PHP
Для PHP версій 5.3, 5.4 актуальні наступні акселератори:
- APC - Alternative PHP Cache. Безкоштовний і відкритий opcode кешер для PHP. Підтримує PHP4 і PHP5, включаючи 5.3 і 5.4.
- eAccelerator. Вільний відкритий проект, що виконує роль акселератора, оптимізатора і Розпакувальник. Підтримує PHP4 і PHP5, включаючи 5.4
- PhpExpress. Безкоштовний прискорювач обробки php-скриптів на веб-сервері. Підтримує PHP4 і PHP5, включаючи 5.3
- XCache. Безкоштовний. Підтримує функції оптимізації скриптів, кешування байткода. Підтримує PHP4 і PHP5, включаючи 5.6
- Zend OPcache. Забезпечує більш швидке виконання PHP коду операції через кешування та оптимізації. Покращує PHP продуктивність, зберігаючи скомпільовані сценаріїв байт-коду в пам'яті, що. Zend OPcache включений в PHP 5.5 за замовчуванням. Як розширення PECL підтримує версії 5.2, 5.3 і 5.4.
Якщо ви використовуєте PHP 5.5, то в ньому по-замовчуванню йде Zend OPcache і нічого додатково ставити не потрібно.
У мережі повно тестів і порівнянь різних акселераторів. Але в даній статті я не буду їх наводити.
Який Кешер вибрати
Перелапатіл інтернет і зрозумів, що в залежності від версії PHP гуру рекомендують наступне:
- 5.3 - apc
- 5.4 - ZendOpCache
- 5.5 - ZendOpCache (за замовчуванням)
Але я всюди використовую ZendOpCache незалежно від версії PHP. Мій вибір заснований на тому, що він стоїть за замовчуванням на PHP v5.5. А значить краще за інших повинен знати як оптимізувати роботу PHP.
Як встановити ZendOpCache на CentOS
Не можна використовувати кілька акселераторів одночасно. ZendOpCache конфліктує з іншими акселераторами і / або навпаки, так що інші акселератори повинні бути відключені.
VestaCP на CentOS за замовчуванням ставить (ставила) APC, видаліть його якщо ви вирішили встановити ZendOpCache на CentOS.
Установка ZendOpCache на php 5.4
Установка ZendOpCache на php 5.3
Перевіримо правильність установки ZendOpCache на CentOS
Оптимальні настройки Zend OPcache
Перевірте свій файл конфігурації /etc/php.d/opcache.ini
За інформацією в мережі нижченаведені налаштування є найоптимальнішими.
opcache.memory_consumption задає використання пам'яті для розширення
opcache.interned_strings_buffer задає обсяг пам'яті для зберігання інтернування рядків, в мегабайтах
opcache.max_accelerated_files - максимальна кількість скриптів в пам'яті
opcache.revalidate_freq - це валідація кеша в секундах, в інтернеті все рекомендують значення 60, я ж використовую 2, але іноді рекомендують ставити 0 (нуль), тобто постійно перевіряти на зміни. Наприклад в Joomla OPcache кешує всі файли і буде віддавати кеш після збереження файлів ще той час, який в цьому рядку. Тобто ви зберегли файл, але все одно в перебігу зазначеного часу будете бачити стару копію з кеша. Тому не скаржтеся, що файли не зберігаються, почекайте виставлене вами час.
opcache.fast_shutdown визначає увімкнене швидке завершення послідовності прискореного, коду, дає можливість використовувати Zend Engine Memory Management
opcache.enable_cli включає OPcache в CLI-версії PHP.
Перезапуск web-сервера
Щоб зміни вступили в силу потрібно перезапустити вебсервер:
Зміна швидкості роботи сайту після установки акселератора PHP
Подяки
При написанні статті були використані наступні джерела: