wordpress轻量应用服务器升级php版本

本文涉及的产品
RDS AI 助手,专业版
RDS MySQL DuckDB 分析主实例,基础系列 4核8GB
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
简介: 轻量应用服务器wordpress镜像默认使用php5.6版本,wordpress使用4.8.1。但是近期wordpress更新了版本,要求PHP版本不低于7.3,导致无法正常使用新版本wordpress,本文介绍如何手动编译更新PHP到7.3。

注意事项

  • 建议使用默认的环境操作
  • Wordpress镜像用的是4.8.1这个版本

安装依赖

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

如果内存是低于1GB的,则需要配置一下swap,编译过程需要依赖更多内存,内存太低会报错

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

安装libzip

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

这个编译过程会比较长,编译完成后修改一下配置文件

# 将启动脚本复制到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

修改apache

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

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

重启服务

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

验证

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

至此轻量应用服务器wordpress镜像更新PHP版本操作已完成,可以愉快的更新wordpress到新版本了。为了操作更简单,这里总结成了一个脚本,可以复制到主机内一键执行

#!/bin/bash
WORKDIR=/tmp/
PHP73_DIR=/usr/local/php73
DEFAULT_SWAP=0

createSwap(){
  if [ `cat /proc/meminfo | grep SwapTotal | awk -F " " '{print $2}'` -ne 0 ]
  then
    return 0
  fi
  if [ `cat /proc/meminfo | grep MemTotal | awk -F " " '{print $2}'` -le 1048576 ]
  then
    echo "Mem lower than 1GB,creating swap..."
    dd if=/dev/zero of=/swap bs=1M count=2048
    mkswap -f /swap
    swapon /swap && echo "SWAP create success."
    DEFAULT_SWAP=1
  fi
}

installDependence(){
  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
}

compileLibzip(){
  echo "start install libzip."
  cd ${WORKDIR}
  if [ -f libzip-1.2.0.tar.gz ]
  then
    rm -rf libzip-1.2.0.tar.gz
  fi
  wget https://code.aliyun.com/yh11/download/raw/master/libzip-1.2.0.tar.gz
  tar -zxvf libzip-1.2.0.tar.gz
  cd libzip-1.2.0
  ./configure
  make && make install
  if [ $? -ne 0 ]
  then
    echo "libzip install failed."
    exit 127
  fi
  ln -s /usr/local/lib/libzip/include/zipconf.h /usr/local/include
}

installPHP(){
  echo "Install PHP 7.3"
  cd ${WORKDIR}
  if [ -f php-7.3.9.tar.gz ]
  then
    rm -rf php-7.3.9.tar.gz
  fi
  wget https://code.aliyun.com/yh11/download/raw/master/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
  if [ $? -ne 0 ]
  then
    echo "PHP install failed."
    exit 127
  fi
  cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm73
  cp ${PHP73_DIR}/etc/php-fpm.conf.default ${PHP73_DIR}/etc/php-fpm.conf
  chmod +x /etc/init.d/php-fpm73
}

createConfig(){

cat << EOF > ${PHP73_DIR}/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

}

modifyApache(){
  sed -i 's#ProxyPassMatch ^/(.*\.php(/.*)?)$ unix:/home/www/logs/php-fpm.sock|fcgi://127.0.0.1/home/www/htdocs#ProxyPassMatch ^/(.*\\.php(/.*)?)$ unix:/home/www/logs/php73-fpm.sock|fcgi://127.0.0.1/home/www/htdocs#g' /usr/local/apache/conf/httpd.conf
}

restartService(){
  chkconfig php-fpm off
  chkconfig php-fpm73 on
  /etc/init.d/php-fpm stop
  /etc/init.d/php-fpm73 start
  /etc/init.d/apachectl restart
}

delSwap(){
  if [ ${DEFAULT_SWAP} -eq 1 ]
  then
    swapoff /swap
    rm -rf /swap
  fi
}

