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 –zcvf kevin-时间.tar.gz /opt/kevin
3、 nginx配置文件
tar –zcvf nginxconf-时间.tar.gz /usr/local/nginx/conf/、
我是K哥!
4、 php配置文件
tar –zcvf php-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
wget ftp://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 –zxvf ZendGuardLoader
mv ZendGuardLoader.so /usr/local/php/modules/
5、配置PHP支持 Zend Guard Loader
如果你备份了php.ini那么不需要配置了,如果你是新安装就编辑吧
编辑php.ini(/etc/php.ini )文件,在最后位置添加以下内容:
[Zend Guard]
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日志文件
共同学习,写下你的评论
评论加载中...
作者其他优质文章