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日志文件
运维网声明
1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网 享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com