Ubuntu 16.04与Apache虚拟主机配置的步骤详解
前言
众所周知在window下,apache的配置文件是httpd.conf,但在linux下安装了apache后发现其配置并不像window下那么简单,linux下apache将各个设置项分在了不同的配置文件中,想想也是有很大的理由的,这样子可以使用户在开发过程中*的搭配其不同的功能模块,更好的提高效率,不过,如果不事先了解apache,可能在配置时蒙圈。
ubuntu中apache的配置文件是//etc/apache2/apache2.conf。apache在启动时会找到这个文件并自动读取该文件中的配置信息,而其他配置文件则是通过include指令包含进来的,在apache2.conf 中可以看到这些引入行。当然,也可以将所有的配置全放在apache2.conf或者httpd.conf或者其他文件中,apache这样划分是一种比较好的习惯。
在ubuntu中web文档的根目录是在/var/www中,怎么知道的呢?在/etc/apache2/sites-enabled/000-default中有这样一段内容
namevirtualhost * <virtualhost *> serveradmin webmaster@localhost documentroot /var/www/
这是设置虚拟机的,当然,如果觉得没有用的,也可以将apache2.conf里的include /etc/apache2/sites-enabled/一行注释掉,并在htttpd.conf中的documentroot设置成某个项目的目录,这样可以方便开发。
在/etc/apache2目录下,发现了sites-enabled目录,然而还有一个sites-available目录,那么这两个目录到底有什么作用呢?其实,sites-available这个目录包含apache虚拟主机的配置文件。虚拟主机允许apache配置多个站点并为每个站点配置不同的参数。而sites-enabled目录的作用是持有/etc/apache2/sites-available目录下文件的链接。当apache重启后,该目录中包含的站点将会被激活。如果apache上配置了多个虚拟机,每个虚拟机的配置文件都放在sites-available下,那么对于虚拟主机的停用,启动就是非常方便了,操作某个虚拟主机就不用动配置文件了
------- 我是美丽的分割线 -------
在/etc/apache2下还用类似于sites-enabled和sites-available两个目录的mods-available和mods-enabled两个目录,那么这两个目录有何作用呢?其实类似于sites-enabled和sites-available,mods-available这个目录包含模块和模块配置文件,不是所有的模块都有配置文件。比如当apt-get install php5安装了php模块,在这两个目录中就有了php5.load、php5.conf和指向这两个文件的链接。这对于apache开启停用某个模块是非常方便的
在/etc/apache2目录下,还有一个文件ports.conf,这个文件配置apache监听的端口,如果觉得嫌弃它多余,可以先把apache2.conf中的include /etc/apache2/ports.conf一行去掉,在httpd.conf里设置apache端口。
在ubuntu缺省安装的目录有与其他相比有一点不同。在ubuntu中module和 virtual host的配置都有两个目录,一个是available,一个是enabled,available目录是存放有效的内容,但不起作用,只有用ln 连到enabled过去才可以起作用。这样子对于开发以及调试都很方便。
------- 我是美丽的分割线 -------
什么是虚拟主机(virtual hosting)
所谓虚拟主机,就是把一台运行在互联网上的服务器划分成多个“虚拟”的服务器,每一个虚拟主机都具有独立的域名和完整的internet服务器(支持www、ftp、e-mail等)功能。再简单的说,就是同一台服务器可以同时处理超过一个域名(domain)。假设www.example1.com和www.example2.com两个域名都指向同一个服务器,而web服务器又支持虚拟主机,那么www.example1.com和www.example2.com可以访问到同一服务器上不同的web空间。
在apache2中,有效的站点信息都存放在/etc/apache2/sites-available/用户名(文件) 里面。 我们可以添加格式如下的信息来增加一个有效的虚拟空间,将/etc/apache2/sites-available/000-default.conf里的大部分东西拷贝过来就行了(比较老的ubuntu版本可能叫做default),命名成自己想命的名字,记得改documentroot作为默认目录,在directory中设置路径,注意端口号不要与其他的虚拟主机重复:
<virtualhost *自定义端口> # 在servername后加上你的网站名称 servername www.linyupark.com # 如果你想多个网站名称都取得相同的网站,可以加在serveralias后加上其他网站别名。 # 别名间以空格隔开。 serveralias ftp.linyupark.com mail.linyupark.com # 在serveradmin后加上网站管理员的电邮地址,方便别人有问题是可以联络网站管理员。 serveradmin webmaster@linyupark.com # 在documentroot后加上存放网站内容的目录路径(用户的个人目录) documentroot /home/linyupark/public_html <directory /home/linyupark/public_html> options indexes followsymlinks multiviews allowoverride none order allow,deny allow from all </directory> scriptalias /cgi-bin/ /usr/lib/cgi-bin/ <directory "/usr/lib/cgi-bin"> allowoverride none options execcgi -multiviews +symlinksifownermatch allow from all </directory> errorlog /home/linyupark/public_html/error.log # possible values include: debug, info, notice, warn, error, crit, # alert, emerg. loglevel warn customlog /home/linyupark/public_html/access.log combined serversignature on </virtualhost>
如果你的服务器有多个ip,而不同的ip又有着不一样的虚拟用户的话,可以修改成:
<virtualhost ip地址[:端口]> ... </virtualhost>
一般情况下,我们只需要做两部操作:1,添加“servername www.example.com”, 2,修改“documentroot /var/www”为自己定义的目录。
启用配置
1,现在我们配置的内容只是有效虚拟主机,要是真正的发挥作用得放在/etc/apache2/sites-enabled 文件夹下面,需要通过ln建立关联:
sudo ln -s /etc/apache2/sites-available/example.conf /etc/apache2/sites-enabled/example.conf
2,修改/etc/hosts文件,加入当前主机的ip地址和需要设置的虚拟主机名,如:127.0.0.1 www.jiaoxue.com :
127.0.0.1 localhost 127.0.1.1 shanlei-lenovo-ideapad-110-15isk 127.0.0.1 www.jiaoxue.com # the following lines are desirable for ipv6 capable hosts ::1 ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters ~
检查语法没有错误,如果没有错误,重启apache:
sudo /etc/init.d/apache2 restart //或 service apache2 restart
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对的支持。
上一篇: DELL 915主板上电流程图
下一篇: 将redis中的json转换成对象
推荐阅读
-
ubuntu16.04自动设置行号的步骤详解
-
详解Nginx与Apache共用80端口的配置方法
-
apache配置虚拟主机的方法详解
-
ubuntu系统下apache配置虚拟主机及反向代理详解
-
ubuntu15.10下hadoop2.7.2的安装与配置详解
-
详解Ubuntu16.04下Hadoop 2.7.3的安装与配置
-
Ubuntu 16.04与Apache虚拟主机配置的步骤详解
-
vmware下ubuntu的安装与配置方法(图文详解)
-
详解在Ubuntu上的Apache配置SSL(https证书)的正确姿势
-
Ubuntu16.04下伪分布式环境搭建之hadoop、jdk、Hbase、phoenix的安装与配置