我当时正在进行从 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 修复了我的问题