1. 云栖社区>
  2. PHP教程>
  3. 正文

PHP新特性之字节码缓存和内置服务器

作者:用户 来源:互联网 时间:2017-12-01 18:08:01

php服务器缓存字节特性内置

PHP新特性之字节码缓存和内置服务器 - 摘要: 本文讲的是PHP新特性之字节码缓存和内置服务器,Zend OPcache1).从PHP5.0开始,内置了字节码缓存功能,名为Zend OPcache。因为PHP是解释性语言,PHP解释器执行PHP脚本时会解析PHP脚本代码,生成一系列的Zend操作码,然后执行字节码,每次的HTTP请求都

Zend OPcache

1).从PHP5.0开始,内置了字节码缓存功能,名为Zend OPcache。因为PHP是解释性语言,PHP解释器执行PHP脚本时会解析PHP脚本代码,生成一系列的Zend操作码,然后执行字节码,每次的HTTP请求都是这样,会消耗很多资源,使用字节码缓存可以缓存预先编译的字节码,减少响应时间,降低系统资源的压力。


启用Zend OPcache

默认情况之下,Zend OPcache是没有启动的。如果是自己编译PHP,执行的时候命令必须包含以下选项:


--enable-opcache

编译好PHP之后,还必须在php.ini文件中指定Zend OPcache的扩展路径,如下所示:


zend_extension=/path/to/opcache.so

PHP编译成功之后会立即显示Zend OPcache扩展的文件路径。可以使用下面的命令找到这个PHP扩展的路径


php-config --extension-dir

然后使用下面的代码可以确认该扩展运行正常


<?php
phpinfo();
配置Zend OPcache

推荐配置


opcache.validate_timestamps = 1 //在生产环境中设为'0'
opcache.revalidate_freq = 0
opcache.memory_comsumption = 64
opcache.interned_strings_buffer = 16
opcache.max_accelerated_files = 4000
opcache.fast_shutdown = 1

可以访问PHP官方网站查看详细设置。


使用Zend OPcache

1).生产环境可以设置opcache.validate_timestamps=0。在开发环境中需要设置为1


内置的HTTP服务器

1).启动php -S localhost:4000 -c app/config/php.ini
2).不支持.htaccess文件。意味着不支持控制器模式。前端控制器用来转发所有的HTTP请求,需要通过.htaccess文件或重写规则实现。
3).可以使用路由器脚本实现以上功能。但是只支持少量的URL重写规则php -S localhost:8000 router.php
4).判断使用的是哪个服务器:


<?php
if (php_sapi_name() === 'cli-server') {
//php内置服务器
} else {
// 其他Web服务器
}
专题系列

PHP专题系列目录地址:https://github.com/xx19941215/webBlog
PHP专题系列预计写二十篇左右,主要总结我们日常PHP开发中容易忽略的基础知识和现代PHP开发中关于规范、部署、优化的一些实战性建议,同时还有对Javascript语言特点的深入研究。

以上是云栖社区小编为您精心准备的的内容,在云栖社区的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索php , 服务器 , 缓存 , 字节 , 特性 内置 ,以便于您获取更多的相关知识。

弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率

40+云计算产品,6个月免费体验

现在注册,免费体验40+云产品,及域名优惠!

云服务器9.9元/月,大学必备
Kubernetes上基于Istio体验云原生应用实践 资料下载