人的记忆本来就是暧昧的,不值得信任。 每日签到 收藏本站
登陆 / 注册 搜索

USERCENTER


查看:5099   回复: 3

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

[复制链接]
发新帖
跳转到指定楼层
楼主
小执念古黑浩劫论坛大牛 发表于 2017-4-30 15:48:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

当我到达高处,便发觉自己总是孤独的,我在高处究竟意欲何为?

        原先编译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行的样子),在下面加上:

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

  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页面 phpinfo页面 PHP通过动态编译添加opcache模块

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

上一篇:零基础Linux|第十四课_什么是Yum?摘要:上一课中使用过yum,看着很方便对吧?不用我们去解决 ...
下一篇:关于我的计算机网络摘要:关于计算机网络你们又了解多少?什么是计算机网络?那 ...

楼主| 小执念古黑浩劫论坛大牛 发表于 2017-4-30 15:55:46 | 只看该作者
配置项说明:

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:30 | 只看该作者
学习ing
暮色里的白雪檐「出类拔萃」 发表于 2018-1-22 09:33:24 | 只看该作者
感谢分享~
巴黎环抱的花海「出类拔萃」 发表于 2018-1-22 23:06:05 来自手机 | 只看该作者
  我知道无论用多么华丽的辞藻来形容楼主您帖子的精彩程度都是不够的,都是虚伪的,所以我只想说一句:您的帖子太好看了!我愿意一辈子的看下去!
您需要登录后才可以回帖 登录 | 立即注册  

本版积分规则

关于我们|小黑屋|手机版|Archiver|古黑论

GMT+8, 2019-7-17 22:27 , Processed in 0.142103 second(s), 41 queries , Redis On.

© 2015-2019 GuHei.Net

Powered by Discuz! X3.4

快速回复 返回列表