[转]:Ubuntu 下Apache安装和配置
【转】:Ubuntu 下Apache安装和配置_服务器应用_Linux公社-Linux系统门户网站 https://www.linuxidc.com/Linux/2013-06/85827.htm
在Ubuntu上安装Apache,有两种方式:
1 使用开发包的打包服务,例如使用apt-get命令;
2 从源码构建Apache。本文章将详细描述这两种不同的安装方式。
方法一:使用开发包的打包服务——apt-get
安装apache,在命令行终端中输入一下命令:
$ sudo apt-get install apache2
安装完成后,重启apache服务,在命令行终端中输入一下命令:
$ sudo /etc/init.d/apache2 restart
可能会出现的问题1: NameVirtualHost *:80 has no VirtualHosts,如下截图
出现上述问题的原因:定义了多个NameVirtualHost,故将/etc/apache2/ports.conf中的NameVirtualHost *:80注释掉即可。
可能会出现的问题2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
原因:
根据提示,无法可靠的确定服务器的有效域名,使用127.0.1.1作为服务器域名。应此,在下面的测试中,应该使用127.0.1.1,而不是127.0.0.1!
解决:
$ vim /etc/apache2/httpd.conf,在文件中添加:
ServerName localhost:80,再次重启apache2,就可以使用127.0.0.1来访问web服务器啦!
测试:
在浏览器里输入http://localhost或者是http://127.0.0.1,如果看到了Apache2 Ubuntu Default Page,那就说明Apache就成功的安装了,
Apache的默认安装,会在/var下建立一个名为www的目录,这个就是Web目录了,所有要能过浏览器访问的Web文件都要放到这个目录里。
测试过程中可能遇到问题:
原因:apache2使用的服务器地址不是127.0.0.1,根据在前面的分析,可能的ip为127.0.1.1,访问http://127.0.1.1即可。
如果觉得不再需要apache了,可以将它卸载:
1. 删除apache
在命令行中输入:
$ sudo apt-get --purge remove apache-common
$ sudo apt-get --purge remove apache
2.找到没有删除掉的配置文件,一并删除
代码:
$ sudo find /etc -name "*apache*" |xargs rm -rf
$ sudo rm -rf /var/www
$sudo rm -rf /etc/libapache2-mod-jk
3.删除关联,这样就可以再次用apt-get install apache2 重装了
#dpkg -l |grep apache2|awk '{print $2}'|xargs dpkg -P
方法二:从源构建Apache
参考资料:
Ubuntu下安装Apache+PHP+MySQL:http://www.linuxidc.com/Linux/2012-05/61079.htm
Ubuntu下彻底卸载Apache2:http://www.linuxidc.com/Linux/2013-06/85825.htm
Apache问题解决:httpd: Could not reliably determine the server's fully qualified domain name 链接:http://www.linuxidc.com/Linux/2012-08/68901.htm
--------------------------------------分割线--------------------------------------
apache2 [warn] NameVirtualHost *:80 has no VirtualHosts的解决方法
错误:[warn] NameVirtualHost *:80 has no VirtualHosts
原因:定义了多个NameVirtualHost
解决:Ubuntu之前的版本定义在/etc/apache2/sites-available/default, 8.04后在/etc/apache2/ports.conf
故可以将/etc/apache2/ports.conf中的NameVirtualHost *:80注释掉
这个问题的本质是在没有定义域名是一个端口只能对应一个虚拟主机,将NameVirtualHost *:80改为其他端口也可以解决
如果有多个不同的域名的话,用同样的端口也可以