1.linux 安装
wget http://pecl.php.net/get/zendopcache-7.0.5.tgz tar xzf zendopcache-7.0.5.tgz cd zendopcache-7.0.5 /usr/local/php/bin/phpize ./configure --with-php-config=/usr/local/php/bin/php-config make make install
Note:
If you want to use OPcache with » Xdebug, you must load OPcache before Xdebug.
如果你使用了Xdebug,您的配置中OPcache 要放到Xdebug前面。
在php.ini中加入:
zend_extension=/usr/local/php/lib/php/extensions/no-debug-zts-20100525/opcache.so 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
其中:max_accelerated_files 设置的是缓存的文件,这个您需要到您的应用下面查看一下php文件的数量,可以通过下面的命令统计:
find ./* \( -name '*.php' -or -name '*.inc' \) -type f -print |wc -l
如果文件多,可以设置的高一些。
整理了一下其在php.ini中各参数的使用说明,供大家参考,有一些不太懂的,就留空了,还请高手赐教。
名字 | 默认 | 可修改范围 | 含义 |
---|---|---|---|
opcache.enable | “1” | PHP_INI_ALL | 是否启用opcache |
opcache.enable_cli | “0” | PHP_INI_SYSTEM | 是否在CLI(即命令行时)启用opcache |
opcache.memory_consumption | “64” | PHP_INI_SYSTEM | 为opcache分配多少共享内存,单位M |
opcache.interned_strings_buffer | “4” | PHP_INI_SYSTEM | interned string的内存大小 |
opcache.max_accelerated_files | “2000” | PHP_INI_SYSTEM | 最大缓存的文件数目。
实际上这个值会使用第一个大于你配置的数字的下列素数 { 223, 463, 983, 1979, 3907, 7963, 16229, 32531, 65407, 130987 }, 如你将该值指定为400,则实际上该值为463. |
opcache.max_wasted_percentage | “5” | PHP_INI_SYSTEM | |
opcache.use_cwd | “1” | PHP_INI_SYSTEM | 如果置为1,则将当前路径加入到文件key中,
以避免可能产生的同文件名的文件key冲突 |
opcache.validate_timestamps | “1” | PHP_INI_ALL | 如果置为1,则OPCACHE会自动检测文件的时间戳
(检测周期为revalidate_freq), 并根据文件的时间戳来更新opcode,如果置为0, 则只能手动去重启opcache或 重启webserver以使更新后的php文件生效 |
opcache.revalidate_freq | “2” | PHP_INI_ALL | opcache自动检测文件是否更新的周期,单位秒。
如果是0,则每次请求时opcache都要进行检测。 当validate_timestamps为0时,本指令无效。 |
opcache.revalidate_path | “0” | PHP_INI_ALL | |
opcache.save_comments | “1” | PHP_INI_SYSTEM | 是否保存文件中的注释 |
opcache.load_comments | “1” | PHP_INI_ALL | 是否load comments,与save_comments联合起来使用,
如果该值为0,则即使save_comments为1, 那么php脚本中的comments也是不使用的 |
opcache.fast_shutdown | “0” | PHP_INI_SYSTEM | 是否打开快速关闭,
打开时可使php在request shutdown时回收内存快 |
opcache.enable_file_override | “0” | PHP_INI_SYSTEM | 如果置为1,则每次调用file_exist() is_file() is_readable()函数时,
opcache将要检查该文件是否被cache了, 这样增加了检查存在性和可读性的开销, 但避免了当validate_timestamps为disable时返回错误文件状态的风险。 |
opcache.optimization_level | “0xffffffff” | PHP_INI_SYSTEM | 运行时控制优化的掩码(干什么的?) |
opcache.inherited_hack | “1” | PHP_INI_SYSTEM | 5.3以前使用。5.3后废弃 |
opcache.dups_fix | “0” | PHP_INI_ALL | 为解决“cannot redecllare class” 时,可将其置为1 |
opcache.blacklist_filename | “” | PHP_INI_SYSTEM | 设置黑名单文件,符合黑名单文件中定义的php文件将不被opcache。黑名单文件的例子如下:
; Matches a specific file. /var/www/broken.php ; A prefix that matches all files starting with x. /var/www/x ; A wildcard match. /var/www/*-broken.php 一行为一条规则,支持通配符,注释以分号开头 |
opcache.max_file_size | “0” | PHP_INI_SYSTEM | 被cache的文件的最大size,单位bytes。0表示不限 |
opcache.consistency_checks | “0” | PHP_INI_ALL | 如果置为N,N非零,则opcache会每N个请求核实一下cache的检验和。
这会损害性能,应该只在debug时使用 |
opcache.force_restart_timeout | “180” | PHP_INI_SYSTEM | 如果opcache处于非active状态,当N秒后opcache将自动重启 |
opcache.error_log | “” | PHP_INI_SYSTEM | opcache自身的errorlog文件路径,为空时则使用stderr |
opcache.log_verbosity_level | “1” | PHP_INI_SYSTEM | 日志记录level,默认只有fatal error和error |
opcache.preferred_memory_model | “” | PHP_INI_SYSTEM | opcache首选使用的内存模型,为空时会选择最适当的模型。
常用的有,mmap shm posix 和win32 |
opcache.protect_memory | “0” | PHP_INI_SYSTEM | 运行php脚本时保护共享内存防止意外的写入。
只对debug时有用。 |
opcache.mmap_base | NULL |
PHP_INI_SYSTEM |
- 顶
- 0
- 踩