Mit*_*ril 28 ubuntu apache-2.2 apache-2.4
由于 Ubuntu 更新,我错误地将 Apache 2.2 升级到 2.4——很多事情都出错了。
我不知道如何在apt-get remove apache2. apt-get install apache2总是安装 2.4。
我该怎么做?
Moh*_*enN 25
您需要执行以下操作:
apt-cache showpkg <pachagename>
Run Code Online (Sandbox Code Playgroud)
上面的命令将显示此包的可用版本列表。然后选择所需的版本并执行以下操作。
apt-get install <packagename>=<complete version name>
Run Code Online (Sandbox Code Playgroud)
例子:
apt-cache showpkg apache2
apt-get install apache2=2.2.14-5ubuntu8.7
Run Code Online (Sandbox Code Playgroud)
如何在存储库中没有它的 Ubuntu 发行版上安装 Apache 2.2。
要求
您需要安装 build-essentials 包才能执行此操作。
~# sudo apt-get install build-essential
Run Code Online (Sandbox Code Playgroud)
要使 Apache 能够将输出压缩到支持它的浏览器,您需要安装 zlib。从zlip Hompage下载当前版本(撰写本文时为 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
Run Code Online (Sandbox Code Playgroud)
安装 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
Run Code Online (Sandbox Code Playgroud)
启动阿帕奇:
sudo /usr/local/apache2/bin/apachectl start
Run Code Online (Sandbox Code Playgroud)
检查,如果一切正常
在浏览器中导航到http://localhost,您应该会在其中看到一条消息“It works!”。
或者,您可以通过终端执行此操作:
wget -qO- http://localhost | grep "It works!"
Run Code Online (Sandbox Code Playgroud)
哪个应该在终端中输出这样的东西:
<html><body><h1>It works!</h1></body></html>
Run Code Online (Sandbox Code Playgroud)
为 Apache2 创建“服务”
sudo cp /usr/local/apache2/bin/apachectl /etc/init.d/apache22
sudo chmod +x /etc/init.d/apache22
Run Code Online (Sandbox Code Playgroud)
提示:您现在可以使用sudo service apache22调用 apachectl 。
让 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
Run Code Online (Sandbox Code Playgroud)
安全的 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
Run Code Online (Sandbox Code Playgroud)
检查新设置
ps -aux | grep httpd
Run Code Online (Sandbox Code Playgroud)
如果最后一个命令的终端输出显示一些以“apache”开头的行,那么一切正常。
配置您的站点
如果您只想为一个站点配置 apache,只需编辑 httpd.conf
nano /usr/local/apache2/conf/httpd.conf
Run Code Online (Sandbox Code Playgroud)
您可能想要修改的基本参数是:
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>
Run Code Online (Sandbox Code Playgroud)
如果要配置多个站点,请查看 httpd-vhosts.conf
nano /usr/local/apache2/conf/httpd.conf
Run Code Online (Sandbox Code Playgroud)
您必须在 < VirtualHost > 中添加一个 < Directory > 部分,类似于上面的部分,但用于 VitualHost 的文档根目录。例如:
<VirtualHost *:80>
ServerAdmin webmaster@dummy-host.example.com
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>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
62071 次 |
| 最近记录: |