Centos编译体验PHP8 Alpha 2

在昨天(2020-7-16)时某群群友问编译了PHP7.3再编译7.4会比较快吗?而突发奇想体验一下PHP8看看。

本来准备直接用包管理器安装的,可是常用的remi源没有找到PHP8最后只好编译安装了。

一、下载并解压

wget https://downloads.php.net/~carusogabriel/php-8.0.0alpha2.tar.gz

tar -zxvf php-8.0.0alpha2.tar.gz

cd php-8.0.0alpha2

二、编译

./configure --prefix=/usr/local/php8 \
--with-config-file-path=/usr/local/php8 \
--enable-mbstring  \
--enable-ftp  \
--enable-gd   \
--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
make && make install

(之前已经安装过相关编译工具包了。)

三、一些微小的工作

复制配置文件:

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

打开错误:

vim /usr/local/php8/php.ini
display_errors = On

复制fpm的启动脚本:

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

增加执行权限

chmod +x /etc/init.d/php-fpm8.0

复制php-fpm配置文件:

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

修改php-fpm配置文件,去掉pid = run/php-fpm.pid前面的分号,因为本次是Nginx+PHP-FPM模式。

修改/usr/local/php8/etc/php-fpm.d/文件夹下的配置文件,可以修改默认的www.conf.default复制或者重命名为.conf结尾的文件,同时修改启动用户和监听端口。

修改启动用户:
[code]
user = www
group = www

修改监听端口:

listen = 127.0.0.1:9000

启动fpm

/etc/init.d/php-fpm8.0 start

四、配置Nginx
由于我前期是安装了aaPanel面板,在新增网站时还没有PHP8可以选择于是就选择了纯静态网站,然后再手动修改相关配置文件。
增加一个:

 location ~ \.php {
                fastcgi_pass   127.0.0.1:9080;
                fastcgi_index  index.php;
                fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
#               fastcgi_split_path_info ^(.+\.php)(/.*)$;
#               fastcgi_param PATH_INFO $fastcgi_path_info;
                include        fastcgi_params;
        }  

五、参考

[PHP] 最新抢先编译安装PHP8.0.0 alph1以及FPM
https://www.cnblogs.com/taoshihan/p/13196217.html

下载PHP
https://downloads.php.net/~carusogabriel/

六、
至于后面是Alpha还是RC的哪个版本对应的下载链接都要自己去修改了,本次是下载Alpha 2版本。

不知道是错觉还是数据量还是服务器的问题,安装了WordPress 5.4.2明显比较快,虽然在“写文章”时会出现Warning: Only the first byte will be assigned to the string offset in /www/wwwroot/www.cyzwb.com/wp-includes/class.wp-scripts.php on line 492的错误。

评论也有问题Warning: get_comment(): Argument #1 ($comment) must be passed by reference, value given in /www/wwwroot/php8.147180.com/wp-includes/class-wp-comment-query.php on line 484

又是那台还有几天就到期的服务器无法留下链接了,phpinfo的截图还是可以贴一张的,虽然没有什么用处。

ChiuYut

2020年7月17日

发布者

ChiuYut

咦?我是谁?这是什么地方? Ya ha!我是ChiuYut!这里是我的小破站!