"虚拟主机的根目录必须有other用户的4+1(r+x)权限不然会没有权限访问"
0.检查语法
httpd -t 测试配置文件的语法是否正确
1.安装
yum install httpd -y
2.开机自启动
systemctl enable httpd
3.关闭selinux
临时关闭
setenforce 0
永久关闭
vi /etc/selinux/config
SELINUX=disabled
3.配置
服务目录 /etc/httpd
主配置文件 /etc/httpd/conf/httpd.conf
网站数据目录 /var/www/html
访问日志 /var/log/httpd/access_log
错误日志 /var/log/httpd/error_log
创建网站主目录
mkdir -p /www/8080
#递归创建目录,即使上级目录不存在,会按目录层级自动创建目录
4.配置主配置文件
vi /etc/httpd/conf/httpd.conf
ServerRoot 服务目录
ServerAdmin 管理员邮箱
User 运行服务的用户
Group 运行服务的用户组
ServerName 网站服务器的域名
DocumentRoot 网站数据目录
Directory 网站数据目录的权限
Listen 监听的 IP 地址与端口号
DirectoryIndex 默认的索引页页面
ErrorLog 错误日志文件
CustomLog 访问日志文件
Timeout 网页超时时间,默认为 300 秒
1.查看IncludeOptional conf.d/*.conf是否开启(加载conf.d/下面所有*.conf文件的配置)
2.修改(这些指令作用于该目录以及它的子目录)
<Directory />
AllowOverride none
#Require all denied
Require all granted
</Directory>
AllowOverride参数就是指明Apache服务器是否去找.htaccess文件作为配置文件,如果设置为none,那么服务器将忽略.htacess文件,如果设置为All,那么所有在.htaccess文件里有的指令都将被重写。
访问控制
1. Order 指令
order指令用于指定执行允许(allow)访问控制规则或者拒绝(deny)访问控制规则的顺序。 order只能设置为Order allow,deny或Order deny,allow。
Order allow,deny:缺省禁止所有客户机的访问,且 Allow 语句在 Deny 语句之前被匹配。如果某条件既匹配 Deny 语句又匹配 Allow 语句,则 Deny 语句会起 作用(因为 Deny 语句覆盖了 Allow 语句)。
Order deny,allow:缺省允许所有客户机的访问,且 Deny 语句在 Allow 语句之前被匹配。如果某条件既匹配 Deny 语句又匹配 Allow 语句,则 Allow 语句会起作用(因为 Allow 语句覆盖了 Deny 语句)。
Allow 和 Deny 语句可以针对客户机的域名或IP地址进行设置,以决定哪些客户机能够访问服务器。
2. allow 指令
指明允许访问的地址或地址序列。如allow from all指令表明允许所有IP来的访问请求。
3. deny 指令
指明禁止访问的地址或地址序列。如deny from all指令表明禁止所有IP来的访问 请求。 在下面的例子中,80note.com 域中所有主机都允许访问网站,而其他非该域中的任何主机访问都被拒绝,因为 Deny 在前,Allow 在后,Allow 语句覆盖了Deny 语句:
Order Deny,Allow
Deny from all
Allow from 80note.com
下面例子中,80note.com 域中所有主机,除了db.80note.com 子域包含的主机被 拒绝访问以外,都允许访问。而所有不在 80note.com 域中的主机都不允许访问,因为缺省状态是拒绝对服务器的访问(Allow在前,Deny在后,Deny语句覆盖了Allow语句):
Order Allow,Deny
Allow from 80note.com
Deny from db.80note.com
4. Require 指令
Require all granted 无条件允许访问。
Require all denied 无条件拒绝访问。
5.虚拟主机(多ip)
添加多个ip
vi /etc/sysconfig/network-scripts/ifcfg-eth0
格式:
IPADDR=192.168.1.200
IPADDR1=192.168.1.201
IPADDR2=192.168.1.201
......
cd /etc/httpd/conf.d/
vi vhost.conf
<VirtualHost 192.168.1.200:8080>
DocumentRoot /www/8080
</VirtualHost>
<VirtualHost 192.168.1.201:8080>
DocumentRoot /www/8081
</VirtualHost>
测试:
访问192.168.1.200:8080
访问192.168.1.201:8080
6.虚拟主机(多端口)
监听多个端口
vi /etc/httpd/conf/httpd.conf
格式:
Listen 8080
Listen 8081
Listen 8082
......
vi vhost.conf
<VirtualHost 192.168.1.200:8080>
DocumentRoot /www/8080
</VirtualHost>
<VirtualHost 192.168.1.200:8081>
DocumentRoot /www/8081
</VirtualHost>
测试:
访问192.168.1.200:8080
访问192.168.1.200:8081
7.虚拟主机(多域名)
设置本地hosts
windows
C:\Windows\System32\drivers\etc\hosts
格式:ip 域名
192.168.1.200 a.com
192.168.1.200 b.com
立即生效
ipconfig/flushdns
linux
vi /etc/hosts
格式:ip 域名
192.168.1.200 a.com
192.168.1.200 b.com
立即生效
systemctl restart network
<VirtualHost 192.168.1.200:8080>
DocumentRoot /www/8080
servername a.com
</VirtualHost>
<VirtualHost 192.168.1.200:8080>
DocumentRoot /www/8081
servername b.com
</VirtualHost>
测试:
访问 a.com:8080
访问 b.com:8080
8.虚拟目录
vi /etc/httpd/conf/httpd.conf
添加
Alias /testa "/www/8080/"
Alias /testb "/www/8081/"
通过http://192.168.1.200/testa访问/www/8080/
标签:语句,httpd,Deny,海上,访问,天上,Allow,com From: https://www.cnblogs.com/WaitAyaka/p/17278645.html