Linux下手动将php5 升级到 7

注:看这篇文章之前,请先确保你有一定服务器的操作知识和一定的php基础,不然的话清尽量找相对熟悉的人指导操作,如果升级中发生任何不可挽回的问题,本人不对其负任何责任。

下载你需要的php版本并解压

我下载的是7.3.4版本

wget http://cn2.php.net/distributions/php-7.3.4.tar.gz
tar zxvf php-7.3.4.tar.gz
cd php-7.3.4

准备安装

生成配置文件

[root@ php-7.3.4]# ./buildconf
buildconf: checking installation...
buildconf: autoconf version 2.69 (ok)
rebuilding aclocal.m4
rebuilding configure
rebuilding main/php_config.h.in

开始配置

下面这条命令是配置php7的安装明细,你需要关心以下几点:

  • 我升级php7是为了支持wordpress
  • 核心的模块是
  • mysql[可选]
  • mysqli
  • pdo-mysql
  • 当前配置 php-fpm 用户组是www,你可以根据你机器的情况再进行修改
[root@ php-7.3.4]# ./configure --prefix=/usr/local/php --exec-prefix=/usr/local/php --bindir=/usr/local/php/bin --sbindir=/usr/local/php/sbin --includedir=/usr/local/php/include --libdir=/usr/local/php/lib/php --mandir=/usr/local/php/php/man --with-config-file-path=/usr/local/php/etc --with-mysql-sock=/var/run/mysql/mysql.sock --with-mcrypt=/usr/include --with-mhash --with-openssl --with-mysql=shared,mysqlnd --with-mysqli=shared,mysqlnd --with-pdo-mysql=shared,mysqlnd --with-gd --with-iconv --with-zlib --enable-zip --enable-inline-optimization --disable-debug --disable-rpath --enable-shared --enable-xml --enable-bcmath --enable-shmop --enable-sysvsem --enable-mbregex --enable-mbstring --enable-ftp --enable-gd-native-ttf --enable-pcntl --enable-sockets --with-xmlrpc --enable-soap --without-pear --with-gettext --enable-session --with-curl  --with-jpeg-dir --with-freetype-dir --enable-opcache --enable-fpm --enable-fastcgi --with-fpm-user=www --with-fpm-group=www --without-gdbm --disable-fileinfo

该配置执行后,需要结果中没有报错,才算成功(不算warning)。
如果碰到了问题,就根据问题解决问题,我碰到了如下的问题:

  • libzip版本不对

开始编译和安装

执行下面代码

[root@ php-7.3.4]# make clean && make && make install

该过程根据网速时间可能会比较长。
该安装执行后,结果中没有报错,才算成功。
完成后需要执行 make test 来进行安装检验,这里没碰到问题,所以这里不做深究。
如果碰到了问题,就根据问题解决问题,我碰到了如下的问题:

  • cp: cannot stat `ext/phar/phar.phar’: No such file or directory

验证模块是否安装到对应目录

上面提到了几个核心模块:

  • mysql[可选]
  • mysqli
  • pdo-mysql

如果你没有特殊做配置,文件一般在 /usr/local/php/lib/php/extensions/no-debug-non-zts-xxxxx 下面
可以参考下图:

配置文件

主要需要配置以下文件

  • php.ini
  • php-fpm.conf
  • www.conf
[root@ php-7.3.4]# cp php.ini-production /usr/local/php/etc/php.ini
[root@ php-7.3.4]# cp /root/php-src-master/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
[root@ php-7.3.4]# cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
[root@ php-7.3.4]# cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf

php.ini

需要将上面的核心模块在 php.ini 中设置为开启,将下面代码添加到