专栏首页日暮星辰编译安装PHP8.0测试版开启Opcache JIT
原创

编译安装PHP8.0测试版开启Opcache JIT

PHP已经进入了PHP8.0的测试研发阶段,其中就包括万众期待的PHP JIT新特性,这里我们尝新编译安装PHP8.0,并试着开启opcache中的JIT

环境:Debian10,假设已按照完成nginx

  1. 安装编译软件及依赖

apt install libonig-dev pkg-config build-essential autoconf bison re2c libxml2-dev libsqlite3-dev git

2. 安装PHP常用的库依赖,这里是debian的,不同版本系统和不同类型的系统可能不一样,需要自己查找必须的依赖。

apt-get install libssl-dev zlib1g-dev libcurl4-gnutls-dev libpng-dev libonig-dev

3. 下载PHP8测试版源码,这个是测试版的源码,实时更新,因此可能存在BUG甚至无法编译安装成功的情况。

git clone https://github.com/php/php-src.git

cd php-src

./buildconf

进行编译前config

./configure --prefix=/usr/local/php \

--with-config-file-path=/usr/local/php/etc \

--with-config-file-scan-dir=/usr/local/php/etc/php.d \

--enable-mbstring \

--enable-ftp \

--enable-gd \

--enable-opcache \

--enable-gd-jis-conv \

--enable-mysqlnd \

--enable-pdo \

--enable-sockets \

--enable-fpm \

--enable-xml \

--enable-soap \

--enable-pcntl \

--enable-cli \

--with-openssl \

--with-mysqli=mysqlnd \

--with-pdo-mysql=mysqlnd \

--with-pear \

--with-zlib \

--with-iconv \

--with-curl

4.编译及安装

make & make test & make install

5. 配置与测试

/usr/local/php/bin/php -v

增加全局php环境变量

vim /etc/profile

末尾增加

PATH=$PATH:/usr/local/php/bin

export PATH

6.基础php配置

cp php.ini-production /usr/local/php/etc/php.ini

cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf

cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf

cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm

chmod +x /etc/init.d/php-fpm

service php-fpm start

systemctl enable php-fpm

修改php配置,去掉 php-fpm.conf中 pid = run/php-fpm.pid 前面的分号

vim /usr/local/php/etc/php-fpm.conf

pid = run/php-fpm.pid

修改www.conf中的启动用户和用户组为www-data已经监听端口为listen = 127.0.0.1:9080

user = www-data

group = www-data

listen = 127.0.0.1:9080

这里需要注意如果php-fpm无法使用service php-fpm start是可能因为系统启动项出现了误判,建议重启reboot再试。

7.开启opcache和JIT

cd /usr/local/php/etc/php.d

vim 02-opcache.ini

增加以下内容:

[opcache]

zend_extension=opcache.so

opcache.enable=1

opcache.enable_cli=1

opcache.memory_consumption=192

opcache.interned_strings_buffer=8

opcache.max_accelerated_files=100000

opcache.max_wasted_percentage=5

opcache.use_cwd=1

opcache.validate_timestamps=1

opcache.revalidate_freq=60

;opcache.save_comments=0

opcache.fast_shutdown=1

opcache.consistency_checks=0

;opcache.optimization_level=0

#启动JIT

opcache.jit_buffer_size=128m

opcache.jit=1205

重启php-fpm

service php-fpm restart

以上问题需要注意找到对应的扩展php.ini的文件夹再建立设置开启opcache的配置文件。

经过以上配置后,搭配nginx或者apache就可以启动php文件的解析。

8. 修改php对应的nginx配置,修改对应的nginx.conf文件或扩展的配置conf文件,包含内容类似如下酌情调整:

server {

listen 80;

server_name test.sopans.com;

access_log /var/log/nginx/test.sopans.com.access.log main;

root /var/www/html/test;

index index.html index.htm index.php;

location ~ \.php {

fastcgi_pass 127.0.0.1:9080;

fastcgi_index index.php;

root /var/www/html/test;

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

# fastcgi_split_path_info ^(.+\.php)(/.*)$;

# fastcgi_param PATH_INFO $fastcgi_path_info;

include fastcgi_params;

}

}

这里需要注意一个问题,就是有的配置文件中需要指明location ~ \.php 下的root文件夹,不然这个傻子php总是找不到php文件的位置。

经过以上设置,你可以测试一个phpinfo的文件进行测<?php echo phpinfo(); ?>

如果没有意外我们将看到php中正确开启了jit

原文来自我的博客:https://zach.vip/web/编译安装php8-0测试版开启opcache-jit/

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 腾讯云云主机实现多IP绑定

    腾讯云主机实际上一直允许绑定弹性IP,最开始是可以实现经典IP更换为弹性IP可以有效的屏蔽掉攻击,释放IP进行更换。

    Zach
  • Let’s Encrypt 宣布 ACME v2 正式支持通配符证书

    Let’s Encrypt 宣布 ACME v2 正式支持通配符证书。Let’s Encrypt 宣称将继续清除 Web 上采用 HTTPS 的障碍,让每个网站...

    Zach
  • CENTOS7安装最新版的CAMKE3

    最近折腾openssl的时候发现谷歌Boring ssl常规编译惊人通不过,查看编译记录发现要求CMAKE3版本及以上。

    Zach
  • PHP-fpm 远程代码执行漏洞(CVE-2019-11043)分析

    国外安全研究员 Andrew Danau在解决一道 CTF 题目时发现,向目标服务器 URL 发送 %0a 符号时,服务返回异常,疑似存在漏洞。

    Seebug漏洞平台
  • CentOS7.0下安装PHP5.6.30服务的教程详解

    nginx本身不能处理PHP,它只是个web服务器,当接收到请求后,如果是php请求,则发给php解释器处理,并把结果返回给客户端。

    砸漏
  • 初学Swoole:PHP7安装Swoole的步骤

    本篇文章给大家带来的内容是关于初学Swoole:PHP7安装Swoole的步骤,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

    叫我可儿呀
  • MongoDB Web界面 管理工具Rockmongo的安装

    RockMongo是PHP5写的一个MongoDB管理工具。

    似水的流年
  • MongoDB Web界面 管理工具Rockmongo的安装

    RockMongo是PHP5写的一个MongoDB管理工具。 通过 Rockmongo 你可以管理 MongoDB服务,数据库,集合,文档,索引等等。...

    似水的流年
  • linux学习第四十二篇:PHP扩展模块安装

    PHP扩展模块安装 查看模块: /usr/local/php/bin/php -m 下面安装一个redis的模块 cd /usr/local/src/ ...

    用户1215343
  • Ubuntu 16.04 编译安装 PHP 7.2

    上一篇文章 Linux 下 Nginx + PHP 环境的配置 扯了那么多复杂的概念,现在让我来说一说怎么把它用在实践之中。

    zgq354

扫码关注云+社区

领取腾讯云代金券