在 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 的詳細資訊。

您正在使用的 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)

來自用於 12.04 的同一維護者的 PPA (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。

相關內容