centos 安装php5.2,zh/HowTos/PHP_5.1_To_5.2 - CentOS Wiki

ccae23d096c1192cfa86999caa3f638b.png

警告:本文其后所描述的 5.2.6 版 php 已被取替,并且容易有安全性问题。请考虑升级至包含在 CentOS 5.6 内的 php53 或采用IUS Community Repo

概要

这份指南描述如何将 32 位元 CentOS 5.x 上的标准 PHP 5.1.x 组件升级及现正开发中的 5.2.x 版。这些步骤是利用 32 位元的 CentOS 5.3 及安装了下列 PHP 组件的情况下写成的:

# 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

只要你的 CentOS 服务器所采用的是标准 PHP 组件,你便不必花费额外功夫。如果你采用了 CentOS 标准软件库以外的 PHP 组件(例如 php-mcrypt),你须要删除它们,或者找寻更新版本。

新增开发中的软件库

第一件要做的事情就是将开发中的软件库加进 yum。当我们加入开发中的软件库时,我们会设置它只输入 PHP 组件。首先,我们须要(通过你喜欢的编辑器)创建一个新的 yum 软件库配置文件:

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

将以下内容剪贴到这文件内:

# CentOS-Testing:

# !!!! 注意 !!!!

# 这个软件库为那些将要放入 CentOSPlus 及 CentOS Extras 的组件提供一个试验场。

# 它们可能会更改 CentOS 的核心组件,而且并不保证能正确运作。这些组件能被编译

# 及安装,但正在等待测试者反馈它们的功能及稳定性。这个软件库内的组件在开发期

# 间会不时替换,所以在未考虑清楚前,不应被启用或使用於实际运行系统内。

[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*

请确定每行前的没有空格,并在完成后存储及关闭文件。

更新 PHP 组件

在更新你的 PHP 组件之前,你应该先取得现时安装了的组件清单。请执行以下指令来取得现有的 PHP 组件清单:

# rpm -qa |grep php

现在你可以用 yum 来更新系统上的 PHP 组件:

# yum update

你应该会看见将要被更新的组件清单。请将它与现有的 PHP 组件清单作一比较。请留意在清单上不存在的组件。你必须删除这些组件,或者为它们寻找更新版本,因为当你升级至 PHP 5.2.x 后,它们不再生效。如果你这是你可接受的,请按 y 让 yum 继续更新组件。

当 yum 完成后,请重新引导 Apache:

# service httpd restart

要确认已顺利更新,请在你的 www 目录创建一个简单的 testing.php,内里有以下源代码:

phpinfo();

?>

请在一个浏览器内打开它。新的 PHP 版本应该会在页面上显示出来。

结论

现在你拥有 PHP 5.2.6 在你的 32 位元 CentOS 5.3 上。

# 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

注:假若你的 php -v 软出关於 PDO 或 JSON 的错误,请按这里

额外数据

1. 更新/安装 mcrypt

如果你安装了 PHP 5.1.x 专用的 php-mcrypt,你须要删除它:

注:你的版本可能会不同。请适当地修改以下指令。

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

下载 PHP 5.2.x 专用的 php-mcrypt 并安装它。你可以在 FedoraJunkies 找到 32 位元的 php-mcrypt 组件。

注: 请留意样例中的 --nodeps 标志。假若你安装 php-mcrypt 时不采用此标志,将会有错误信息通知你 php-common-5.2.6-2.el5s2 并不存在,纵使你已经安装了它。

wget -c http://sourcemirrors.org/scotth/centos/5/php/php-mcrypt-5.2.6-2.i386.rpm

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

请重新引导 Apache,现在你的 testing.php 页里应该有关 mcrypt 的信息。

2. JSON 及 PDO 被两度装入

当你执行 php -v 这个指令时,你可能会看见以下错误:

# 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

这是由 /etc/php.ini 文件内的以下数行而引起的:

; Extension JSON

extension=json.so

; Extension PDO

extension=pdo.so

请在 extension= 前加入一个 ; 号将这些行注释掉。这两个模块已经通过以下两个文件被装入:

/etc/php.d/json.ini

/etc/php.d/pdo.ini

Translation of revision 12

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值