PHP 5.5 OPCache не работает на apache

Я отвечаю за обмен кешем кода операции здесь, в моей компании, мы переходим с eaccelerator на Zend OPCache, поставляемый с PHP 5.5.

Когда я получаю доступ к PHP в CLI, кажется, что OPCache работает нормально:

PHP 5.5.5 (cli) (built: Oct 15 2013 10:29:13)
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2013 Zend Technologies
    with Zend OPcache v7.0.3-dev, Copyright (c) 1999-2013, by Zend Technologies

Но когда я получаю доступ к своему веб-сайту через Apache, тесты не показывают никаких улучшений по сравнению с теми же страницами без кеша кода операции. Кроме того, get_loaded_extensions(true) возвращает пустой массив.

Может ли кто-нибудь ответить мне, почему, черт возьми, это не работает?

Я использую Windows 7, Apache 2.4.6 из Apache Lounge, PHP 5.5.5 из windows.php.net.


РЕДАКТИРОВАТЬ:

В соответствии с запросом моя конфигурация OPCache:

[opcache]
opcache.enable=1
opcache.enable_cli=1
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
;opcache.max_wasted_percentage=5
;opcache.use_cwd=1
;opcache.validate_timestamps=1
opcache.revalidate_freq=60
;opcache.revalidate_path=0
;opcache.save_comments=1
;opcache.load_comments=1
opcache.fast_shutdown=1
;opcache.enable_file_override=0
;opcache.optimization_level=0xffffffff
;opcache.inherited_hack=1
;opcache.dups_fix=0
;opcache.blacklist_filename=
;opcache.max_file_size=0
;opcache.consistency_checks=0
;opcache.force_restart_timeout=180
;opcache.error_log=
;opcache.log_verbosity_level=1
;opcache.preferred_memory_model=
;opcache.protect_memory=0

person Denis Lins    schedule 21.10.2013    source источник
comment
Можете ли вы предоставить нам раздел opcache phpinfo?   -  person Sergio Álvarez    schedule 21.10.2013
comment
Конечно, я просто добавил описание вопроса.   -  person Denis Lins    schedule 21.10.2013
comment
возможный дубликат Как использовать PHP OPCache?   -  person PeeHaa    schedule 24.10.2013


Ответы (3)


Нашел ответ!

zend_extension расширения должны указывать полный путь, а не относительный.

В данном случае zend_extension="C:\Apache24\php\ext\php_opcache.dll" решил мои проблемы.

person Denis Lins    schedule 21.10.2013
comment
В моем случае помогло изменение extension=php_opcache.dll на zend_extension=php_opcache.dll. - person mkutyba; 13.02.2015
comment
zend_extension=php_opcache.dll (плюс настройки по умолчанию opcache.enable = 1...) У меня сработало. - person RachelD; 12.08.2015
comment
для UwAmp: zend_extension={PHPEXTPATH}/php_opcache.dll - person CoR; 13.10.2016

РЕШЕНИЕ ДЛЯ WINDOWS PHP 7

По умолчанию в файлах php.ini есть настройки opcache, такие как opcache.eneable, но включение opcache не вступит в силу, если вы не добавите:

zend_extension=php_opcache.dll

в ваш конфигурационный файл. Помните, что это zend_extension, а не обычное расширение!

person BIOHAZARD    schedule 21.12.2015

Убедитесь, что у вас есть «opcache» в вашем phpinfo(); отчет. По умолчанию:

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

Можете ли вы подтвердить, что расширение загружено?

person Sergio Álvarez    schedule 21.10.2013
comment
Нет, на моем phpinfo() этого тоже не было. Но, как я уже упоминал ранее, я указывал неправильный путь для расширения. - person Denis Lins; 21.10.2013