定时自动升级PHP的shell脚本【已验证】 - 开发说
当前位置: 主页 » PHP » 定时自动升级PHP的shell脚本【已验证】

定时自动升级PHP的shell脚本【已验证】

      2017年07月13日   阅读 1,739 次     0 评论   Tags: · ·

大家都知道,运维人员都是很懒的,最懒的程序猿才是最好的程序员,因为服务器环境是LNMP,nginx和mariadb都是yum安装所以做一个定时的yum update -y即可更新,PHP是编译安装,所以不能自动更新,就写了这个脚本,自动更新PHP的脚本,脚本其实很简单,就是判断你服务器上面所保存的PHP源文件版本号+0.0.1,然后下载新版本,自动编译安装新版本,假如你当前的版本号为php-7.1.6,那么升级以后版本号为php-7.1.7,同分支升级,因为PHP有7和5版本。

注意:此脚本不会改变原有的编译参数,未加编译失败回滚功能,请勿在线上环境测试。折腾帝除外,23333 此脚本只适用于/usr/local/src目录下仅有一个PHP的tar.gz包,因为未加遍历PHP包比较大小功能。因本脚本引起的任何问题,本博客以及本人,概不负责~~~

#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH

#Date:2017/7/14    version:1.0


#PHP安装包存放目录
DIR="/usr/local/src"

#查找PHP tar.gz包
PHPOLD=`/usr/bin/ls  /usr/local/src |grep gz`

#截取包版本号最后一位
TMP=${PHPOLD:8:1}

#获取当前版本完整的解压包,以进行PHP无缝升级
PHPOLDDIR="/usr/local/src/php-7.1.$TMP"


#下载最新版的PHP tar.gz包
cd $DIR
wget  http://php.net/distributions/php-7.1.$[TMP+1].tar.gz

PHPNEW="/usr/local/src/php-7.1.$[TMP+1].tar.gz"

#新的PHP版本解压目录
PHPNEWDIR="/usr/local/src/php-7.1.$[TMP+1]"

#判断是否下载了最新版的PHP tar.gz包

if [ -f "$PHPNEW" ]; then

   #备份PHP文件以方便安装失败回滚
   cp -a /usr/local/php  /usr/local/php.bak
   
   #开始无缝升级:参考URL:https://www.kaifashuo.com/archives/45/   
   cd $DIR
   tar xf $PHPNEW
   cp $PHPOLDDIR/config.nice  $PHPNEWDIR
   
   cd $PHPNEWDIR

   ./config.nice && make && make install

   systemctl restart php-fpm

   cd $DIR
   #删除旧的压缩包文件
   rm -rf $PHPOLD
   #删除旧的PHP解压包
   rm -rf $PHPOLDDIR

fi
   
   #如果重启失败,判断PHP-fpm进程是否存在,如果不存在说明升级失败,设置回滚
CK=`ps -ef | grep php-fpm | grep -v grep | wc -l`;

if [ $CK == 0 ];then

   rm -rf /usr/local/php
   cp -a /usr/local/php.bak  /usr/local/php   
   systemctl restart php-fpm
   
fi

exit

给脚本执行权限:

chmod +x upgradephp.sh

给脚本做定时任务:每天凌晨4点自动检测是否有新的PHP版本,如果有,下载并自动更新PHP版本。
0 4 * sh /root/upgradephp.sh

  • 版权声明:本文版权归开发说和原作者所有,未经许可不得转载。文章部分来源于网络仅代表作者看法,如有不同观点,欢迎进行交流。除非注明,文章均由 开发说 整理发布,欢迎转载,转载请带版权。

  • 来源:开发说 ( https://www.kaifashuo.com/ ),提供主机优惠信息深度测评和服务器运维编程技术。
  • 链接:https://www.kaifashuo.com/91.html
  • 评论(0

    1. 还没有任何评论,你来说两句吧

    发表回复

    您的邮箱地址不会被公开。 必填项已用 * 标注