要相信同伴,拯救同伴。 收藏本站
登陆 / 注册 搜索

阅读:1万   回复: 4

PHP通过动态编译添加opcache模块

原创 [复制链接]
小执念 古黑浩劫论坛大牛 2017-4-30 15:48 |显示全部楼层

可遇不可求的事:故乡的云,上古的玉,随手的诗,十九岁的你。

管理员
        原先编译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行的样子),在下面加上:👩‎🧢🧬😛👈

PHP通过动态编译添加opcache模块 QQ截图20170430152628.png

  1. zend_extension= /usr/local/php/lib/php/extensions/no-debug-zts-20131226/opcache.so
  2. opcache.enable=1
  3. opcache.enable_cli=1

    👩‍✈️‌🎩💰😚🧠


  4. opcache.memory_consumption=268
  5. opcache.interned_strings_buffer=8
  6. opcache.max_accelerated_files=10000
  7. opcache.revalidate_freq=1
  8. opcache.fast_shutdown=1
    🖕⛄🍚‼🦠‌
  9. opcache.force_restart_timeout=3600
  10. opcache.revalidate_freq=3600
复制代码


        然后 重启apache即可生效。

🗼🍪🆚🦉‍        最后 写个phpinfo();
        就可以看到opcache的使用情况了

phpinfo页面

PHP通过动态编译添加opcache模块 phpinfo页面

        其它模块的安装方法基本和这个一模一样,不管是php自带的扩展模块还是第三方扩展模块都照这种方法安装即可。🧑‍🚀‌👖💉😄🤳

上一篇
下一篇
帖子热度 1万 ℃

小执念 古黑浩劫论坛大牛 2017-4-30 15:55 |显示全部楼层

可遇不可求的事:故乡的云,上古的玉,随手的诗,十九岁的你。

管理员
配置项说明:

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 平台上共享内存段的基地址

🧑‍🚀‎👚🔑👃



空谷幽兰 踏破虚空 2017-5-1 09:57 |显示全部楼层

从前车马很慢,书信很远,一生只够爱一个人,但是可以纳很多妾啊!

精华达人 主题破百 以坛为家 论坛元老 五周年纪念
学习ing
暮色里的白雪檐 「出类拔萃」 2018-1-22 09:33 |显示全部楼层

这个用户很懒,还没有填写自我介绍呢~

感谢分享~
巴黎环抱的花海 「龙战于野」 2018-1-22 23:06 来自手机 |显示全部楼层

这个用户很懒,还没有填写自我介绍呢~

  我知道无论用多么华丽的辞藻来形容楼主您帖子的精彩程度都是不够的,都是虚伪的,所以我只想说一句:您的帖子太好看了!我愿意一辈子的看下去!
您需要登录后才可以回帖 登录 | 免费注册  

本版积分规则

快速回复 返回列表