createSwap
installDependence
compileLibzip
installPHP
createConfig
modifyApache
restartService
delSwap
目录
相关文章
|
6月前
|
负载均衡
轻量应用服务器升级套餐配置总结
在升级轻量应用服务器前,请先创建云盘快照备份数据。登录控制台,选择目标服务器,进入升级页面,阅读注意事项并选择新套餐配置,确认服务协议后完成支付。升级后需等待服务器重启,若系统盘容量变化,还需手动扩容分区。注意中国香港机房有特殊限制,续费时负载均衡会一并续费,操作时请以控制台提示为准。
|
7月前
|
Ubuntu 安全 小程序
服务器版本的CentOS和Ubuntu哪个更适合你?
但是以上的比较并不说明Ubuntu是不稳定的或者是不安全的,只是以上比较过程中,在稳定性方面Ubuntu稍微逊色了一点。由于Ubuntu在个人桌面电脑的使用率远远高于CentOS,用Ubuntu搭建服务器,如果遇到什么问题,寻找解决方案相对比较容易,这让Ubuntu在选择方面更优于CentOS。如果你是一个初学者,那么毫无疑问Ubuntu是更适合的选择。如果你正在经营自己的公司,在这两者之间,CentOS会更好一些。
|
运维 Prometheus 监控
如何在测试环境中保持操作系统、浏览器版本和服务器配置的稳定性和一致性?
如何在测试环境中保持操作系统、浏览器版本和服务器配置的稳定性和一致性?
|
9月前
|
Ubuntu Linux 数据中心
阿里云服务器纯净版系统解析:公共镜像版本特性与选择指南参考
当我们选购阿里云服务器时,系统镜像的选择至关重要。阿里云为用户提供了多种系统镜像,包括公共镜像、自定义镜像、共享镜像、云市场镜像和社区镜像。其中,公共镜像为纯净版系统,这些系统皆已正版授权,旨在为ECS实例上的应用程序提供安全、稳定的运行环境。本文将为大家详细汇总阿里云服务器纯净版系统及最新的系统版本,以供大家了解和选择。
|
8月前
|
存储 Ubuntu 安全
如何在服务器上快速安装 ERPNext 最新版本?
ERPNext 是一款开源且功能全面的企业资源规划软件,在企业信息化管理中广泛应用。本文介绍如何通过 Websoft9 控制台安装其最新版本,以提升部署效率。内容涵盖安装前的服务器准备、Websoft9 控制台登录,到通过应用市场安装 ERPNext 的详细步骤,以及安装后的验证与基础配置。帮助企业快速搭建稳定高效的信息化管理平台,满足财务、采购、销售、库存等多方面业务需求,助力企业降本增效,实现可持续发展。
|
IDE 网络安全 开发工具
IDE之pycharm:专业版本连接远程服务器代码,并配置远程python环境解释器(亲测OK)。
本文介绍了如何在PyCharm专业版中连接远程服务器并配置远程Python环境解释器,以便在服务器上运行代码。
5431 0
IDE之pycharm:专业版本连接远程服务器代码,并配置远程python环境解释器(亲测OK)。
|
域名解析 网络协议 数据安全/隐私保护
阿里云轻量应用服务器搭建WordPress个人博客教程
阿里云轻量应用服务器搭建WordPress个人博客教程
|
安全 C#
【Azure 应用服务】在安全漏洞扫描中发现有泄露服务器IIS版本的情况,如何实现屏蔽服务版本号信息呢?
【Azure 应用服务】在安全漏洞扫描中发现有泄露服务器IIS版本的情况,如何实现屏蔽服务版本号信息呢?
662 1
|
弹性计算 云计算
云服务器 ECS产品使用问题之如何更新游戏服务端版本
云服务器ECS(Elastic Compute Service)是各大云服务商阿里云提供的一种基础云计算服务,它允许用户租用云端计算资源来部署和运行各种应用程序。以下是一个关于如何使用ECS产品的综合指南。
|
并行计算 Ubuntu 算法
Ubuntu18 服务器 更新升级CUDA版本 pyenv nvidia ubuntu1804 原11.2升级到PyTorch要求12.1 全过程详细记录 apt update
Ubuntu18 服务器 更新升级CUDA版本 pyenv nvidia ubuntu1804 原11.2升级到PyTorch要求12.1 全过程详细记录 apt update
481 0