apache2配置虚拟主机

» apache2

监听端口:

/etc/apache2/ports.conf中,添加以下语句

Listen 80
# 监听80端口
Listen 8080
# 监听8080端口
# 可同时定义多条

虚拟主机:

配置文件设置

/etc/apache2/sites-available/test.conf(假设该目录下有配置文件000-default.conf、default-ssl.conf、test.conf [自己新建的] )中添加如下语句

<VirtualHost *:80>
# 当客户端访问本机所用的域名ip及端口满足条件,采用该虚拟主机规则;
# 作用类似于判断条件(if)的作用:基于主机名的虚拟主机
        ServerName web1.com
# 当客户端访问本机所用的域名为web1.com时,采用该虚拟主机规则;
# 作用类似于判断条件(if)的作用:基于主机名的虚拟主机
        ServerAdmin webmaster@localhost
# 错误页面时显示的联系方式?
        DocumentRoot /var/www/web1
# 设置网站所在的目录
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

# 可同时定义多条

配置文件生效

/etc/apache2/sites-available中的配置文件并不会生效,只有处于 /etc/apache2/sites-enabled/中的配置文件才会生效。可以利用a2dissite指令和a2ensite指令对配置文件进行生效与失效操作。(生效的原理即为,在sites-enabled/下建立配置文件的链接;失效的原理即为,删除sites-enabled/下的配置文件链接)

1、执行sudo a2dissite并选择要失效的配置文件

2、执行sudo a2ensite并选择要生效的配置文件

参考链接:

apache2官方文档 Apache2 VirtualHost的配置方法 Apache2.4配置VirtualHost

Ubuntu 如何修改 Apache2网站根目录和默认网页

查看Apache的版本

DocumentRoot、Directory与Location的区别

DocumentRoot /var/www/web1 用于在<VirtualHost *:80>中定义虚拟主机根目录的位置 <Directory /var/www/nextcloud/>表示 用于设置目录的属性,可以独立于<VirtualHost *:80>使用,DocumentRoot的功能是Directory的真子集

<Location /private>
	Order Allow,Deny
	Deny from all
</Location> 

Location与上两者均不同之处在于,其后面接的是网络请求的位置。如: http://ip或domain/private只有请求满足该格式,才会被执行。 而上面定义的location将拒绝一切http://ip或domain/private格式的请求

Apache中DocumentRoot和Directory的区别

apache配置Directory目录权限的一些配置

Apache的Directory配置指南