由于Ubuntu更新,我错误地将Apache 2.2升级到2.4-出现了许多问题。
我不知道如何指定apt-get remove apache2
后的版本。 apt-get install apache2
总是安装2.4。
我该怎么做?
您需要执行以下操作:
apt-cache showpkg <pachagename>
上面的命令将显示这个包的可用版本列表。 然后select所需的版本并执行以下操作。
apt-get install <packagename>=<complete version name>
例:
apt-cache showpkg apache2 apt-get install apache2=2.2.14-5ubuntu8.7
请参阅ubuntu howto 软件包固定 :
编辑文件/etc/apt/preferences
“首选项”文件是实际固定发生的地方。 要打包一个包,请将其“Pin-Priority”设置为较高的数字。 这是一个例子:
Package: apache2 Pin: release n=raring Pin-Priority: 1000
在使用apt-cache policy apache2
运行apt-get update
或apt-get install
之前进行testing
有关man apt_preferences
信息,请参阅man apt_preferences
。 我select了pinning raring
的版本,因为这样你仍然可以在2.2.x版本上得到更新。 不要忘了,你必须通过添加raring
的仓库URL来使这个软件包可用于APT。
更新 :
由于raring
是EOL,你可以使用http://old-releases.ubuntu.com上仍然支持的precise
或者归档的raring
软件包。
使用它作为/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
如何在Ubuntu发行版中安装Apache 2.2,但发行版中没有。
要求
您需要安装build-essentials软件包才能执行此操作。
~# sudo apt-get install build-essential
为了使Apache能够将输出压缩到支持它的浏览器,您需要安装zlib。 从zlip Hompage (zlib-1.2.11.tar.gz开始撰写)下载当前版本,解压缩,导航到解压缩的文件夹,构build和安装。
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 下载)下载 curent版本,提取它,导航到提取的文件夹,构build和安装。
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:// localhost ,在那里你应该看到一条消息“It works!”。
或者,你可以通过terminal来做到这一点:
wget -qO- http://localhost | grep "It works!"
在terminal中应该输出这样的内容:
<html><body><h1>It works!</h1></body></html>
为Apache2创build“服务”
sudo cp /usr/local/apache2/bin/apachectl /etc/init.d/apache22 sudo chmod +x /etc/init.d/apache22
提示:你现在可以用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
安全的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
如果最后一个命令的terminal输出显示了一些以“apache”开头的行,那么一切正常。
configuration您的网站
如果你想为一个站点configuration你的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>
如果要configuration多个站点,请查看httpd-vhosts.conf
nano /usr/local/apache2/conf/httpd.conf
您必须添加<Directory>部分,其中<VirtualHost>类似于上面的,但是对于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>
你从Ubuntu 13.04升级到13.10? 没有超越Ubuntu软件包仓库,无法获得Apache 2.2。 最好修正你的Apacheconfiguration,以便它可以与2.4一起工作。
要安装apache2.2,请使用以下过程:
在后来的发行版(例如16.04)中,我从Apache站点下载了2.2.31。
我使用以下configuration构build它:
./configure --enable-so --enable-ssl --with-included-apr --enable-mods-shared=all --enable-load-all-modules --enable-rewrite --enable-proxy --enable-proxy_connect --enable-proxy_http --enable-proxy_ajp --enable-authn_alias --with-npm=prefork --enable-proxy_balancer --enable-proxy_ftp --enable-cache --enable-suexec --enable-disk_cache > conf.txt
然后调整httpd.conf和ssl.conf文件。
之后,我只需运行./httpd -k start
它的工作原理!
请注意,我通过apt-get添加了apache2.4,但从未删除它。 这意味着系统启动后,我需要杀死apache2进程。 然后我能够启动apache2.2。 我不得不安装apache2.4使用apachectl,但后来解散,因为我使用./httpd