ms133 发表于 2018-12-15 15:14:02

PHP5.5降版本到5.4.45,K哥

  2015.10.8
  PHP5.5降版本到5.4.45
  主管找到我,开发发现PHP5.5不支持某些插件
  需要把PHP降级到5.4.45
  OK,开始研究
  1、首先降级肯定要停网站,报给主管
  2、肯定不能用YUM,需要自己编译安装
  3、备份是必须要先做的
  OK,那先备份吧
  都需要备份什么呢
  MYSQL数据库、PHP配置文件、网站文件
  一定有人说了,需要备份这么多吗
  就怕万一啊,万一服务器磁盘坏了你找谁,找谁也没用的
  1、数据库备份,这是我喜欢的备份命令
  mysqldump -uroot -p密码 数据库名 >/root/back/数据库名-时间.sql
  2、 网站文件
  tar–zcvfkevin-时间.tar.gz/opt/kevin
  3、 nginx配置文件
  tar–zcvfnginxconf-时间.tar.gz/usr/local/nginx/conf/、
  我是K哥!
  4、 php配置文件
  tar–zcvfphp-fpm.d-时间.tar.gz /etc/php*
  /etc/php* 中包括 php.ini文件 php-fpm.d目录
  tar -zcvf php-fpm.conf-时间.tar.gz /usr/local/php/etc/php-fpm.conf
  OK,自行FTP下载
  

  
  删除PHP5.5
  先用YUM删吧
  yum remove php*
  看看还有PHP的什么东西吗
rpm -qa |grep php
如果有残留-e删除
  rpm –e php-
  1、安装PHP5.4
  安装各种插件
  yum install ncurses-devel libxml2-develbzip2-devel libcurl-devel curl-devel libjpeg-devel libpng-devel freetype-develnet-snmp-devel gcc gcc-c++
  
  2、安装mysql开发
  rpm –qa |grep mysql
  wgetftp://bo.mirror.garr.it/pub/1/slc/updates/slc6X/x86_64/RPMS/mysql-devel-5.1.69-1.el6_4.x86_64.rpm
  rpm –ivh mysql-devel-5.1.69
  
  3、安装libmcrypt-2.5.7.tar.gz
  wget ftp://mcrypt.hellug.gr/pub/crypto/mcrypt/attic/libmcrypt/libmcrypt-2.5.7.tar.gz
  tar xzvf libmcry*
cd libmcry*

  
  ./configure
  make
  make install
  /sbin/ldconfig
  cd libltdl/
  ./configure --enable-ltdl-install
  make
  make install
  我是K哥!
  ln -s /usr/lib64/mysql/libmysqlclient.so.16.0.0 /usr/lib/libmysqlclient.so
  4、安装ZendGuardLoader
  wget http://blog.ich8.com/wp-content/uploads/2013/06/ZendGuardLoader-70429-PHP-5.4-linux-glibc23-x86_64.tar.gz
  tar –zxvfZendGuardLoader
  mv ZendGuardLoader.so /usr/local/php/modules/
5、配置PHP支持 Zend Guard Loader
如果你备份了php.ini那么不需要配置了,如果你是新安装就编辑吧
编辑php.ini(/etc/php.ini )文件,在最后位置添加以下内容:

