Red Hat 5.6-64位使用yum升级PHP

最近给一台服务器升级PHP,默认安装的系统是RedHat Linux Enterpris(企业版)5.6, 自带的PHP5.1.6,mysql5.0.9,但安装最新的phpMyAdmin要求PHP最低都要5.2版本。所以要升级PHP

网上找了很多地方,终于找到一个捷径:使用yum升级PHP到最新版本。

众所周知,RedHat企业版不注册是不能使用YUM的。那么下面从网上摘抄的一段文章来帮你解决这个问题。

CentOS/RHEL 5.6php版本默认为php-5.1.6,但是在php-5.2.9版本之前的php都存在一个漏洞,但是目前网上很多地方都无法使用yum update php*升级到新版本,经过多方的搜索资料,终于找到一种升级CentOS/RHEL 5.6php到新版本的方法。

Centos上安装PHP一般来说有两种做法,要不通过wget下载安装文件,手动安装。要不通过源repo安装。

CentOS上的安装源有好几个(参加如下)官方的CentOS-Base.repo更新太迟缓,不太好用,比如官方的repo就没有php-sqlite的源。

一般来说,推荐使用REMI的源,更新快,文件充分。

下面的两个链接都是可以的,这里我用的是第一个链接下载的remi源的

(1)下载

wget http://dl.iuscommunity.org/pub/ius/stable/Redhat/5/x86_64/epel-release-5-4.noarch.rpm

wget http://rpms.famillecollet.com/enterprise/remi-release-5.rpm

或用下面的链接下载也行的

wget http://mirrors.yun-idc.com/epel/5/x86_64/epel-release-5-4.noarch.rpm

wget http://rpms.famillecollet.com/el5.x86_64/remi-release-5-9.el5.remi.noarch.rpm

 

32位的如下:

wget http://mirrors.yun-idc.com/epel/5/i386/epel-release-5-4.noarch.rpm

wget http://rpms.famillecollet.com/el5.i386/remi-release-5-9.el5.remi.noarch.rpm

(1)安装

Ø安装之前可以先看一下这个两个包会安装哪些包及路径

144218159.png

Ø 安装下载好的remi源的两个包

rpm -Uvh epel-release-5-4.noarch.rpm

rpm -Uvh remi-release-5.rpm

150310584.png

这样就安装完这样就安装了Remi repository在你的系统上,RHEL5的用remi-release-5.rpmRHEL6的用remi-release-6.rpm,其它地方一样。

Ø 然后需要编辑/etc/yum.repos.d/remi.repo

vi /etc/yum.repos.d/remi.repo

 

Ø 启用Remi Repository修改enabled=0enabled=1。【只修改将[remi]中的enabled=0改成enabled=1来启用remi 源】

再在这个文件的最后增加一行:

priority=1

保存退出。

/etc/yum.repos.d/epel.re/etc/yum.repos.d/epel-testing.repo这两个文件也按照上面的方法进行编辑!只在最后一行添加priority=1

然后导入DAGPGP Key:

rpm –import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL

rpm –import /etc/pki/rpm-gpg/RPM-GPG-KEY-remi

3)升级PHP到新版本

  之后就可以升级php了。经过测试,如果单独升级php可能会提示失败,这样的话连同mysql一起升级就没问题了,所以我们必须执行以下命令才能升级php。记得安装后才用update

yum --enablerepo=remi update php* mysql*

到现在为止php已经是5.4.17mysql已经是5.5.32的了

4升级后可能的问题

无法启动mysql服务,切换到数据库的目录下

[root@utooo-anhui ~]# cd /var/lib/mysql/

在数据库的目录会生成一个错误的err文件

144239133.png

查看那个生成的err文件可以看到有提示下面的错误:

[ERROR] /usr/libexec/mysqld: unknown option '--skip-locking'

到配置文件里注释掉那个错误的选项

vi /etc/my.cnf

# Here follows entries for some specific programs

# The MySQL server

[mysqld]

port= 3306

socket= /var/lib/mysql/mysql.sock

#skip-locking//把这个前面加个“#”号或去掉

key_buffer = 384M

max_allowed_packet = 1M

table_cache = 512

sort_buffer_size = 2M

read_buffer_size = 2M

read_rnd_buffer_size = 8M

myisam_sort_buffer_size = 64M

thread_cache_size = 8

query_cache_size = 32M

# Try number of CPU's*2 for thread_concurrency

thread_concurrency = 8

max_connections = 1024

改完之后,就可以启动mysql的服务了。