如何安装特定版本的 Apache?

如何安装特定版本的 Apache?

由于 Ubuntu 更新,我错误地将 Apache 2.2 升级到 2.4——出现了很多问题。

我不知道如何在始终安装 2.4之后指定版本apt-get remove apache2apt-get install apache2

我该怎么做?

答案1

您需要执行以下操作:

apt-cache showpkg <pachagename>

上述命令将显示此软件包的可用版本列表。然后选择所需的版本并执行以下操作。

apt-get install <packagename>=<complete version name>

例子:

apt-cache showpkg apache2
apt-get install apache2=2.2.14-5ubuntu8.7

答案2

如何在存储库中没有 Apache 2.2 的 Ubuntu 发行版上安装该版本。

要求

您需要安装 build-essentials 包才能执行此操作。

~# sudo apt-get install build-essential

要使 Apache 能够压缩输出到支持此功能的浏览器,您需要安装 zlib。从zlip主页(撰写本文时为 zlib-1.2.11.tar.gz),提取它,导航到提取的文件夹,构建并安装。

wget http://www.zlib.net/zlib-1.2.11.tar.gz
tar -xvf zlib-1.2.11.tar.gz
cd zlib-1.2.11/
./configure --prefix=/usr/local
make
sudo make install

安装 Apache 2.2

从以下位置下载当前版本Apache 下载页面(撰写本文时为 httpd-2.2.32.tar.gz),提取它,导航到提取的文件夹,构建并安装。

wget http://www-eu.apache.org/dist/httpd/httpd-2.2.32.tar.gz
tar -xvf httpd-2.2.32.tar.gz
cd httpd-2.2.32/
./configure --prefix=/usr/local/apache2 --enable-mods-shared=all --enable-deflate --enable-proxy --enable-proxy-balancer --enable-proxy-http
make
sudo make install

启动Apache:

sudo /usr/local/apache2/bin/apachectl start

检查一切是否正常

导航http://本地主机在您的浏览器中,您应该会看到一条消息“它有效!”。

或者,您可以通过终端执行此操作:

wget -qO- http://localhost | grep "It works!"

终端上应该输出类似这样的内容:

<html><body><h1>It works!</h1></body></html>

为 Apache2 创建“服务”

sudo cp /usr/local/apache2/bin/apachectl /etc/init.d/apache22
sudo chmod +x /etc/init.d/apache22

提示:你可以使用以下命令调用 apachectlsudo 服务 apache22现在。

使 Apache 在启动时启动

sudo sed -i '2i #\n### BEGIN INIT INFO\n# Provides:             apache2\n# Required-Start:       $remote_fs\n# Required-Stop:        $remote_fs\n# Default-Start:        2 3 4 5\n# Default-Stop:         0 1 6\n# Description:          apache2\n# Short-Description:    The Apache webserver\n### END INIT INFO' /etc/init.d/apache22
sudo /usr/sbin/update-rc.d apache22 defaults

安全 Apache

sudo service apache22 stop
sudo adduser --system apache
sed -i -e 's/User daemon/User apache/g' /usr/local/apache2/conf/httpd.conf
sed -i -e 's/Group daemon/Group nogroup/g' /usr/local/apache2/conf/httpd.conf
sudo service apache22 start

检查新设置

ps -aux | grep httpd

如果最后一个命令的终端输出显示一些以“apache”开头的行,则一切正常。

配置您的网站

如果你只想为一个站点配置 Apache,只需编辑 httpd.conf

nano /usr/local/apache2/conf/httpd.conf

您可能需要修改的基本参数包括:

ServerName www.example.com:80
DocumentRoot "/usr/local/apache2/htdocs"

<Directory "/usr/local/apache2/htdocs">
    Options Indexes FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>

如果要配置多个站点,请查看 httpd-vhosts.conf

nano /usr/local/apache2/conf/httpd.conf

您必须在 < VirtualHost > 中添加一个与上面类似的 < Directory > 部分,但用于 VitualHost 的文档根目录。例如:

<VirtualHost *:80>
    ServerAdmin [email protected]
    DocumentRoot "/usr/local/apache2/docs/dummy-host.example.com"
    ServerName dummy-host.example.com
    ServerAlias www.dummy-host.example.com
    ErrorLog "logs/dummy-host.example.com-error_log"
    CustomLog "logs/dummy-host.example.com-access_log" common
    <Directory "/usr/local/apache2/docs/dummy-host.example.com">
        Options Indexes FollowSymLinks
        AllowOverride None
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

答案3

请参阅 ubuntu 操作指南封装固定

编辑文件/etc/apt/preferences

'preferences' 文件是实际固定的位置。要固定包,请将其 Pin-Priority 设置为更高的数字。以下是示例:

Package: apache2
Pin: release n=raring
Pin-Priority: 1000

运行前测试apt-get updateapt-get installapt-cache policy apache2

有关详细信息,请参阅man apt_preferences。我选择固定 的raring版本,因为这样您仍然可以获得 2.2.x 分支的更新。不要忘记,您必须通过添加 的raring存储库 URL 使该软件包可供 APT 使用。

更新

由于raringEOL,您可以使用仍然受支持的precise或已存档的raring软件包http://old-releases.ubuntu.com

使用此功能/etc/apt/sources.list.d/raring.list将允许您安装较旧的软件包:

deb http://old-releases.ubuntu.com/ubuntu/ raring main restricted universe multiverse
deb-src http://old-releases.ubuntu.com/ubuntu/ raring main restricted universe multiverse
deb http://old-releases.ubuntu.com/ubuntu/ raring-updates main restricted universe multiverse
deb-src http://old-releases.ubuntu.com/ubuntu/ raring-updates main restricted universe multiverse
deb http://old-releases.ubuntu.com/ubuntu/ raring-backports main restricted universe multiverse
deb-src http://old-releases.ubuntu.com/ubuntu/ raring-backports main restricted universe multiverse
deb http://old-releases.ubuntu.com/ubuntu/ raring-proposed main restricted universe multiverse
deb-src http://old-releases.ubuntu.com/ubuntu/ raring-proposed main restricted universe multiverse

答案4

您从 Ubuntu 13.04 升级到了 13.10?如果不离开 Ubuntu 软件包存储库,就无法恢复 Apache 2.2。最好修复您的 Apache 配置,使其与 2.4 兼容。

相关内容