分类
PHP

博客PHP版本升级到7.4.2

今天看了下PHP版本,最新版本已经到了PHP7.4.3了,由于博客使用的PHP版本还是7.4.1,于是想就升级一下。

下载了7.4.3的代码,编辑后发现报错:

Generating phar.php
/bin/sh: line 1: 18054 Segmentation fault      ` if test -x "/root/php-7.4.3/sapi/cli/php"; then /root/php-7.4.3/build/shtool echo -n -- "/root/php-7.4.3/sapi/cli/php -n"; if test "x" != "x"; then /root/php-7.4.3/build/shtool echo -n -- " -d extension_dir=/root/php-7.4.3/modules"; for i in bz2 zlib phar; do if test -f "/root/php-7.4.3/modules/$i.la"; then . /root/php-7.4.3/modules/$i.la; /root/php-7.4.3/build/shtool echo -n -- " -d extension=$dlname"; fi; done; fi; else /root/php-7.4.3/build/shtool echo -n -- "/root/php-7.4.3/sapi/cli/php"; fi;` -n -d 'open_basedir=' -d 'output_buffering=0' -d 'memory_limit=-1' -d phar.readonly=0 /root/php-7.4.3/ext/phar/build_precommand.php > ext/phar/phar.php
make: *** [ext/phar/phar.php] Error 139

尝试修改 configure 选项,发现只要去掉–with-zip就可以了,但是去这个,zip 扩展就不能用了。看这个错误,应该是生成 phar 是报的错,于是禁用 phar,增加一个 configure 选项:--disable-phar,再编译就可以通过了。完整 configure 参数如下:

./configure \
--prefix=/usr/local/php/php74 \
--enable-gd \
--with-curl \
--enable-fpm \
--enable-cgi \
--with-openssl \
--enable-mbstring \
--with-pdo-mysql \
--with-zlib \
--with-zip \
--with-mysqli \
--enable-opcache \
--enable-mysqlnd \
--with-libxml \
--with-jpeg \
--with-freetype \
--with-pdo-sqlite \
--with-sqlite3 \
--enable-cli \
--enable-shared \
--enable-exif \
--disable-phar 

但是这样有个问题,禁用phar,可能composer等使用phar的相关的服务就不能用了,所以,我没安装这个版本。于是又下载了7.4.2的版本,这个版本一次性编译通过,升级成功。

至于那个Error 139的问题,猜测可能是代码BUG,那么只好跳过7.4.3这个版本,等下一个版本再看。


2020年3月3日 23:29更新:

经网友“笛声”留言提醒,PHP7.4.3版本没有问题,是我环境的问题。升级PHP7.4.3的过程,参考这里

“博客PHP版本升级到7.4.2”上的3条回复

成功了。问题出在我用remi源安装的libzip上,换成手动编译libzip-1.2.0就可以了。本来我也是手动编译,可是遇到编译完成后仍然找不到libzip的问题,没有深入分析,偷懒使用了现成的源。参考你的文章 https://hqidi.com/154.html 才知道要用pkg-config。感谢😉

发表评论

电子邮件地址不会被公开。 必填项已用*标注