centos8安装php8

流星aday
2021-05-16 / 0 评论 / 150 阅读 / 正在检测是否收录...

1.添加 EPEL 和 REMI 库

dnf -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
dnf -y install https://rpms.remirepo.net/enterprise/remi-release-8.rpm

2.启用PHP的Remi模块并进行安装

dnf -y install dnf-utils

3.查看可安装php8模块

dnf search php8

4.安装php8+swoole扩展+redis扩展

#查询包信息
dnf search php8 | grep 'swoole\|redis\|cli'
#安装,如果需要fpm可执行`dnf -y install php80-php-fpm`
dnf -y install php80-php-cli php80-php-pecl-redis5 php80-php-pecl-swoole4

5.完成

php80 -v

6.查看对应扩展信息

#php80 --ri <扩展名>
php80 --ri swoole

7.查看php.ini配置文件

php80 -i | grep php.ini

8.启用php8的JIT

编辑php.ini

vim /etc/opt/remi/php80/php.ini

删除初始的opcache配置,添加如下配置到php.ini

[opcache]
opcache.enable=1
opcache.enable_cli=1
opcache.memory_consumption=192
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.jit=1205
opcache.jit_buffer_size=64M

配完成,重启fpm服务

systemctl restart php80-php-fpm.service
opcache.jit配置参数说明:
  1. 是否在生成机器码点时候使用AVX指令,需要CPU支持:

0:不使用

1:使用

  1. 寄存器分配策略:

0: 不使用寄存器分配

1: 局部(block)域分配

2: 全局(function)域分配

  1. JIT触发策略:

0:PHP脚本加载的时候就JIT 1:当函数第一次被执行时JIT

2:在一次运行后,JIT调用次数最多的百分之(opcache.prof_threshold * 100)的函数

3:当函数/方法执行超过N(N和opcache.jit_hot_func相关)次以后JIT

4:当函数方法的注释中包含@jit的时候对它进行JIT

5:当一个跟踪执行超过N次(和opcache.jit_hot_loop,jit_hot_return等有关)以后JIT

  1. JIT优化策略,数值越大优化力度越大:

0: 不JIT 1: 做opline之间的跳转部分的JIT

2: 内敛opcode handler调用

3: 基于类型推断做函数级别的JIT

4: 基于类型推断,过程调用图做函数级别JIT

5: 基于类型推断,过程调用图做脚本级别的JIT

##### 根据此,我们可以大概得到如下几个附图:

  1. 尽量使用12x5型的配置,此时应该是效果最优的
  2. 对于x,如果是脚本等级的,推荐使用0,如果是Web服务型的,可以根据测试结果选择3或5
  3. @jit的形式,在有了属性以后,可能变成<< jit >>

9.测试JIT

#不启用
php80 -d opcache.jit_buffer_size=0 Zend / index.php
#启用
php80 -d opcache.jit_buffer_size=64M -d opcache.jit = 1205 Zend / index.php
6

评论

博主关闭了所有页面的评论