关于PHP8.4.1和JIT编译器

关于PHP8.4.1和JIT编译器

经验文章nimo972024-12-19 9:45:0515A+A-

原来是用的是PHP7+apache2.4.25,已经使用很长的时间了,今天想对它进行升级,于是就下了apache2.4.62和PHP8.4.1,完了就是进行配置,原以为会是很容易的,没想到结果折腾了好几个小时。

是这样的,首先配置PHP,在PHP所在目录下找到php.ini-development文件,复制一份,并把复制的副本,改名为php.ini,然后打开php.ini文件,找到extension_dir="ext"改为:

extension_dir = "这里就是PHP所在的路径/ext",

然后开始配置apache,还是常规操作,修改httpd.conf里的内容,先改:

Define SRVROOT "这里就是apache所在的路径",

再把:

ServerName localhost:80注释打开,

再修改:

DocumentRoot "这里为自定义根目录(自己指定)"

<Directory "这里也自己指定(可以与根目录相同)">

再在自己觉得合适的地方写入以下三行:

LoadModule php8_module "PHP所在的目录/php8apache2_4.dll"

PHPInidir "PHP所在的目录"

AddType application/x-httpd-php .php .html .htm

至此本以为就大功告成了,结果在安装apache服务时,采用cmd命令:

httpd -k install -n apache

有错误提示,于是把LoadModule php8_module “PHP所在的目录/php8apache2_4.dll”改成:

LoadModule php_module "PHP所在的目录/php8apache2_4.dll"

还是不行(把8去掉是正确的),服务就是无法启动,启动时总是提示:Errors reported here must be corrected before the service can be started,
而在cmd里运行httpd.exe是没有任何问题的。又以为是端口被占用了,使用netstat -ano命令进行查看,
并没有看到端口被占用,不过还是换了几次端口,依然没有解决问题。

经过一顿折腾,最后发现是Microsoft Visual c++ 2015-2022 redistributable(x64) -14.40版本太低,
于是进行了升级,结果完美解决;其实所有的配置都是正确的,而问题就出在Visual C++组件和库的版本问题,
PHP8.4.1的运行依赖最低的版本是14.41。

而至于JIT的问题,主要是开启它,PHP8在PHP的内核中添加了JIT编译器,可以极大地提高性能,
但是默认是关闭的状态,所有要手动开启它。开启的方法就是:

;加载php_opcache拓展
zend_extension=php_opcache
;开启opcache,关闭则不会执行jit
opcache.enable=1
;开启cli模式opcache
opcache.enable_cli=1

;以上的几句直接在php.ini里把分号去掉就可以,下面几句要自己加上
;开启jit的debug
opcache.jit_debug=1
;默认是tracing,也可以function,官方最近值是1255
opcache.jit=1255
opcache.jit_buffer_size=100M

最后一切搞定,试了一下,的确性能提升的不是一丁半点,比原来快了5倍多,nice!????

点击这里复制本文地址 以上内容由nimo97整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!
qrcode

尼墨宝库 © All Rights Reserved.  蜀ICP备2024111239号-7