Apache的虚拟主机配置及伪静态操作

  • 虚拟主机什么时候会用?

多域名情况下会用,一个服务器中配置很多个网站,需要多份配置来保证我们每一个域名访问的网站内容和源代码是不一样的。

  • 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

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值