如何将 Ubuntu 10.04 上的 Apache 2 从 2.2 升级到 2.4

如何将 Ubuntu 10.04 上的 Apache 2 从 2.2 升级到 2.4

我当时正在进行从 Apache 2.2 到2.4.3。我使用的是 Ubuntu 10.04。我本来想升级到 12.04,看看升级过程是否会顺利得多。不幸的是,我被告知这是不可能的……所以我只能使用 10.04。

我这样做的过程是:

在尝试此操作之前,我已经设法将 APR 从 1.3 升级到 1.4 并将 APR-UTIL 升级,因为 apache 之前已声明它们是先决条件:http://apr.apache.org/download.cgi。我把 apr 和 apr-util 放在 httpd-2.4.3/srclib 下

我还采纳了 Schlauberg 关于删除 libapr 的建议。因此,当我删除当前 apache 的所有痕迹时,我也删除了所有痕迹。

首先删除当前 apache 的所有痕迹:

sudo apt-get --purge remove apache2
sudo apt-get remove apache2-common apache2-utils apache2.2-bin apache2-common
sudo apt-get autoremove

whereis apache2
sudo rm -Rf /etc/apache2 /usr/lib/apache2 /usr/include/apache2

之后我做了以下事情:

sudo apt-get install build-essential
sudo apt-get build-dep apache2

然后使用以下命令安装 apache 2.4:

    wget http://www.bizdirusa.com/mirrors/apache//httpd/httpd-2.4.3.tar.gz   
tar -xzvf httpd-2.4.3.tar.gz   
cd        
wget     http://mirror.olnevhost.net/pub/apache//apr/apr-1.4.6.tar.gz   
tar -xzvf apr-1.4.6.tar.gz   
mv apr-1.4.6 apr   
cd   
wget     http://mirror.olnevhost.net/pub/apache//apr/apr-util-1.4.1.tar.gz   
tar -xzvf apr-util-1.4.1.tar.gz   
mv apr-util-1.4.1 apr-util
cd   
Place folders apr and     apr-util under /httpd-2.4.3/srclib
    sudo cp -r apr-util ~/httpd-2.4.3/srclib
    sudo cp -r apr ~/httpd-2.4.3/srclib    
cd   
download pcre-8.31.tar.gz from http://sourceforge.net/projects/pcre/files/pcre/8.31/   
    Please note that pcre-8.31 isn't obtainable through the wget but needs to be done     manually through sourceforge.             
tar -xzvf pcre-8.31.tar.gz && cd pcre-8.31   
sudo ./configure   
sudo make   
sudo make install   
cd   
cd httpd-2.4.3   
sudo ./configure --prefix=/usr/local/apache2 --enable-mods-shared=all     --enable-deflate --enable-proxy --enable-proxy-balancer --enable-proxy-http --with-mpm=prefork --with-included-apr --with-included-apr-util   
sudo make   
sudo make install    

完成此过程后,安装时不再出现错误。但是,我认为我漏掉了一个步骤,因为在 /etc/apache2 中找不到该步骤,如果我使用使用 apache 的命令,终端会告诉我它未安装。有人能告诉我 make install 后我漏掉了什么吗?

提前感谢您提供的任何帮助!

答案1

很可能你的系统上还有另一个 libapr。首先,我卸载了系统自带的 libapr,这导致了编译错误。然后,我清理了除通过以下方式找到的源代码之外的所有内容

locate apr

另一个 make clean 和 make install 修复了我的问题

相关内容