Chinaunix首页 | 论坛 | 博客
  • 博客访问: 32181
  • 博文数量: 21
  • 博客积分: 707
  • 博客等级: 上士
  • 技术积分: 237
  • 用 户 组: 普通用户
  • 注册时间: 2007-07-15 12:48
文章分类

全部博文(21)

文章存档

2011年(21)

分类: LINUX

2011-03-14 17:37:59

Come from :

Summary

This guide describes how to upgrade the standard PHP 5.1.x packages in CentOS 5.x 32-bit to the current development versions 5.2.x. These instructions were created using CentOS 5.3 32-bit and with the following PHP packages installed:

# rpm -qa |grep 
php php-common-5.1.6-15.el5.i386 
php-cli-5.1.6-15.el5.i386 php-5.1.6-15.el5.i386 
php-pdo-5.1.6-15.el5.i386 
php-bcmath-5.1.6-15.el5.i386 
php-ldap-5.1.6-15.el5.i386 
php-devel-5.1.6-15.el5.i386 
php-gd-5.1.6-15.el5.i386 
php-xml-5.1.6-15.el5.i386 
php-mbstring-5.1.6-15.el5.i386 
php-mysql-5.1.6-15.el5.i386 
php-dba-5.1.6-15.el5.i386

As long as you're using the standard PHP packages on your CentOS server you won't need to do anything extra. If you're using extra PHP packages that aren't part of the standard CentOS repositories (like php-mcrypt) you'll have to remove them or find updated versions of them.

Add the development repositories

First thing we need to do is add the development repositories to yum. When we add the development repository we're going to configure it so it only pulls PHP packages. To start we'll need create a new yum repository configuration file (use your favorite editor):

# /etc/yum.repos.d/CentOS-Testing.repo

Copy/paste the following into this file:

# CentOS-Testing: 
# !!!! CAUTION !!!! 
# This repository is a proving grounds for packages on their way to CentOSPlus and CentOS Extras. 
# They may or may not replace core CentOS packages, and are not guaranteed to function properly. 
# These packages build and install, but are waiting for feedback from testers as to 
# functionality and stability. Packages in this repository will come and go during the 
# development period, so it should not be left enabled or used on production systems without due # consideration. 
[c5-testing] 
name=CentOS-5 Testing 
baseurl=http://dev.centos.org/centos/$releasever/testing/$basearch/ 
enabled=1 
gpgcheck=1 
gpgkey=http://dev.centos.org/centos/RPM-GPG-KEY-CentOS-testing 
includepkgs=php*

Make sure to remove any spaces at the start of each line, then save and close the file and you're done.

Update PHP packages

Before updating your PHP packages you'll want to get a list of what you currently have installed. To get a list of current PHP packages run the following:

# rpm -qa |grep php

Now you can use yum to update the PHP packages on your system:

# yum update

You should be shown a list of packages that are going to be updated. Compare it to the list of PHP packages on your system. Note any packages that are not in the list. You'll need to remove these packages or find updates for them because they won't work after you update to PHP 5.2.x. If that is acceptable type "y" to continue and let yum update the packages.

Once yum has completed restart Apache:

# service httpd restart

To verify the update is working create a simple testing.php in your www directory with the following source code:

phpinfo(); ?>

and open it in a web browser. The new PHP version should be reflected at the top of the page.

Conclusion

You should now have PHP 5.2.6 running on CentOS 5.3 32-bit.

# rpm -qa |grep php 
php-cli-5.2.6-2.el5s2 
php-mbstring-5.2.6-2.el5s2 
php-devel-5.2.6-2.el5s2 
php-pdo-5.2.6-2.el5s2 
php-gd-5.2.6-2.el5s2 
php-dba-5.2.6-2.el5s2 
php-common-5.2.6-2.el5s2 
php-bcmath-5.2.6-2.el5s2 
php-xml-5.2.6-2.el5s2 
php-pear-1.5.1-2.el5s2 
php-ldap-5.2.6-2.el5s2 
php-5.2.6-2.el5s2 
php-mysql-5.2.6-2.el5s2 

# php -v PHP 5.2.6 (cli) (built: Sep 15 2008 20:42:05) Copyright (c) 1997-2008 The PHP Group Zend Engine v2.2.0, Copyright (c) 1998-2008 Zend Technologies

Note: If your "php -v" output returns errors about PDO or JSON 

Extras

Updating/Installing mcrypt

If you have php-mcrypt for PHP 5.1.x installed you'll want to remove it:

Note: Your version number maybe different. Alter below command accordingly.

rpm -e php-mcrypt-5.1.6-15.el5.centos.1

Download php-mcrypt for PHP 5.2.x and install it. You can find a 32-bit php-mcrypt package here .

Note: You'll notice the "--nodeps" flag in the example. When you try to install php-mcrypt without it you get an error that php-common-5.2.6-2.el5s2 is missing even though it is installed.

wget -c rpm -i --nodeps php-mcrypt-5.2.6-2.i386.rpm

Restart Apache and you should now see mcrypt information on your testing.php page.

JSON and PDO being loaded twice

When you run the command "php -v" you might see the following errors:

# php -v PHP Warning: Module 'json' already loaded in Unknown on line 0 PHP Warning: Module 'PDO' already loaded in Unknown on line 0 PHP 5.2.6 (cli) (built: Sep 15 2008 20:42:05) Copyright (c) 1997-2008 The PHP Group Zend Engine v2.2.0, Copyright (c) 1998-2008 Zend Technologies

This is caused by the following two lines in the /etc/php.ini file:

; Extension JSON extension=json.so ; Extension PDO extension=pdo.so

Comment out these lines by adding a ";" in front of "extension=". These two modules are already loaded via these two files:

/etc/php.d/json.ini /etc/php.d/pdo.ini
阅读(603) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~