zend_extension=/usr/local/zend/ZendGuardLoader.so
; Enables loading encoded scripts. The default value is On
zend_loader.enable=1
  

  6、创建PHP-fpm用户和组,我这里是apache:www
  这后面涉及到网站文件安全,会有新博文讲网站安全
  groupadd www
  useradd apache -g www
  7、编译安装
  FTP上传PHP5.4.tar.gz,或者直接wget,我是因为很多台服务器,所以用的FTP
  tar -zxvf PHP5.4.tar.gz
  cd PHP5.4
  我是K哥!
  ./configure --prefix=/usr/local/php --with-config-file-path=/etc \
  --with-mysql=/usr/ --with-mysqli=/usr/bin/mysql_config \
  --with-pdo-mysql=/usr/bin/mysql --with-iconv-dir=/usr/local --enable-fpm \
  --disable-phar --with-fpm-user=apache \
  --with-fpm-group=www --with-pcre-regex \
  --with-zlib --with-bz2 --enable-calendar --with-curl --enable-dba --with-libxml-dir \
  --enable-ftp --with-gd --with-jpeg-dir --with-png-dir --with-zlib-dir --with-freetype-dir \
  --enable-gd-native-ttf --enable-gd-jis-conv --with-mhash --enable-mbstring --with-mcrypt \
  --enable-pcntl --enable-xml --disable-rpath --enable-shmop --enable-sockets --enable-zip--enable-cli --enable-pdo \
  --enable-bcmath --with-snmp --disable-ipv6 --enable-mbregex --enable-soap
  make
  make install
  8、恢复php配置文件
  FTP上传之前备份的配置文件
  cp php.ini /etc/php.ini
  cp php-fpm.conf /usr/local/php/etc/php-fpm.conf
  cp php-fpm.d /etc/
  我是K哥!
  

  9、启动PHP-FPM,检查并重启nginx
  /usr/local/php/sbin/php-fpm
  /usr/local/nginx/sbin/nginx –t
  /usr/local/nginx/sbin/nginx -s reload
  10、赠送环节,如果觉得命令麻烦,不如把PHP加入自启动
  配置PHP-FPM开机自启动
  vi /etc/init.d/php-fpm
  一般没有这个文件,直接vi创建就好,复制下面的命令到文件中
  #!/bin/bash
  #
  # Startup script for the PHP-FPM server.
  #
  # chkconfig: 345 85 15
  # description: PHP is an HTML-embedded scripting language
  # processname: php-fpm
  # config: /usr/local/php/etc/php.ini
  
  # Source function library.
  . /etc/rc.d/init.d/functions
  
  PHP_PATH=/usr/local
  DESC="php-fpm daemon"
  NAME=php-fpm
  # php-fpm路径
  DAEMON=$PHP_PATH/php/sbin/$NAME
  # 配置文件路径
  CONFIGFILE=$PHP_PATH/php/etc/php-fpm.conf
  # PID文件路径(在php-fpm.conf设置)
  PIDFILE=/var/run/php-fpm/php-fpm.pid
  SCRIPTNAME=/etc/init.d/$NAME
  
  # Gracefully exit if the package has been removed.
  test -x $DAEMON || exit 0
  
  rh_start() {
  $DAEMON -y $CONFIGFILE || echo -n " already running"
  }
  
  rh_stop() {
  kill -QUIT `cat $PIDFILE` || echo -n " not running"
  }
  
  rh_reload() {
  kill -HUP `cat $PIDFILE` || echo -n " can't reload"
  }
  
  case "$1" in
  start)
        echo -n "Starting $DESC: $NAME"
        rh_start
        echo "."
        ;;
  stop)
        echo -n "Stopping $DESC: $NAME"
        rh_stop
        echo "."
        ;;
  reload)
        echo -n "Reloading $DESC configuration..."
        rh_reload
        echo "reloaded."
  ;;
  restart)
        echo -n "Restarting $DESC: $NAME"
        rh_stop
        sleep 1
        rh_start
        echo "."
        ;;
  *)
           echo "Usage: $SCRIPTNAME {start|stop|restart|reload}" >&2
           exit 3
        ;;
  esac
  exit 0
  11、编辑好后保存,执行以下命令
  chmod +x /etc/init.d/php-fpm
  chkconfig php-fpm on
  12、完成!可以使用以下命令管理php-fpm了
  service php-fpm start
  service php-fpm stop
  service php-fpm restart
  13、验证操作
  打开所有网站检查,并查看PHP日志文件
  


  


  




页: [1]
查看完整版本: PHP5.5降版本到5.4.45,K哥