php[world] 2019 — 25 years of PHP

Установка

Процесс установки OPcache отличается для разных версий PHP. Смотрите соответствующие разделы ниже.

Замечание:

Если вы хотите использовать OPcache с » Xdebug, то сперва нужно загружать OPcache, а потом Xdebug.

PHP 5.5.0 и выше

OPcache можно собирать только как разделяемое расширение. Если вы запретили сборку расширений по умолчанию с помощью --disable-all , то вам будет необходимо компилировать PHP с ключом --enable-opcache для включения OPcache.

Единожды скомпилировав, вы можете использовать директиву конфигурации zend_extension для загрузки OPcache в PHP. Это можно сделать с помощью zend_extension=/full/path/to/opcache.so для платформ, отличных от Windows, и zend_extension=C:\path\to\php_opcache.dll в Windows.

PHP 5.2, 5.3 и 5.4

Это расширение » PECL не поставляется вместе с PHP.

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/ZendOpcache.

DLL для этого расширения PECL в данный момент недоступна. См. также раздел сборка на Windows.

Рекомендованые настройки php.ini

Данные опции рекомендованы для обеспечения хорошей производительности:

opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.revalidate_freq=60
opcache.fast_shutdown=1
opcache.enable_cli=1

Вы также можете рассмотреть возможность отключения opcache.save_comments и включения opcache.enable_file_override. Однако обратите внимание, что вам придётся протестировать свой код, прежде чем использовать его в промышленной эксплуатации так как известны случаи, когда некоторые фреймворки и приложения переставали работать, особенно в случае использования аннотаций в комментариях.

Полный список опций настройки OPcache смотрите тут.

add a note add a note

User Contributed Notes 6 notes

up
22
NoiseEee
5 years ago
While the "suggested" opcache settings for php.ini might be appropriate for a production server, you're going to want to change several while you're developing, or you're not going to see any changes to your code. Get familiar with what they mean before blindly pasting that into php.ini and assuming things are going to work well.
up
-6
dosercz
5 years ago
For me works (on windows) only filename without path (default extensions dir path is used)
zend_extension=php_opcache.dll
up
-13
Alex Stanciu
4 years ago
In case anyone has segfaults when using Xdebug with OpCache (even after updates, Xdebug after OpCache or other desperate strategies).
1. Disable OpCache from beeing loaded
2. Install/Enable APCu
Should be ok for a development box. On the production box you should use OpCache without Xdebug (as Xdebug slows down PHP ~3x - on our apps at least).
up
-9
rwilson0429 at yahoo dot com
2 years ago
Yes, as ohcc at 163 dot com explained, putting the zend_extension directive  in the [php] section of php.ini worked for me.

[php]
engine = On
zend_extension=php_opcache.dll
up
-17
matthias at himalayasystems dot be
5 years ago
I had a problem with installing on php 5.4 through pecl

I used
pecl install ZendOpache-beta
To force the install of the beta version

When restarting, php could not find opcache.so
Use the absolute path when assigning zend_extension.
So change zend_extension=opache.so
to
zend_extension=/usr/lib64/php/modules/opcache.so
up
-34
ohcc at 163 dot com
3 years ago
The zend_extension directive should be placed in the [php] section of php.ini otherwise it won't work.

Right configuration example

[php]
engine = On
zend_extension=php_opcache.dll

WRONG configuration example

[opcache]
zend_extension=php_opcache.dll
To Top