Як увімкнути та налаштувати PHP Opcache у ServBay
ServBay — це потужне локальне середовище для веб-розробки, створене спеціально для розробників і вже містить у собі різні технологічні стеки, включаючи PHP. Щоб допомогти розробникам оптимізувати роботу PHP-додатків, ServBay попередньо встановлює модуль Opcache для кожної підтримуваної версії PHP. У цьому матеріалі ви дізнаєтеся, як увімкнути й налаштувати Opcache у ServBay, а також дізнаєтесь, як цей модуль прискорює вашу PHP-розробку та тестування.
Коротко про модуль Opcache
Opcache — офіційне розширення PHP для покращення продуктивності виконання коду. Його основний принцип полягає у кешуванні попередньо скомпільованого байткоду PHP-скриптів у спільній памʼяті. Завдяки цьому повторні запити до того ж скрипта використовують вже закешований байткод, без повторного синтаксичного аналізу, компіляції та оптимізації, що відчутно зменшує навантаження на процесор і памʼять та прискорює відклик додатку.
Чому Opcache важливий для розробників?
- Прискорення розробки й тестування: Увімкнення Opcache у локальному середовищі підвищує швидкість роботи додатків, зменшує затримки при завантаженні сторінок і підвищує ефективність роботи розробника.
- Емуляція продуктивного оточення: У більшості продакшн-серверів Opcache вмикають для оптимізації продуктивності. Запускати розробку із включеним Opcache — це більше подібно до реальної роботи сервера.
- Менше споживання ресурсів: Особливо на великих фреймворках або складних додатках Opcache знижує навантаження на вашу локальну машину.
Основні можливості Opcache
- Кешування байткоду: Основа роботи — кешування скомпільованого PHP-коду.
- Спільний доступ до памʼяті: Кеш зберігається у спільній памʼяті та доступний для кількох PHP-процесів.
- Автоматична інвалідація: Можна налаштувати регулярне оновлення кешу при зміні файлів.
- Гнучка конфігурація: Широкі налаштування — оптимізація під ваші потреби.
- Інтеграція з ядром PHP: Офіційне розширення, глибоко інтегроване у PHP.
Підтримка Opcache у ServBay
ServBay попередньо встановлює модуль Opcache для всіх інтегрованих версій PHP (наприклад: PHP 7.4, 8.0, 8.1, 8.2, 8.3, 8.4 тощо). Вам не потрібно окремо завантажувати або компілювати розширення — достатньо просто увімкнути й налаштувати його через графічний інтерфейс ServBay або змінити налаштування у конфігураційному файлі.
Як увімкнути модуль Opcache
У ServBay існує два основні способи ввімкнення Opcache: через графічний інтерфейс користувача (GUI) або шляхом ручного редагування конфігураційного файлу.
Спосіб 1: Ввімкнення через GUI ServBay (рекомендовано)
Найпростіший і найшвидший метод.
- Відкрийте додаток ServBay.
- У бічному меню оберіть Мови (Languages).
- Виберіть версію PHP, для якої потрібно ввімкнути Opcache, наприклад PHP 8.3.
- У деталях обраної версії PHP натисніть вкладку Розширення (Extensions).
- Знайдіть у списку розширення OPcache.
- Увімкніть тумблер зліва від OPcache.
- Натисніть кнопку Зберегти (Save) внизу сторінки.
- Зʼявиться підказка про необхідність перезапустити відповідний PHP-пакет для застосування змін. Натисніть Перезапустити (Restart).
Після перезапуску модуль Opcache буде увімкнено.
Спосіб 2: Ручне редагування конфігураційного файлу
Якщо потрібно зробити глибші налаштування або ви надаєте перевагу ручному керуванню конфігураціями, відкрийте .ini
файл Opcache.
- Знайдіть файл налаштувань: Конфігураційний файл Opcache знаходиться у директорії
conf.d
відповідної версії PHP. Тут зберігаються параметри всіх завантажених розширень.- Наприклад, для PHP 8.3 шлях виглядає так:
/Applications/ServBay/etc/php/8.3/conf.d/opcache.ini
1 - Замініть номер версії відповідно до вашої конфігурації.
- Наприклад, для PHP 8.3 шлях виглядає так:
- Відкрийте для редагування: Відкрийте файл
opcache.ini
у зручному текстовому редакторі.- Зазвичай у файлі вже є початкові налаштування Opcache, але вони закоментовані. Знайдіть секцію
[Zend Opcache]
. - Дозвольте рядок
zend_extension = opcache.so
(заберіть символ;
на початку), щоб переконатися, що розширення завантажується. - Можна змінити й додати інші параметри за потребою. Приклад типової конфігурації (роз’яснення до параметрів далі):ini
[Zend Opcache] ; Ensure the extension is loaded zend_extension = opcache.so ; Basic Configuration (example values) opcache.enable = 1 ; Enable Opcache globally (1=enabled, 0=disabled) opcache.memory_consumption = 128 ; Amount of memory for opcode cache (in MB) opcache.interned_strings_buffer = 8; Amount of memory for interned strings (in MB) opcache.max_accelerated_files = 4000 ; Maximum number of files to cache opcache.revalidate_freq = 60 ; How often to check file timestamps for updates (in seconds). 0 = check on every request (slow), but good for development. opcache.fast_shutdown = 1 ; Enable fast shutdown opcache.enable_cli = 1 ; Enable Opcache for the PHP CLI (Command Line Interface)
1
2
3
4
5
6
7
8
9
10
11
12 - Збережіть файл
opcache.ini
.
- Зазвичай у файлі вже є початкові налаштування Opcache, але вони закоментовані. Знайдіть секцію
- Перезапустіть PHP-пакет: У додатку ServBay знайдіть необхідний PHP-пакет (перейдіть у Пакети (Packages) у бічному меню, оберіть PHP) і натисніть кнопку перезапуску.
Після ручного редагування і перезапуску PHP-пакета модуль Opcache та його налаштування почнуть діяти.
Як перевірити, чи успішно завантажено модуль Opcache
Найточніше перевірити статус Opcache можна через інформацію PHP (phpinfo()
).
- Створіть файл
phpinfo.php
: У кореневому каталозі вашого сайту на ServBay створіть PHP-файл, наприкладphpinfo.php
. За замовчуванням корінь сайтів у ServBay —/Applications/ServBay/www/
. Ви можете створити підкаталог для тесту, наприклад/Applications/ServBay/www/servbay.demo/
, і покласти файл туди. Вміст файлу:php<?php phpinfo(); ?>
1
2
3 - Відкрийте
phpinfo.php
: Переконайтеся, що ваш вебсервер (наприклад, Caddy чи Nginx) працює і правильно налаштовано вірний шлях до кореня сайту або тестового підкаталогу. Перейдіть до цього файлу через браузер.- Якщо файл у
/Applications/ServBay/www/servbay.demo/
і через ServBay для каталогу вказано домен, наприкладservbay.demo
, доступ здійснюється за посиланням:http://servbay.demo/phpinfo.php
. - Якщо файл одразу у корені
/Applications/ServBay/www/
, і за замовчуванням сайт спрямований туди — переходьте за адресоюhttp://localhost/phpinfo.php
або через адресу, яку надає ServBay локально.
- Якщо файл у
- Знайдіть інформацію про Opcache: На сторінці з результатами
phpinfo()
прокрутіть або скористайтеся пошуком (Cmd+F
абоCtrl+F
) за словом "Opcache".- Якщо модуль Opcache завантажений успішно, зʼявиться окрема секція "Zend Opcache" з відомостями про версію, стан і налаштування модуля.
- Якщо секцію "Zend Opcache" не знайдено, значить модуль не завантажено. Перевірте ще раз кроки із увімкнення та правильність налаштувань файлу.
Ілюстрація: пошук секції Zend Opcache у phpinfo
Детальний опис основних параметрів Opcache
Opcache містить чимало налаштувань, які можна адаптувати під свої потреби. В основному вони зберігаються у файлі opcache.ini
. Ось пояснення до найважливіших параметрів:
ini
[Zend Opcache]
; Переконайтесь, що розширення завантажується
zend_extension = opcache.so
; Увімкнути Opcache. 0 = вимкнено, 1 = увімкнено. Перемикач у GUI відповідає цій опції.
opcache.enable = 1
; Розмір памʼяті (в MB), що виділяється під кеш байткоду.
; Задайте значення згідно масштабу проєкту та доступної памʼяті. Великі проєкти — більше значення.
opcache.memory_consumption = 128
; Розмір памʼяті для зберігання інтернованих рядків (наприклад, назв класів, методів), в MB.
; Фреймворки зі значною кількістю рядків (наприклад Symfony) можуть вимагати більшого значення.
opcache.interned_strings_buffer = 8
; Максимальна кількість файлів, які зможе кешувати Opcache.
; Поставте число більше за кількість файлів у вашому проєкті.
opcache.max_accelerated_files = 10000
; Частота перевірки змін у PHP-скриптах (у секундах).
; На production варто вказувати велике значення (300–600), аж до 0 (перевірки немає, очищення кешу вручну).
; **Під час локальної розробки рекомендовано ставити невелике число (наприклад, 1 або 2 секунди), щоб зміни одразу набирали чинності.** Якщо вказати 0 — скрипти перевіряються щоразу, це дещо уповільнить роботу, але на розробці корисно.
opcache.revalidate_freq = 2
; Увімкнути швидке завершення виконання скрипта. Флаг рекомендовано тримати увімкненим.
opcache.fast_shutdown = 1
; Дозволити Opcache у PHP CLI (інтерфейс командного рядка).
; Корисно для прискорення команд, наприклад Composer чи тестів. Рекомендовано вмикати.
opcache.enable_cli = 1
; Чи дозволяти звільняти невикористану спільну памʼять. У деяких випадках це звільнить ресурси, але трохи знизить продуктивність. Залишайте за замовчуванням або вимкнено.
; opcache.enable_file_override = 0
; Чи ігнорувати коментарі у файлах при збереженні їх у кеші. Може трохи зекономити памʼять, але недоцільно для інструментів, які працюють із коментарями.
; opcache.save_comments = 1
; Чи зберігати Docblock-коментарі (для інструментів, як PHPUnit, Doctrine та ін.). Для роботи таких інструментів треба залишати увімкненим.
; opcache.load_comments = 1
; Рівень оптимізації. Чим більше число, тим глибша оптимізація, ціною часу компіляції. Значення за замовчуванням зазвичай оптимальні.
; opcache.optimization_level = 0x7FFFBBFF
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
Памʼятайте: після зміни opcache.ini
потрібно перезапустити відповідний PHP-пакет, щоб зміни набрали сили.
Поширені питання (FAQ)
- Питання: Чи увімкнено Opcache за замовчуванням? Відповідь: У ServBay модуль Opcache встановлено, але зазвичай він вимкнений. Потрібно слідувати інструкціям вище для його активації.
- Питання: Увімкнення Opcache вплине на мій робочий процес? Відповідь: Увімкнення Opcache пришвидшує запуск та виконання скриптів. Під час розробки встановіть
opcache.revalidate_freq
на низьке значення (1 чи 2) або 0, щоб бачили зміни одразу. Для production слід підвищити цей параметр і застосовувати ручне очищення кешу. - Питання: Чи кешує Opcache PHP CLI-скрипти? Відповідь: За замовчуванням — ні. Щоб увімкнути кеш для командного рядка, задайте
opcache.enable_cli
значення1
. Це прискорить виконання Composer, юніт-тестів тощо. - Питання: Який розмір памʼяті виділяти під Opcache? Відповідь: Параметр
opcache.memory_consumption
залежить від розміру проєкту. Для більшості локальних потреб досить 128MB або 256MB. Якщо проєкт дуже великий чи бачите попередження про переповнення кешу уphpinfo()
, збільшіть значення. - Питання: Що робити після зміни
opcache.ini
? Відповідь: Після змін у.ini
обовʼязково перезапустіть відповідний PHP-пакет для застосування нових параметрів.
Висновки
Opcache — потужний і простий інструмент для оптимізації PHP. У ServBay розробники отримують інтуїтивне керування цим розширенням: як через зрозумілий графічний інтерфейс, так і через гнучке налаштування в конфіг-файлі. Завдяки кільком простим крокам ви активуєте Opcache у середовищі ServBay та значно пришвидшите завантаження і роботу PHP-додатків, зробивши свій процес локальної розробки та тестування набагато ефективнішим. Тонкі налаштування допоможуть ще більше оптимізувати роботу під особливості саме вашого проєкту. Вмикайте Opcache у ServBay вже зараз і відчуйте приріст продуктивності PHP на практиці!