PHP字节码缓存和内置服务器

藏色散人
Lepaskan: 2023-04-07 17:48:01
ke hadapan
2888 orang telah melayarinya

Zend OPcache

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

启用Zend OPcache

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

--enable-opcache
Salin selepas log masuk

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

zend_extension=/path/to/opcache.so
Salin selepas log masuk

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

php-config --extension-dir
Salin selepas log masuk

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

<?php
phpinfo();
Salin selepas log masuk

配置Zend OPcache

推荐配置

opcache.validate_timestamps = 1 //在生产环境中设为&#39;0&#39;
opcache.revalidate_freq = 0
opcache.memory_comsumption = 64
opcache.interned_strings_buffer = 16
opcache.max_accelerated_files = 4000
opcache.fast_shutdown = 1
Salin selepas log masuk

可以访问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() === &#39;cli-server&#39;) {
    //php内置服务器
} else {
    // 其他Web服务器
}
Salin selepas log masuk

更多PHP相关知识,请访问PHP中文网

Atas ialah kandungan terperinci PHP字节码缓存和内置服务器. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
php
sumber:segmentfault.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan