关于PHP8.4.1和JIT编译器
原来是用的是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!????
上一篇:php后端开发框架