我最近刚刚将 PHP 5.3 升级到5.4在我的 Debian Squeeze 服务器上。现在,Apache 不再执行 PHP 文件,而是直接下载它们,真的坏的。
当我尝试跟随这些步骤,我在安装包时收到“损坏的包” libapache2-mod-php5
。
答案还告诉我向我的 httpd.conf 添加一些内容,但它是空的。
问题:我怎样才能让 apache 再次执行 php 文件,而不是仅仅将它们作为下载传递?
dpkg -l | grep php
返回此
rc libapache2-mod-php5 5.3.3-7+squeeze15 server-side, HTML-embedded scripting language (Apache 2 module)
rc php5-cli 5.3.3-7+squeeze15 command-line interpreter for the php5 scripting language
ii php5-common 5.4.15-1~dotdeb.2 Common files for packages built from the php5 source
rc php5-gd 5.3.3-7+squeeze15 GD module for php5
rc php5-mcrypt 5.3.3-7+squeeze15 MCrypt module for php5
rc php5-mysql 5.3.3-7+squeeze15 MySQL module for php5
rc php5-suhosin 0.9.32.1-1 advanced protection module for php5
rc phpmyadmin 4:3.3.7-7 MySQL web administration tool
并apt-get install libapache2-mod-php5
产生此错误
The following packages have unmet dependencies:
libapache2-mod-php5 : Depends: libdb5.1 but it is not installable
Depends: libssl1.0.0 (>= 1.0.0) but it is not installable
Depends: libxml2 (>= 2.8.0) but 2.7.8.dfsg-2+squeeze7 is to be installed
Recommends: php5-cli but it is not going to be installed
E: Broken packages
答案1
该消息的意思是libapache2-mod-php5
未安装(rc
表示已删除(第一个字母,r),但配置文件未删除(第二个字母 c))。因此,为了让 apache 再次执行 php 文件,您需要重新安装它。
您的软件包管理器说您有未满足的依赖项。基本上,尽管它很聪明,但它无法找到一种方法来执行您要求它做的事情(可能是在更新期间),所以您需要自己想办法。请参阅这个问题了解详细过程。该问题专门针对 Ubuntu,但大部分内容也适用于 Debian。
简而言之,您需要弄清楚为什么这些软件包无法安装。使用apt-get install libdb5.1
找出libdb5.1
无法安装的原因,然后 apt-get install libssl1.0.0
,最后 apt-get install libxml2
。这将依次指出缺少或版本错误的其他软件包。一旦您弄清楚问题出在哪里,您可能需要apt-get install -f
该软件包(-f
意思是强制)。