在 12.04 LTS 上安装 Apache 时出错

在 12.04 LTS 上安装 Apache 时出错

在 Ubuntu 12.04 LTS 服务器上我需要Apache 2.4.5 或更高版本。我这样做:

add-apt-repository ppa:ondrej/php5
apt-get update
apt-get install apache2

但是当我运行最后一个命令时,我得到:

Setting up apache2 (2.4.20-1+deb.sury.org~precise+1) ...
Feature bundle "5.16" is not supported by Perl 5.14.2 at /usr/sbin/a2enmod line 14
BEGIN failed--compilation aborted at /usr/sbin/a2enmod line 14.
dpkg: error processing apache2 (--configure):
 subprocess installed post-installation script returned error exit status 255
Errors were encountered while processing:
 apache2
E: Sub-process /usr/bin/dpkg returned an error code (1)

看来我需要更新版本的 Perl。我该如何获取?我找不到带有它的 PPA。

答案1

由于我在维护的一些 Ubuntu 12.04 服务器上也遇到了这个问题,因此我决定使用最新已知可运行的 Ubuntu 12.04 软件包创建 Ondrej PPA 的克隆。

https://launchpad.net/~nickmoline/+archive/ubuntu/php55

切换到这个 PPA 让我能够再次成功安装 Apache 和 PHP。

这会将 Apache 锁定到 2.4.16,而不是不可行的 2.4.20

在我这样做之前,我联系了 Ondrej,他告诉我他们最终会解决这个问题,但他们没有给出时间表,当他们这样做时,我将继续更新我的 PPA,并添加一条注释,说明你可以停止使用它。

如果它对您有帮助,请随意使用它。

答案2

您可以随时访问 Launchpad 中的 PPA 页面来查看其详细信息。

您正在使用的 PPA 可以在以下位置找到:https://launchpad.net/~ondrej/+archive/ubuntu/php5,并且根据其维护者的说法,您添加的PPA不支持Ubuntu 12.04。

This PPA contains latest PHP 5.5 packaged for Ubuntu 14.04 LTS (Trusty).

[...]

If you need other PHP versions use:
  PHP 5.4: ppa:ondrej/php5-oldstable (Ubuntu 12.04 LTS)
  PHP 5.5: ppa:ondrej/php5 (Ubuntu 14.04 LTS)
  PHP 5.6: ppa:ondrej/php5-5.6 (Ubuntu 14.04 LTS - Ubuntu 16.04 LTS)
  PHP 5.6 and PHP 7.0: ppa:ondrej/php (Ubuntu 14.04 LTS - Ubuntu 16.04 LTS)

PPA 来自与 12.04 相同的维护者(ppa:ondrej/php5-oldstable),不包含 apache 2.4 并且不再受支持。

更新(来自 ondrej):我最终解决了 a2enmod Perl 代码,并且最终修复 Ubuntu 12.04 并不难,因此 2.4.20-1+deb.sury.org~precise+2 应该包含修复后的代码。

更新 2(来自 ondrej):我将所有与 apache2 相关的软件包移至 以ppa:ondrej/apache2避免重复。不幸的是,没有办法在 PPA 依赖项中表达这一点。

答案3

您可以从构建历史记录中查找并下载旧软件包:

wget -A deb -m --no-parent https://launchpad.net/~ondrej/+archive/ubuntu/php5/+build/7886307
wget https://launchpad.net/~ondrej/+archive/ubuntu/php5/+build/7886308/+files/apache2-data_2.4.16-4+deb.sury.org~precise+4_all.deb

这组软件包来自以前的版本,不应依赖于 Perl 5.16。

相关内容