-
虚拟主机什么时候会用?
多域名情况下会用,一个服务器中配置很多个网站,需要多份配置来保证我们每一个域名访问的网站内容和源代码是不一样的。
-
Apache的一些配置目录介绍
[xiaokang@localhost ~]$ cd /etc/httpd/ [xiaokang@localhost httpd]$ ls conf conf.d conf.modules.d logs modules run
conf : 配置文件位置(httpd.conf )
conf.modules.d : 模块的配置文件
modules : 模块
-
配置虚拟主机
[xiaokang@localhost conf]$ ls
httpd.conf magic
[xiaokang@localhost conf]$ sudo vim httpd.conf
进入httpd.conf文件后搜索virtual(/+virtual,vim下搜索“/+搜索的关键字”),在其位置下面添加内容如下:
# virtual host being defined.
#
<VirtualHost *:80>
ServerName www.xiaokang.test
DocumentRoot /data/www # 根目录
</VirtualHost>
配置完后重启服务器
[xiaokang@localhost conf]$ sudo service httpd restart
[sudo] password for xiaokang:
Redirecting to /bin/systemctl restart httpd.service
创建配置中 /data/www目录
[xiaokang@localhost ~]$ sudo mkdir -p /data/www (-p:循环创建)
[sudo] password for xiaokang:
[xiaokang@localhost ~]$ cd /data/
[xiaokang@localhost data]$ ls
www
权限目录所属人改掉(这样就不用操作目录里面文件时候,需要sudo升权操作)
[xiaokang@localhost www]$ ll /data/
total 0
drwxr-xr-x. 2 root root 6 Jun 11 16:28 www
[xiaokang@localhost www]$ sudo chown -R xiaokang:xiaokang /data (-R:循环递归方式)
[xiaokang@localhost www]$ ll /data
total 0
drwxr-xr-x. 2 xiaokang xiaokang 6 Jun 11 16:28 www
在www目录下创建index.html并随便写点东西
[xiaokang@localhost www]$ vim index.html
修改完后访问服务器还是默认的Apache界面,无法访问到index.html内容,这是需要通过setenforce 设置成 0 宽松模式,只是临时关闭
[xiaokang@localhost conf]$ sudo setenforce 1 # 设置成强制模式
[xiaokang@localhost conf]$ sudo setenforce 0 # 设置成宽松模式
如果要完全关闭或者重启也不会再回到强制模式,需要你进行以下设置
[xiaokang@localhost conf]$ sudo vim /etc/selinux/config
然后将 SELINUX=enforcing 改成 SELINUX=disabled
如果想在Windows10中通过域名来访问网站,就需要你配置hosts文件
C:\Windows\System32\drivers\etc 中 hosts
在文件中添加 192.168.0.108 www.xiaokang.test 前面是IP后面是对应的域名。
切换到root用户并改变用户环境
[xiaokang@localhost httpd]$ sudo su -
[sudo] password for xiaokang:
Last login: Wed Jun 12 14:37:55 CST 2019 from 192.168.0.103 on pts/2
[root@localhost ~]#
查看 进入Apache 的日志(或者查看最后结尾Apache的报错日志 [root@localhost logs]# tail -f error_log )
[root@localhost logs]# ls
access_log error_log
[root@localhost logs]# tail -f access_log
192.168.0.103 - - [12/Jun/2019:14:36:15 +0800] "GET /noindex/css/fonts/Regular/OpenSans-Regular.ttf HTTP/1.1" 403 248 "http://www.xiaokang.test/" "Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko"
根据错误提示是因为无法访问/data/www,这里需要设置/data/www根路径,设置内容为<Directory></Directory>模块
# virtual host being defined.
#
<VirtualHost *:80>
ServerName www.xiaokang.test
DocumentRoot /data/www # 根目录
<Directory "/data/www/">
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
</VirtualHost>
如果想配置多个虚拟主机,就是多在hettpd.conf中添加几份配置,例如以下为配置两个虚拟主机:
<VirtualHost *:80>
ServerName www.xiaokang.test
DocumentRoot /data/www
<Directory "/data/www/">
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
</VirtualHost>
<VirtualHost *:80>
ServerName www.xiaokang2.test
DocumentRoot /data/www2
<Directory "/data/www/">
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
</VirtualHost>
-
伪静态 :比如页面2345.html是PHP写的但显示的是HTML文件
(1) 设置伪静态模块生效:在httpd.conf下添加以下设置
[xiaokang@localhost conf]$ sudo vim httpd.conf
# 伪静态模块设置
LoadModule rewrite_module modules/mod_rewrite.so
(2)设置伪静态规则,添加到httpd.conf的<Directory></Directory>中
<IfModule mod_rewrite.c>
RewriteEngine On # 打开引擎
RewriteRule ^(.*).htmp$ index.html #设置规则,只要以.htmp结尾都跳转到 index.html
</IfModule>
例如下面
http://www.xiaokang.test/1.htmp 跳转到 http://www.xiaokang.test/index.html