阿里云轻应用升级php7.3

继上次为主要服务器升级好php7.3之后一直就在没有用到升级的步骤,时间久了就忘记了怎么做的,这次在为另外一台wordpress安装ssl的插件时被提示php的版本太低,于是我要在香港的服务器上升级php到7.3。网络上有网名古修的大神给出了教程,我就是照着他的做的,你可以简单的把之前的sh脚本文件拿来执行一遍,也可以一步一步慢慢学着做,具体的步骤归纳在下面:

安装依赖:有些依赖文件需要事先yum install到实例

yum install -y libxml2-devel openssl-devel  curl-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel xslt libxslt-devel
yum update -y curl curl-devel
yum remove -y libzip

配置SWAP:我的轻应用服务器的内存只有512M,不到1G,需要在这里配置一下交换文件区来作为缓存暂存

dd if=/dev/zero of=/swap bs=1M count=2048
mkswap -f /swap
swapon /swap

安装libzip以及做Ln软链接:PHP7.3要求libzip版本大于0.11,但yum安装版本达不到要求,所以这里手动编译一下,该项不满足报错对应如下:
checking for libzip... configure: error: system libzip must be upgraded to version >= 0.11

wget https://nih.at/libzip/libzip-1.2.0.tar.gz
tar -zxvf libzip-1.2.0.tar.gz
cd libzip-1.2.0
./configure
make && make install

编译好后还需要做一下软连接,否则会提示报错找不到zipconf.h文件

ln -s /usr/local/lib/libzip/include/zipconf.h /usr/local/include

编译安装php:

wget https://www.php.net/distributions/php-7.3.9.tar.gz
tar -xvf php-7.3.9.tar.gz
cd php-7.3.9
./configure --prefix=/usr/local/php73  --enable-soap --enable-cgi --with-mysql=/usr/local/mysql --with-mysqli=mysqlnd --with-gd --with-pdo-mysql=mysqlnd --with-zlib --enable-zip --enable-fpm --without-pear --disable-phar --with-openssl --enable-mbstring=all --with-jpeg-dir=/usr --with-png-dir=/usr --with-curl --with-freetype-dir=/usr --enable-gd-native-ttf --with-xsl=/usr --enable-calendar --enable-exif --enable-ftp --with-iconv --enable-bcmath --with-mcrypt=/usr/local/libmcrypt --enable-opcache
make && make install

以上是下载php7.3.9,接下来要对其进行编译,这需要一点时间,我是22:18PM开始执行的,到大概22:35PM完毕,总耗时17分钟

# 将启动脚本复制到init.d中,${PHP73}对应是源码解压的目录
cp ${PHP73}/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm73
# 给启动脚本加上执行权限
chmod +x /etc/init.d/php-fpm73
# 将默认配置文件复制为.conf文件
cp /usr/local/php73/etc/php-fpm.conf.default ${PHP73_DIR}/etc/php-fpm.conf
# 添加pool的配置
cat << EOF > /usr/local/php73/etc/php-fpm.d/www.conf
[www]
listen = /home/www/logs/php73-fpm.sock
listen.mode = 0666
user = www
group = www
pm = dynamic
pm.max_children = 128
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 15
pm.max_requests = 300
rlimit_files = 1024
slowlog = /home/www/logs/php73-fpm-slow.log
EOF

至此PHP已经编译配置完成,接下来需要修改apache使用新版的php

修改php:阿里云的wordpress应用镜像中默认是用的php-fpm,使用的是socket方式的监听,Apache对应配置文件/usr/local/apache/conf/httpd.conf,可以看到其中配置如下

vi /usr/local/apache/conf/httpd.conf
image
Apache对应配置文件

我们只需要修改其中socket的文件路径指向到新版本的PHP就可以了,在/usr/local/php73/etc/php-fpm.d/www.conf有指定,新的配置到/home/www/logs/php73-fpm.sock即可,如图

image
替换为php7.3-fpm的位置

重启php服务

# 停止旧版本的PHP(停止可以减少一些系统资源占用,不停也行)
/etc/init.d/php-fpm stop
# 启动新版PHP-FPM
/etc/init.d/php-fpm73 start
# 重启apache
/etc/init.d/apachectl restart

验证php版本信息

站点根目录是/home/www/htdocs/,放入phpinfo探针即可检测PHP版本

touch /home/www/htdocs/phpinfo
#用vi在phpinfo里面放入探针
<?php
phpinfo();
?>
#按ESC退出编辑后,wp保存并退出
#把phpinfo修改成为phpinfo.php
cp /home/www/htdocs/phpinfo /home/www/htdocs/phpinfo.php
#在浏览器输入主页地址后面加上/phpinfo.php查看php信息,如下:
image

一键执行脚本文件(下载后解压,文件为.sh文件,在bash下执行)

修改php上传文件大小限制

脚本执行完后/root里面没有php-7.3.9文件夹,自然也就没有php.ini文件,需要把php.ini-development这个文件复制到/usr/local/php73/lib命名为php.ini,我已经有现成的php.ini文件,直接cp到/usr/local/php73/lib/php.ini,修改upload_max_filesize之后,重新启动服务器就可以了

cp /root/php-7.3.9/php.ini-development /usr/local/php73/lib/php.ini
vi /usr/local/php73/lib/php.ini   #修改php.ini里面的upload_max_filesize,把2M改成自己需要的大小
upload_max_filesize = 5000M # 修改为5000M
/etc/init.d/apachectl restart  #重启apache