我负责我公司的操作码缓存交换,我们正在从eaccelerator转移到PHP 5.5附带的Zend OPCache。
当我在CLI中访问PHP时,似乎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 Lounge的Apache 2.4.6,来自windows.php.net的PHP 5.5.5。
编辑:
根据要求,我的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
答案 0 :(得分:10)
找到了答案!
zend_extension
个扩展名必须设置完整路径,而不是相对路径。
在这种情况下,zend_extension="C:\Apache24\php\ext\php_opcache.dll"
解决了我的问题。
答案 1 :(得分:5)
默认情况下,php.ini文件中有opcache设置,如opcache.eneable,但启用opcache不会生效,除非你添加:
zend_extension=php_opcache.dll
到你的配置文件。 记住它是zend_extension而不是常规的exstension!
答案 2 :(得分:0)
确保你的phpinfo()中有“opcache”;报告。 By default:
此PECL扩展程序的DLL目前无法使用。另请参阅building on Windows部分。
您能否确认已加载扩展程序?