PHP中的字节码缓存和内置服务器是什么?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
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服务器 }
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注亿速云行业资讯频道,感谢您对亿速云的支持。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。