我想更新我服务器中的 php 5。目前,我使用的是 php 5.2.0,因此我想将其更新到 php 5.2.4(而不是 php 5.3)。我尝试这样做:
aptitude update
aptitude upgrade
63 个数据包已更新,但 php 未更新,因为 php 始终为 5.0
请问我该如何更新我的 php ?
以下是 David 在另一篇文章中提出的命令的输出:
aptitude search php5
p libapache-mod-php5 - server-side, HTML-embedded scripting langu
i A libapache2-mod-php5 - server-side, HTML-embedded scripting langu
i php5 - server-side, HTML-embedded scripting langu
p php5-apache2-mod-bt - PHP bindings for mod_bt
p php5-auth-pam - A PHP5 extension for PAM authentication
i php5-cgi - server-side, HTML-embedded scripting langu
p php5-clamavlib - PHP ClamAV Lib - ClamAV Interface for PHP5
p php5-cli - command-line interpreter for the php5 scri
i A php5-common - Common files for packages built from the p
i php5-curl - CURL module for php5
p php5-dev - Files for PHP5 module development
i A php5-gd - GD module for php5
p php5-idn - PHP api for the IDNA library
p php5-imagick - ImageMagick module for php5
p php5-imap - IMAP module for php5
p php5-interbase - interbase/firebird module for php5
p php5-json - JSON serialiser for PHP5
p php5-ldap - LDAP module for php5
p php5-mapscript - module for php5-cgi to use mapserver
p php5-maxdb - PHP extension to access MaxDB databases fo
i A php5-mcrypt - MCrypt module for php5
p php5-memcache - memcache extension module for PHP5
p php5-mhash - MHASH module for php5
p php5-ming - Ming module for php5
i A php5-mysql - MySQL module for php5
p php5-odbc - ODBC module for php5
p php5-pgsql - PostgreSQL module for php5
p php5-ps - ps module for PHP 5
p php5-pspell - pspell module for php5
p php5-radius - PECL radius module for PHP 5
p php5-recode - recode module for php5
p php5-snmp - SNMP module for php5
p php5-sqlite - SQLite module for php5
p php5-sqlite3 - SQLite3 module for php5
p php5-sqlrelay - SQL Relay PHP API
p php5-suhosin - advanced protection module for php5
p php5-sybase - Sybase / MS SQL Server module for php5
p php5-tidy - tidy module for php5
p php5-uuid - OSSP uuid module for php5
p php5-xapian - Xapian search engine interface for PHP5
p php5-xcache - Fast, stable PHP opcode cacher
p php5-xmlrpc - XML-RPC module for php5
p php5-xsl - XSL module for php5
aptitude show php5 | grep Version
Version : 5.2.0-8+etch13
aptitude show php5-cgi | grep Version
Version : 5.2.0-8+etch13
php5 --version
-bash: php5: command not found
php-cgi --version
PHP 5.2.0-8+etch13 (cgi-fcgi) (built: Oct 2 2008 08:21:17)
Copyright (c) 1997-2006 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2006 Zend Technologies
答案1
您使用的是 Debian Etch,它默认自带 5.2.0。这个问题并不简单。通常最好的方法是从 Lenny 下载版本并进行编译,但如果是 php5,它就不太好用了,因为有很多依赖项,您必须编译很多东西。
您是否考虑过将您的发行版升级到 Lenny?
最好的办法是找到一个为 Etch 预编译了 php5 的外部仓库。Google 上的 Shot 指出http://www.linuxcompatible.org/PHP_5.2.5_for_Debian_GNULinux_s100378.html可能是一个好的开始。
答案2
我也认为升级到 lenny 是最好的选择。
但是...如果你坚持并准备做大量的工作...
首先..备份!如果它失败了,你的系统可能会崩溃。你可能会陷入依赖地狱等等......
- 添加 lenny repo
- 使用 apt pinning 仅升级 php
- apt-get 更新 && apt-get 升级
- 如果成功,您可能需要删除 lenny repo 以避免将来出现问题
- 如果失败,请恢复备份并开始计划将发行版完整升级到 lenny
将 Debian etch 升级到 lenny 的步骤:http://www.debian.org/releases/lenny/i386/release-notes/ch-upgrading.html
(大多数时候,至少对我来说,升级很顺利,很少出现问题)总结一下升级步骤标准debian(请务必阅读以上链接):
- 备份!始终要有良好的备份。
- 确保有足够的可用空间
- apt-get 更新 && apt-get dist-upgrade
- 将 /etc/sources.list 中的所有“etch”替换为“lenny”
- apt-get 清理
- apt-get 更新
- apt-get 安装 apt aptitude
- apt-get 升级
- apt-get dist-upgrade
这应该是您所需要的全部。注意:如果您使用标准 repo 以外的内容(取决于 repo 中的内容),您可能需要先禁用它们(尤其是反向移植)。
如果是关键系统,请先尝试在虚拟机上模拟升级。