PHP通过动态编译添加opcache模块原创 |
原先编译PHP的时候,没有加上--enable-opcache 的这个选项,现在通过PHP的动态编译把opcache这个模块加载到PHP中。(opcache在PHP5.5及以上版本是自带的)
首先 进入php解压缩后的源码包中,找到要安装的扩展模块的目录。(本例是安装opcache扩展模块) cd /root/php-5.6.30/ext/opcache 💅🚘🍟♻🐉 在opcache目录下面以绝对路径运行phpize程序,这时会自动生成opcache的configure程序,在opcache目录下面可以看到。 /usr/local/php/bin/phpize 👴🩲✒💩👄 其次 进行编译安装。 ./configure --with-php-config=/usr/local/php/bin/php-config make && make install 👌⛵🍽☣🐖 执行完make install屏幕上会提示opcache.so存放的路径,然后把它复制到php的extensions目录中,例如我的路径为: /usr/local/php/lib/php/extensions/no-debug-zts-20131226/opcache.so 👌⛄🍚❌🦬 再次 修改php.ini文件。找到extension_dir = "./" 这行,修改为: extension_dir = "/usr/local/php/lib/php/extensions/no-debug-zts-20131226/"🧑💻🥼🩸😷🤝 然后再新增加一行: extension=opcache.so 再找到 opcache(大概在1900行的样子),在下面加上:👩🧢🧬😛👈
然后 重启apache即可生效。 🗼🍪🆚🦉 最后 写个phpinfo(); 就可以看到opcache的使用情况了 phpinfo页面 其它模块的安装方法基本和这个一模一样,不管是php自带的扩展模块还是第三方扩展模块都照这种方法安装即可。🧑🚀👖💉😄🤳
帖子热度 1万 ℃
|
|
配置项说明:
opcache.enable=1 ;启用操作码缓存 opcache.enable_cli=1 ;仅针对CLI环境启用操作码缓存 👄🏫🍌🉑🐢opcache.memory_consumption=128 ;共享内存大小,单位MB opcache.interned_strings_buffer=8 ;存储临时字符串的内存大小,单位MB opcache.max_accelerated_files=4000 ;哈希表中可存储的脚本文件数量上限 opcache.max_wasted_percentage=5 ;浪费内存的上限,以百分比计 opcache.use_cwd=1 ;附加改脚本的工作目录,避免同名脚本冲突🎒😡👎 opcache.save_comments=1 ;禁用后将也不会加载注释内容 opcache.fast_shutdown=1 ;一次释放全部请求变量的内存 opcache.validate_timestamps=1 ;每隔revalidate_freq 设定的秒数,检查脚本是否更新 opcache.revalidate_freq=60 ;每隔60秒检查一下脚本文件是否有改变 ✍🗼🍞♀🦮opcache.revalidate_path=0 ;如果禁用此选项,在同一个 include_path 已存在的缓存文件会被重用 opcache.enable_file_override=0 ; 如果启用,则在调用函数file_exists(), is_file() 以及 is_readable() 的时候, 都会检查操作码缓存 opcache.optimization_level=0xffffffff ;控制优化级别的二进制位掩码。 opcache.inherited_hack=1 ;PHP 5.3之前做的优化 🤞🚤🦀📵🦚opcache.dups_fix=0 ;仅作为针对 “不可重定义类”错误的一种解决方案。 opcache.blacklist_filename="" ;黑名单文件为文本文件,包含了不进行预编译优化的文件名 opcache.max_file_size=0 ;以字节为单位的缓存的文件大小上限 opcache.consistency_checks=0 ;如果是非 0 值,OPcache 将会每隔 N 次请求检查缓存校验和 opcache.force_restart_timeout=180 ; 如果缓存处于非激活状态,等待多少秒之后计划重启。 🧠⛪🍓🈳🐅 opcache.error_log="" ;OPcache模块的错误日志文件opcache.log_verbosity_level=1 ;OPcache模块的日志级别。致命(0)错误(1) 警告(2)信息(3)调试(4) opcache.preferred_memory_model="" ;OPcache 首选的内存模块。可选值包括: mmap,shm, posix 以及 win32。 opcache.protect_memory=0 ;保护共享内存,以避免执行脚本时发生非预期的写入。 仅用于内部调试。 opcache.mmap_base=null ;在Windows 平台上共享内存段的基地址 🧑🚀👚🔑👃 |
我知道无论用多么华丽的辞藻来形容楼主您帖子的精彩程度都是不够的,都是虚伪的,所以我只想说一句:您的帖子太好看了!我愿意一辈子的看下去!
|