PHP 升级记录
查看当前版本:
[root@JT-T-KEYAN-001 src]# /usr/local/php7/bin/php -v
PHP 7.1.0 (cli) (built: Oct 27 2017 09:42:19) ( NTS )
Copyright (c) 1997-2016 The PHP Group
Zend Engine v3.1.0-dev, Copyright (c) 1998-2016 Zend Technologies
[root@JT-T-KEYAN-001 src]#
获取当前版本的编译参数:
[root@JT-T-KEYAN-001 src]# /usr/local/php7/bin/php -i|grep configure
Configure Command => './configure' '--prefix=/usr/local/php7' '--exec-prefix=/usr/local/php7' '--with-config-file-path=/usr/local/php7/etc' '--with-curl' '--with-freetype-dir' '--with-gd' '--with-gettext' '--with-iconv-dir' '--with-kerberos' '--with-libdir=lib64' '--with-libxml-dir' '--with-mysqli' '--with-openssl' '--with-pcre-regex' '--with-pdo-mysql' '--with-pdo-sqlite' '--with-pear' '--with-png-dir' '--with-xmlrpc' '--with-xsl' '--with-zlib' '--with-zlib-dir' '--with-mhash' '--with-mcrypt' '--with-openssl-dir' '--with-jpeg-dir' '--enable-fpm' '--enable-bcmath' '--enable-libxml' '--enable-inline-optimization' '--enable-gd-native-ttf' '--enable-mbregex' '--enable-mbstring' '--enable-opcache' '--enable-pcntl' '--enable-shmop' '--enable-soap' '--enable-sockets' '--enable-sysvsem' '--enable-xml' '--enable-zip'
[root@JT-T-KEYAN-001 src]#
对编译参数进行整理:
./configure --prefix=/usr/local/php7 \
--exec-prefix=/usr/local/php7 \
--with-config-file-path=/usr/local/php7/etc \
--with-curl \
--with-freetype-dir \
--with-gd \
--with-gettext \
--with-iconv-dir \
--with-kerberos \
--with-libdir=lib64 \
--with-libxml-dir \
--with-mysqli \
--with-openssl \
--with-pcre-regex \
--with-pdo-mysql \
--with-pdo-sqlite \
--with-pear \
--with-png-dir \
--with-xmlrpc \
--with-xsl \
--with-zlib \
--with-zlib-dir \
--with-mhash \
--with-mcrypt \
--with-openssl-dir \
--with-jpeg-dir \
--enable-fpm \
--enable-bcmath \
--enable-libxml \
--enable-inline-optimization \
--enable-gd-native-ttf \
--enable-mbregex \
--enable-mbstring \
--enable-opcache \
--enable-pcntl \
--enable-shmop \
--enable-soap \
--enable-sockets \
--enable-sysvsem \
--enable-xml \
--enable-zip
暂停当前版本的php服务,并备份原安装目录:
[root@JT-T-KEYAN-001 src]# service php-fpm stop
Gracefully shutting down php-fpm . done
[root@JT-T-KEYAN-001 src]#
[root@JT-T-KEYAN-001 src]# mv /usr/local/php7 /usr/local/php71
下载当前稳定版本,解压并进行编译:
[root@JT-T-KEYAN-001 src]# tar -zxf php-7.3.23.tar.gz
[root@JT-T-KEYAN-001 src]#
[root@JT-T-KEYAN-001 src]# cd php-7.3.23
[root@JT-T-KEYAN-001 php-7.3.23]# ./configure --prefix=/usr/local/php7 \
--exec-prefix=/usr/local/php7 \
--with-config-file-path=/usr/local/php7/etc \
--with-curl \
--with-freetype-dir \
--with-gd \
--with-gettext \
--with-iconv-dir \
--with-kerberos \
--with-libdir=lib64 \
--with-libxml-dir \
--with-mysqli \
--with-openssl \
--with-pcre-regex \
--with-pdo-mysql \
--with-pdo-sqlite \
--with-pear \
--with-png-dir \
--with-xmlrpc \
--with-xsl \
--with-zlib \
--with-zlib-dir \
--with-mhash \
--with-mcrypt \
--with-openssl-dir \
--with-jpeg-dir \
--enable-fpm \
--enable-bcmath \
--enable-libxml \
--enable-inline-optimization \
--enable-gd-native-ttf \
--enable-mbregex \
--enable-mbstring \
--enable-opcache \
--enable-pcntl \
--enable-shmop \
--enable-soap \
--enable-sockets \
--enable-sysvsem \
--enable-xml \
--enable-zip
遇到错误:
configure: error: Please reinstall the libzip distribution
[root@JT-T-KEYAN-001 php-7.3.23]#
需要安装 libzip,高版本与低版本的安装方式不同:
libzip-1.5.2
libzip-1.2.0
安装 libzip-1.2.0 版本:
[root@JT-T-KEYAN-001 src]# tar -zxf libzip-1.2.0.tar.gz
[root@JT-T-KEYAN-001 src]# cd libzip-1.2.0
[root@JT-T-KEYAN-001 libzip-1.2.0]#
[root@JT-T-KEYAN-001 libzip-1.2.0]# ./configure
[root@JT-T-KEYAN-001 libzip-1.2.0]# make
[root@JT-T-KEYAN-001 libzip-1.2.0]# make install
安装 libzip-1.5.2 版本:
[root@JT-T-KEYAN-001 php-7.3.23]# cd ../
[root@JT-T-KEYAN-001 src]# tar -zxf libzip-1.5.2.tar.gz
[root@JT-T-KEYAN-001 src]#
[root@JT-T-KEYAN-001 src]# cd libzip-1.5.2
[root@JT-T-KEYAN-001 libzip-1.5.2]#
[root@JT-T-KEYAN-001 libzip-1.5.2]# mkdir build
[root@JT-T-KEYAN-001 libzip-1.5.2]# cd build/
[root@JT-T-KEYAN-001 build]#
[root@JT-T-KEYAN-001 build]# cmake ..
CMake Error at CMakeLists.txt:4 (CMAKE_MINIMUM_REQUIRED):
CMake 3.0.2 or higher is required. You are running version 2.8.12.2
-- Configuring incomplete, errors occurred!
[root@JT-T-KEYAN-001 build]#
[root@JT-T-KEYAN-001 build]#
安装 libzip-1.5.2 时,遇到 cmake 版本过低,安装高版本:
[root@JT-T-KEYAN-001 build]# cd ../../
root@JT-T-KEYAN-001 src]# tar -zxf cmake-3.14.7.tar.gz
[root@JT-T-KEYAN-001 src]#
[root@JT-T-KEYAN-001 src]# cd cmake-3.14.7
[root@JT-T-KEYAN-001 cmake-3.14.7]#
[root@JT-T-KEYAN-001 cmake-3.14.7]# ./bootstrap
---------------------------------------------
CMake 3.14.7, Copyright 2000-2020 Kitware, Inc. and Contributors
Found GNU toolchain
C compiler on this system is: gcc
---------------------------------------------
Error when bootstrapping CMake:
Cannot find a C++ compiler that supports both C++11 and the specified C++ flags.
Please specify one using environment variable CXX.
The C++ flags are "".
They can be changed using the environment variable CXXFLAGS.
See cmake_bootstrap.log for compilers attempted.
---------------------------------------------
Log of errors: /usr/local/src/cmake-3.14.7/Bootstrap.cmk/cmake_bootstrap.log
---------------------------------------------
[root@JT-T-KEYAN-001 cmake-3.14.7]#
编译安装 cmake 时,遇到gcc 版本过低,升级 gcc 版本
[root@JT-T-KEYAN-001 cmake-3.14.7]# cd ../
[root@JT-T-KEYAN-001 src]# tar -zxf gcc-4.8.5.tar.gz
[root@JT-T-KEYAN-001 src]#
[root@JT-T-KEYAN-001 src]# cd gcc-4.8.5
[root@JT-T-KEYAN-001 gcc-4.8.5]#
查看 gcc-4.8.5 需要的安装包:
[root@JT-T-KEYAN-001 gcc-4.8.5]# vi contrib/download_prerequisites
在 contrib/download_prerequisites
中看到如下内容:
MPFR=mpfr-2.4.2
GMP=gmp-4.3.2
MPC=mpc-0.8.1
wget ftp://gcc.gnu.org/pub/gcc/infrastructure/$MPFR.tar.bz2 || exit 1
tar xjf $MPFR.tar.bz2 || exit 1
ln -sf $MPFR mpfr || exit 1
wget ftp://gcc.gnu.org/pub/gcc/infrastructure/$GMP.tar.bz2 || exit 1
tar xjf $GMP.tar.bz2 || exit 1
ln -sf $GMP gmp || exit 1
wget ftp://gcc.gnu.org/pub/gcc/infrastructure/$MPC.tar.gz || exit 1
tar xzf $MPC.tar.gz || exit 1
ln -sf $MPC mpc || exit 1
所以在这里需要下载mpfr-2.4.2
,gmp-4.3.2
,mpc-0.8.1
,下载链接分别为上方版本下的 wget 地址。
gmp下载链接:http://ftp.gnu.org/pub/gnu/gmp/
mpfr下载链接:http://mirror.hust.edu.cn/gnu/mpfr/
mpc下载链接:http://ftp.gnu.org/gnu/mpc/
将下载的文件,移动到 gcc-4.8.5目录下并解压:
[root@JT-T-KEYAN-001 gcc-4.8.5]# cd ../
[root@JT-T-KEYAN-001 src]# mv mpfr-2.4.2.tar.gz gcc-4.8.5
[root@JT-T-KEYAN-001 src]# mv mpc-1.0.3.tar.gz gcc-4.8.5
[root@JT-T-KEYAN-001 src]# mv gmp-4.3.2.tar.gz gcc-4.8.5
[root@JT-T-KEYAN-001 src]#
[root@JT-T-KEYAN-001 src]# cd gcc-4.8.5
[root@JT-T-KEYAN-001 gcc-4.8.5]# tar -zxf mpfr-2.4.2.tar.gz
[root@JT-T-KEYAN-001 gcc-4.8.5]# tar -zxf mpc-1.0.3.tar.gz
[root@JT-T-KEYAN-001 gcc-4.8.5]# tar -zxf gmp-4.3.2.tar.gz
[root@JT-T-KEYAN-001 gcc-4.8.5]#
mpc-0.8.1 在
http://ftp.gnu.org/gnu/mpc/
处未找到对应的 0.8.1 版本,暂时选择了 1.0 的版本 1.0.3
建立软链接:
[root@JT-T-KEYAN-001 gcc-4.8.5]# ln -sf mpfr-2.4.2 mpfr
[root@JT-T-KEYAN-001 gcc-4.8.5]# ln -sf gmp-4.3.2 gmp
[root@JT-T-KEYAN-001 gcc-4.8.5]# ln -sf mpc-1.0.3 mpc
[root@JT-T-KEYAN-001 gcc-4.8.5]#
编译(大概需要一个小时左右)
[root@JT-T-KEYAN-001 gcc-4.8.5]# mkdir build && cd build
[root@JT-T-KEYAN-001 build]#
[root@JT-T-KEYAN-001 build]# ../configure -enable-checking=release -enable-languages=c,c++ -disable-multilib
[root@JT-T-KEYAN-001 build]#
[root@JT-T-KEYAN-001 build]# make -j4
[root@JT-T-KEYAN-001 build]#
[root@JT-T-KEYAN-001 build]# make install
查看版本
[root@JT-T-KEYAN-001 build]# gcc -v
重新安装 cmake-3.14.7
[root@JT-T-KEYAN-001 build]# cd ../../
[root@JT-T-KEYAN-001 src]#
[root@JT-T-KEYAN-001 src]# rm -rf cmake-3.14.7
[root@JT-T-KEYAN-001 src]# tar -zxf cmake-3.14.7.tar.gz
[root@JT-T-KEYAN-001 src]#
[root@JT-T-KEYAN-001 src]# cd cmake-3.14.7
[root@JT-T-KEYAN-001 cmake-3.14.7]#
[root@JT-T-KEYAN-001 cmake-3.14.7]#
[root@JT-T-KEYAN-001 cmake-3.14.7]# ./bootstrap
...
/usr/local/src/cmake-3.14.7/Bootstrap.cmk/cmake: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.18' not found (required by /usr/local/src/cmake-3.14.7/Bootst rap.cmk/cmake)
/usr/local/src/cmake-3.14.7/Bootstrap.cmk/cmake: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.14' not found (required by /usr/local/src/cmake-3.14.7/Bootst rap.cmk/cmake)
/usr/local/src/cmake-3.14.7/Bootstrap.cmk/cmake: /usr/lib64/libstdc++.so.6: version `CXXABI_1.3.5' not found (required by /usr/local/src/cmake-3.14.7/Bootstra p.cmk/cmake)
/usr/local/src/cmake-3.14.7/Bootstrap.cmk/cmake: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.15' not found (required by /usr/local/src/cmake-3.14.7/Bootst rap.cmk/cmake)
[root@JT-T-KEYAN-001 cmake-3.14.7]#
[root@JT-T-KEYAN-001 cmake-3.14.7]# strings /usr/lib64/libstdc++.so.6|grep GLIBCXX
GLIBCXX_3.4
GLIBCXX_3.4.1
GLIBCXX_3.4.2
GLIBCXX_3.4.3
GLIBCXX_3.4.4
GLIBCXX_3.4.5
GLIBCXX_3.4.6
GLIBCXX_3.4.7
GLIBCXX_3.4.8
GLIBCXX_3.4.9
GLIBCXX_3.4.10
GLIBCXX_3.4.11
GLIBCXX_3.4.12
GLIBCXX_3.4.13
GLIBCXX_FORCE_NEW
GLIBCXX_DEBUG_MESSAGE_LENGTH
[root@JT-T-KEYAN-001 cmake-3.14.7]# sudo find / -name "libstdc++.so*"
/usr/local/src/gcc-4.8.5/build/stage1-x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6
/usr/local/src/gcc-4.8.5/build/stage1-x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.19
/usr/local/src/gcc-4.8.5/build/stage1-x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so
/usr/local/src/gcc-4.8.5/build/x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6
/usr/local/src/gcc-4.8.5/build/x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.19
/usr/local/src/gcc-4.8.5/build/x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so
/usr/local/src/gcc-4.8.5/build/prev-x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6
/usr/local/src/gcc-4.8.5/build/prev-x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.19
/usr/local/src/gcc-4.8.5/build/prev-x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so
/usr/local/lib64/libstdc++.so.6
/usr/local/lib64/libstdc++.so.6.0.19
/usr/local/lib64/libstdc++.so
/usr/local/lib64/libstdc++.so.6.0.19-gdb.py
/usr/lib/gcc/x86_64-redhat-linux/4.4.4/32/libstdc++.so
/usr/lib/gcc/x86_64-redhat-linux/4.4.4/libstdc++.so
/usr/lib/vmware-tools/lib32/libstdc++.so.6
/usr/lib/vmware-tools/lib32/libstdc++.so.6/libstdc++.so.6
/usr/lib/vmware-tools/lib64/libstdc++.so.6
/usr/lib/vmware-tools/lib64/libstdc++.so.6/libstdc++.so.6
/usr/share/gdb/auto-load/usr/lib/libstdc++.so.6.0.13-gdb.pyc
/usr/share/gdb/auto-load/usr/lib/libstdc++.so.6.0.13-gdb.pyo
/usr/share/gdb/auto-load/usr/lib/libstdc++.so.6.0.13-gdb.py
/usr/share/gdb/auto-load/usr/lib64/libstdc++.so.6.0.13-gdb.pyc
/usr/share/gdb/auto-load/usr/lib64/libstdc++.so.6.0.13-gdb.pyo
/usr/share/gdb/auto-load/usr/lib64/libstdc++.so.6.0.13-gdb.py
/usr/lib64/libstdc++.so.6
/usr/lib64/libstdc++.so.6.0.13
[root@JT-T-KEYAN-001 cmake-3.14.7]#
查看当前 libstdc++.so.6 的使用版本:
[root@JT-T-KEYAN-001 cmake-3.14.7]# ls -al /usr/lib64/libstdc++.so.6
lrwxrwxrwx. 1 root root 19 3月 2 2014 /usr/lib64/libstdc++.so.6 -> libstdc++.so.6.0.13
[root@JT-T-KEYAN-001 cmake-3.14.7]#
把新版本拷贝到系统目录下
[root@JT-T-KEYAN-001 cmake-3.14.7]# cp /usr/local/lib64/libstdc++.so.6.0.19 /usr/lib64/
[root@JT-T-KEYAN-001 cmake-3.14.7]#
修改 libstdc++.so.6的软链接并删除旧版本
[root@JT-T-KEYAN-001 cmake-3.14.7]# rm -f /usr/lib64/libstdc++.so.6
[root@JT-T-KEYAN-001 cmake-3.14.7]# ln -s /usr/lib64/libstdc++.so.6.0.19 /usr/lib64/libstdc++.so.6
[root@JT-T-KEYAN-001 cmake-3.14.7]#
继续编译:
[root@JT-T-KEYAN-001 cmake-3.14.7]# ./bootstrap
[root@JT-T-KEYAN-001 cmake-3.14.7]# gmake
[root@JT-T-KEYAN-001 cmake-3.14.7]#
collect2: 错误:ld 返回 1
gmake[2]: *** [Utilities/cmcurl/curltest] 错误 1
gmake[1]: *** [Utilities/cmcurl/CMakeFiles/curltest.dir/all] 错误 2
gmake: *** [all] 错误 2
[root@JT-T-KEYAN-001 cmake-3.14.7]#
编译时指定 --system-curl
参数:
[root@JT-T-KEYAN-001 cmake-3.14.7]#
[root@JT-T-KEYAN-001 cmake-3.14.7]# ./bootstrap --system-curl
[root@JT-T-KEYAN-001 cmake-3.14.7]# gmake
[root@JT-T-KEYAN-001 cmake-3.14.7]# gmake install
[root@JT-T-KEYAN-001 cmake-3.14.7]#
[root@JT-T-KEYAN-001 cmake-3.14.7]# cmake --version
cmake version 3.14.7
CMake suite maintained and supported by Kitware (kitware.com/cmake).
[root@JT-T-KEYAN-001 cmake-3.14.7]#
再安装 libzip-1.5.2:
[root@JT-T-KEYAN-001 cmake-3.14.7]# cd ../
[root@JT-T-KEYAN-001 src]# rm -rf libzip-1.5.2
[root@JT-T-KEYAN-001 src]# tar -zxf libzip-1.5.2.tar.gz
[root@JT-T-KEYAN-001 src]#
[root@JT-T-KEYAN-001 src]# cd libzip-1.5.2
[root@JT-T-KEYAN-001 libzip-1.5.2]# mkdir build && cd build
[root@JT-T-KEYAN-001 build]#
[root@JT-T-KEYAN-001 build]# cmake ..
[root@JT-T-KEYAN-001 build]# make -j4
[root@JT-T-KEYAN-001 build]# make install
编译PHP遇到:
configure: error: off_t undefined; check your library configuration
vi /etc/ld.so.conf
添加以下内容
/usr/local/lib64
/usr/local/lib
/usr/lib
/usr/lib64
[root@JT-T-KEYAN-001 php-7.3.23]# vi /etc/ld.so.conf
重新编译:
[root@JT-T-KEYAN-001 php-7.3.23]# ./configure --prefix=/usr/local/php7 --exec-prefix=/usr/local/php7 --with-config-file-path=/usr/local/php7/etc --with-curl --with-freetype-dir --with-gd --with-gettext --with-iconv-dir --with-kerberos --with-libdir=lib64 --with-libxml-dir --with-mysqli --with-openssl --with-pcre-regex --with-pdo-mysql --with-pdo-sqlite --with-pear --with-png-dir --with-xmlrpc --with-xsl --with-zlib --with-zlib-dir --with-mhash --with-mcrypt --with-openssl-dir --with-jpeg-dir --enable-fpm --enable-bcmath --enable-libxml --enable-inline-optimization --enable-gd-native-ttf --enable-mbregex --enable-mbstring --enable-opcache --enable-pcntl --enable-shmop --enable-soap --enable-sockets --enable-sysvsem --enable-xml --enable-zip
Generating files
configure: creating ./config.status
creating main/internal_functions.c
creating main/internal_functions_cli.c
+--------------------------------------------------------------------+
| License: |
| This software is subject to the PHP License, available in this |
| distribution in the file LICENSE. By continuing this installation |
| process, you are bound by the terms of this license agreement. |
| If you do not agree with the terms of this license, you must abort |
| the installation process at this point. |
+--------------------------------------------------------------------+
Thank you for using PHP.
config.status: creating php7.spec
config.status: creating main/build-defs.h
config.status: creating scripts/phpize
config.status: creating scripts/man1/phpize.1
config.status: creating scripts/php-config
config.status: creating scripts/man1/php-config.1
config.status: creating sapi/cli/php.1
config.status: creating sapi/fpm/php-fpm.conf
config.status: creating sapi/fpm/www.conf
config.status: creating sapi/fpm/init.d.php-fpm
config.status: creating sapi/fpm/php-fpm.service
config.status: creating sapi/fpm/php-fpm.8
config.status: creating sapi/fpm/status.html
config.status: creating sapi/phpdbg/phpdbg.1
config.status: creating sapi/cgi/php-cgi.1
config.status: creating ext/phar/phar.1
config.status: creating ext/phar/phar.phar.1
config.status: creating main/php_config.h
config.status: executing default commands
configure: WARNING: unrecognized options: --with-mcrypt, --enable-gd-native-ttf
[root@JT-T-KEYAN-001 php-7.3.23]#
--with-mcrypt, --enable-gd-native-ttf
已经被弃用了,从编译参数中删除两项,重新编译:
[root@JT-T-KEYAN-001 php-7.3.23]# make clean
find . -name \*.gcno -o -name \*.gcda | xargs rm -f
find . -name \*.lo -o -name \*.o | xargs rm -f
find . -name \*.la -o -name \*.a | xargs rm -f
find . -name \*.so | xargs rm -f
find . -name .libs -a -type d|xargs rm -rf
rm -f libphp7.la sapi/cli/php sapi/cgi/php-cgi sapi/fpm/php-fpm modules/* libs/*
[root@JT-T-KEYAN-001 php-7.3.23]#
[root@JT-T-KEYAN-001 php-7.3.23]# ./configure --prefix=/usr/local/php7 \
--exec-prefix=/usr/local/php7 \
--with-config-file-path=/usr/local/php7/etc \
--with-curl \
--with-freetype-dir \
--with-gd \
--with-gettext \
--with-iconv-dir \
--with-kerberos \
--with-libdir=lib64 \
--with-libxml-dir \
--with-mysqli \
--with-openssl \
--with-pcre-regex \
--with-pdo-mysql \
--with-pdo-sqlite \
--with-pear \
--with-png-dir \
--with-xmlrpc \
--with-xsl \
--with-zlib \
--with-zlib-dir \
--with-mhash \
--with-openssl-dir \
--with-jpeg-dir \
--enable-fpm \
--enable-bcmath \
--enable-libxml \
--enable-inline-optimization \
--enable-mbregex \
--enable-mbstring \
--enable-opcache \
--enable-pcntl \
--enable-shmop \
--enable-soap \
--enable-sockets \
--enable-sysvsem \
--enable-xml \
--enable-zip
./configure通过后,make -j4 遇到:
/usr/local/src/php-7.3.23/ext/zip/php_zip.c:3341: 错误:‘LIBZIP_VERSION’未声明(在此函数内第一次使用)
make: *** [ext/zip/php_zip.lo] 错误 1
make: *** 正在等待未完成的任务....
在包含自 /usr/local/src/php-7.3.23/ext/zip/php_zip.h:31 的文件中,
从 /usr/local/src/php-7.3.23/ext/zip/zip_stream.c:29:
/usr/local/include/zip.h:59:21: 错误:zipconf.h:没有那个文件或目录
In file included from /usr/local/src/php-7.3.23/ext/zip/php_zip.h:31,
from /usr/local/src/php-7.3.23/ext/zip/zip_stream.c:29:
/usr/local/include/zip.h:258: 错误:expected specifier-qualifier-list before ‘zip_int64_t’
In file included from /usr/local/src/php-7.3.23/ext/zip/php_zip.h:31,
from /usr/local/src/php-7.3.23/ext/zip/zip_stream.c:29:
/usr/local/include/zip.h:285: 错误:expected specifier-qualifier-list before ‘zip_uint64_t’
/usr/local/include/zip.h:307: 错误:expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘zip_flags_t’
/usr/local/include/zip.h:309: 错误:expected declaration specifiers or ‘...’ before ‘*’ token
/usr/local/include/zip.h:309: 错误:expected declaration specifiers or ‘...’ before ‘zip_uint64_t’
/usr/local/include/zip.h:309: 错误:‘zip_int64_t’声明为返回一个函数的函数
/usr/local/include/zip.h:314: 错误:‘zip_add’声明为返回一个函数的函数
/usr/local/include/zip.h:315: 错误:‘zip_add_dir’声明为返回一个函数的函数
/usr/local/include/zip.h:316: 错误:expected declaration specifiers or ‘...’ before ‘zip_uint64_t’
/usr/local/include/zip.h:318: 错误:expected declaration specifiers or ‘...’ before ‘zip_uint64_t’
/usr/local/include/zip.h:319: 错误:expected declaration specifiers or ‘...’ before ‘zip_uint64_t’
/usr/local/include/zip.h:320: 错误:expected declaration specifiers or ‘...’ before ‘zip_uint64_t’
/usr/local/include/zip.h:323: 错误:expected declaration specifiers or ‘...’ before ‘zip_uint64_t’
/usr/local/include/zip.h:328: 错误:expected declaration specifiers or ‘...’ before ‘zip_uint64_t’
/usr/local/include/zip.h:329: 错误:expected declaration specifiers or ‘...’ before ‘zip_flags_t’
/usr/local/include/zip.h:329: 错误:‘zip_dir_add’声明为返回一个函数的函数
/usr/local/include/zip.h:342: 错误:expected declaration specifiers or ‘...’ before ‘zip_uint64_t’
/usr/local/include/zip.h:342: 错误:‘zip_error_to_data’声明为返回一个函数的函数
/usr/local/include/zip.h:346: 错误:expected declaration specifiers or ‘...’ before ‘zip_flags_t’
/usr/local/include/zip.h:346: 错误:‘zip_file_add’声明为返回一个函数的函数
/usr/local/include/zip.h:348: 错误:expected declaration specifiers or ‘...’ before ‘zip_uint64_t’
/usr/local/include/zip.h:348: 错误:expected declaration specifiers or ‘...’ before ‘zip_uint16_t’
/usr/local/include/zip.h:348: 错误:expected declaration specifiers or ‘...’ before ‘zip_flags_t’
/usr/local/include/zip.h:349: 错误:expected declaration specifiers or ‘...’ before ‘zip_uint64_t’
/usr/local/include/zip.h:349: 错误:expected declaration specifiers or ‘...’ before ‘zip_uint16_t’
/usr/local/include/zip.h:349: 错误:expected declaration specifiers or ‘...’ before ‘zip_uint16_t’
/usr/local/include/zip.h:349: 错误:expected declaration specifiers or ‘...’ before ‘zip_flags_t’
/usr/local/include/zip.h:350: 错误:expected declaration specifiers or ‘...’ before ‘zip_uint64_t’
/usr/local/include/zip.h:350: 错误:expected declaration specifiers or ‘...’ before ‘zip_uint16_t’
/usr/local/include/zip.h:350: 错误:expected declaration specifiers or ‘...’ before ‘zip_uint16_t’
/usr/local/include/zip.h:350: 错误:expected ‘;’, ‘,’ or ‘)’ before ‘*’ token
/usr/local/include/zip.h:351: 错误:expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘zip_file_extra_fields_count’
/usr/local/include/zip.h:352: 错误:expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘zip_file_extra_fields_count_by_id’
/usr/local/include/zip.h:353: 错误:expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token
/usr/local/include/zip.h:354: 错误:expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token
/usr/local/include/zip.h:355: 错误:expected declaration specifiers or ‘...’ before ‘zip_uint64_t’
/usr/local/include/zip.h:355: 错误:expected declaration specifiers or ‘...’ before ‘zip_uint32_t’
/usr/local/include/zip.h:355: 错误:expected declaration specifiers or ‘...’ before ‘zip_flags_t’
/usr/local/include/zip.h:357: 错误:expected declaration specifiers or ‘...’ before ‘zip_uint64_t’
/usr/local/include/zip.h:357: 错误:expected declaration specifiers or ‘...’ before ‘zip_flags_t’
/usr/local/include/zip.h:357: 错误:expected declaration specifiers or ‘...’ before ‘zip_uint8_t’
/usr/local/include/zip.h:357: 错误:expected declaration specifiers or ‘...’ before ‘zip_uint32_t’
/usr/local/include/zip.h:358: 错误:expected declaration specifiers or ‘...’ before ‘zip_uint64_t’
/usr/local/include/zip.h:358: 错误:expected declaration specifiers or ‘...’ before ‘zip_flags_t’
/usr/local/include/zip.h:359: 错误:expected declaration specifiers or ‘...’ before ‘zip_uint64_t’
/usr/local/include/zip.h:359: 错误:expected declaration specifiers or ‘...’ before ‘zip_flags_t’
/usr/local/include/zip.h:360: 错误:expected declaration specifiers or ‘...’ before ‘zip_uint64_t’
/usr/local/include/zip.h:360: 错误:expected declaration specifiers or ‘...’ before ‘zip_uint16_t’
/usr/local/include/zip.h:360: 错误:expected declaration specifiers or ‘...’ before ‘zip_flags_t’
/usr/local/include/zip.h:361: 错误:expected declaration specifiers or ‘...’ before ‘zip_uint64_t’
/usr/local/include/zip.h:361: 错误:expected declaration specifiers or ‘...’ before ‘zip_uint16_t’
/usr/local/include/zip.h:362: 错误:expected declaration specifiers or ‘...’ before ‘zip_uint64_t’
/usr/local/include/zip.h:362: 错误:expected declaration specifiers or ‘...’ before ‘zip_flags_t’
/usr/local/include/zip.h:362: 错误:expected declaration specifiers or ‘...’ before ‘zip_uint8_t’
/usr/local/include/zip.h:362: 错误:expected declaration specifiers or ‘...’ before ‘zip_uint32_t’
/usr/local/include/zip.h:363: 错误:expected declaration specifiers or ‘...’ before ‘zip_uint64_t’
/usr/local/include/zip.h:363: 错误:expected declaration specifiers or ‘...’ before ‘zip_flags_t’
/usr/local/include/zip.h:365: 错误:expected declaration specifiers or ‘...’ before ‘zip_flags_t’
/usr/local/include/zip.h:366: 错误:expected declaration specifiers or ‘...’ before ‘zip_flags_t’
/usr/local/include/zip.h:367: 错误:expected declaration specifiers or ‘...’ before ‘zip_uint64_t’
/usr/local/include/zip.h:367: 错误:expected declaration specifiers or ‘...’ before ‘zip_flags_t’
/usr/local/include/zip.h:368: 错误:expected declaration specifiers or ‘...’ before ‘zip_uint64_t’
/usr/local/include/zip.h:368: 错误:expected declaration specifiers or ‘...’ before ‘zip_flags_t’
/usr/local/include/zip.h:369: 错误:expected declaration specifiers or ‘...’ before ‘zip_uint64_t’
/usr/local/include/zip.h:369: 错误:‘zip_fread’声明为返回一个函数的函数
/usr/local/include/zip.h:370: 错误:expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘zip_fseek’
/usr/local/include/zip.h:371: 错误:‘zip_ftell’声明为返回一个函数的函数
/usr/local/include/zip.h:372: 错误:expected declaration specifiers or ‘...’ before ‘zip_flags_t’
/usr/local/include/zip.h:373: 错误:expected declaration specifiers or ‘...’ before ‘zip_flags_t’
/usr/local/include/zip.h:373: 错误:expected declaration specifiers or ‘...’ before ‘zip_flags_t’
/usr/local/include/zip.h:374: 错误:expected declaration specifiers or ‘...’ before ‘zip_uint64_t’
/usr/local/include/zip.h:374: 错误:expected declaration specifiers or ‘...’ before ‘zip_flags_t’
/usr/local/include/zip.h:375: 错误:expected declaration specifiers or ‘...’ before ‘zip_flags_t’
/usr/local/include/zip.h:375: 错误:‘zip_get_num_entries’声明为返回一个函数的函数
/usr/local/include/zip.h:376: 错误:expected declaration specifiers or ‘...’ before ‘zip_flags_t’
/usr/local/include/zip.h:376: 错误:‘zip_name_locate’声明为返回一个函数的函数
/usr/local/include/zip.h:380: 错误:expected declaration specifiers or ‘...’ before ‘zip_uint16_t’
/usr/local/include/zip.h:381: 错误:expected declaration specifiers or ‘...’ before ‘zip_flags_t’
/usr/local/include/zip.h:383: 错误:expected declaration specifiers or ‘...’ before ‘zip_uint64_t’
/usr/local/include/zip.h:383: 错误:expected declaration specifiers or ‘...’ before ‘zip_int32_t’
/usr/local/include/zip.h:383: 错误:expected declaration specifiers or ‘...’ before ‘zip_uint32_t’
/usr/local/include/zip.h:385: 错误:expected declaration specifiers or ‘...’ before ‘zip_uint64_t’
/usr/local/include/zip.h:386: 错误:expected declaration specifiers or ‘...’ before ‘zip_uint64_t’
/usr/local/include/zip.h:390: 错误:expected declaration specifiers or ‘...’ before ‘zip_uint64_t’
/usr/local/include/zip.h:391: 错误:expected declaration specifiers or ‘...’ before ‘zip_uint64_t’
/usr/local/include/zip.h:392: 错误:expected declaration specifiers or ‘...’ before ‘zip_uint64_t’
/usr/local/include/zip.h:393: 错误:expected declaration specifiers or ‘...’ before ‘zip_uint64_t’
/usr/local/include/zip.h:395: 错误:expected declaration specifiers or ‘...’ before ‘zip_source_callback’
/usr/local/include/zip.h:396: 错误:expected ‘)’ before ‘void’
/usr/local/include/zip.h:399: 错误:‘zip_source_make_command_bitmap’声明为返回一个函数的函数
/usr/local/include/zip.h:401: 错误:expected declaration specifiers or ‘...’ before ‘zip_uint64_t’
/usr/local/include/zip.h:401: 错误:‘zip_source_read’声明为返回一个函数的函数
/usr/local/include/zip.h:404: 错误:expected ‘)’ before ‘void’
/usr/local/include/zip.h:407: 错误:‘zip_source_tell’声明为返回一个函数的函数
/usr/local/include/zip.h:408: 错误:‘zip_source_tell_write’声明为返回一个函数的函数
/usr/local/include/zip.h:417: 错误:expected declaration specifiers or ‘...’ before ‘zip_uint64_t’
/usr/local/include/zip.h:417: 错误:‘zip_source_write’声明为返回一个函数的函数
/usr/local/include/zip.h:418: 错误:expected declaration specifiers or ‘...’ before ‘zip_uint64_t’
/usr/local/include/zip.h:418: 错误:expected declaration specifiers or ‘...’ before ‘zip_flags_t’
/usr/local/include/zip.h:418: 错误:expected declaration specifiers or ‘...’ before ‘zip_uint64_t’
/usr/local/include/zip.h:419: 错误:expected declaration specifiers or ‘...’ before ‘zip_flags_t’
/usr/local/include/zip.h:420: 错误:expected declaration specifiers or ‘...’ before ‘zip_uint64_t’
/usr/local/include/zip.h:420: 错误:expected declaration specifiers or ‘...’ before ‘zip_flags_t’
/usr/local/include/zip.h:423: 错误:expected declaration specifiers or ‘...’ before ‘zip_uint64_t’
/usr/local/src/php-7.3.23/ext/zip/zip_stream.c: 在函数‘php_zip_ops_read’中:
/usr/local/src/php-7.3.23/ext/zip/zip_stream.c:54: 错误:提供给函数‘zip_fread’的实参太多
/usr/local/src/php-7.3.23/ext/zip/zip_stream.c: 在函数‘php_zip_ops_stat’中:
/usr/local/src/php-7.3.23/ext/zip/zip_stream.c:171: 警告:传递‘zip_stat’的第 3 个参数时将整数赋给指针,未作类型转换
/usr/local/include/zip.h:419: 附注:需要类型‘struct zip_stat_t *’,但实参的类型为‘unsigned int’
/usr/local/src/php-7.3.23/ext/zip/zip_stream.c:171: 错误:提供给函数‘zip_stat’的实参太多
/usr/local/src/php-7.3.23/ext/zip/zip_stream.c:179: 错误:‘struct zip_stat’没有名为‘size’的成员
/usr/local/src/php-7.3.23/ext/zip/zip_stream.c:186: 错误:‘struct zip_stat’没有名为‘mtime’的成员
/usr/local/src/php-7.3.23/ext/zip/zip_stream.c:187: 错误:‘struct zip_stat’没有名为‘mtime’的成员
/usr/local/src/php-7.3.23/ext/zip/zip_stream.c:188: 错误:‘struct zip_stat’没有名为‘mtime’的成员
/usr/local/src/php-7.3.23/ext/zip/zip_stream.c: 在函数‘php_stream_zip_open’中:
/usr/local/src/php-7.3.23/ext/zip/zip_stream.c:237: 错误:提供给函数‘zip_fopen’的实参太多
/usr/local/src/php-7.3.23/ext/zip/zip_stream.c: 在函数‘php_stream_zip_opener’中:
/usr/local/src/php-7.3.23/ext/zip/zip_stream.c:323: 错误:提供给函数‘zip_fopen’的实参太多
make: *** [ext/zip/zip_stream.lo] 错误 1
[root@JT-T-KEYAN-001 php-7.3.23]#
刚才安装的 libzip
并未生效:
[root@JT-T-KEYAN-001 php-7.3.23]# cp /usr/local/lib/libzip/include/zipconf.h /usr/local/include/
[root@JT-T-KEYAN-001 php-7.3.23]# make clean && make -j4
[root@JT-T-KEYAN-001 php-7.3.23]# make install
拷贝原来的 PHP 配置文件:
[root@JT-T-KEYAN-001 php-7.3.23]# cp /usr/local/php71/etc/php-fpm.conf /usr/local/php7/etc/
[root@JT-T-KEYAN-001 php-7.3.23]#
[root@JT-T-KEYAN-001 php-7.3.23]# cp /usr/local/php71/etc/php-fpm.d/www.conf /usr/local/php7/etc/php-fpm.d/
[root@JT-T-KEYAN-001 php-7.3.23]#
[root@JT-T-KEYAN-001 php-7.3.23]# cp /usr/local/php71/etc/php.ini /usr/local/php7/etc/
启动PHP服务:
[root@JT-T-KEYAN-001 php-7.3.23]# /usr/local/php7/sbin/php-fpm
[root@JT-T-KEYAN-001 php-7.3.23]# ps aux|grep php-fpm
[root@JT-T-KEYAN-001 php-7.3.23]# ps aux|grep php-fpm
root 19565 0.0 0.0 223056 6580 ? Ss Oct17 0:00 php-fpm: master process (/usr/local/php7/etc/php-fpm.conf)
nginx 19566 0.0 0.1 227472 10532 ? S Oct17 0:00 php-fpm: pool www
nginx 19567 0.0 0.1 229400 10268 ? S Oct17 0:00 php-fpm: pool www
root 27820 0.0 0.0 103248 844 pts/1 S+ 19:58 0:00 grep php-fpm
[root@JT-T-KEYAN-001 php-7.3.23]#