虚拟主机个别是在配置多域名的时候 。咱们在一个服务器中能够配置很多个网站,这个时候就要有多份配置保障 每一个域名拜访网站的内容和源代码是不一样的 。废话不多说

首先 咱们进入Apache 装置后的目录 如下图

cd /etc/httpd/


接下来咱们看下 conf 文件夹下

cd  confll 

咱们接着关上 httpd.conf 配置文件

vim httpd.conf 

配置里边咱们能够看到

#咱们的服务目录地址ServerRoot “/etc/httpd”  #监听的 80 端口  Listen 80 #加载 module 通过* 通配所有的 .conf 文件 Include conf.modules.d/*.conf  #回绝内部拜访Require all denied #代码配置默认都是放到这个门路DocumentRoot "/var/www/html" 当然咱们能够随便指定咱们放代码的地位。 

接下来咱们来配置一下咱们的虚拟主机

在 Esc 状态下通过命令大 G 来到文件的最上面

咱们搜一下 virtual。 在 Esc 状态下

/virtual


当咱们进入编辑状态的时候如上图:提醒文件是只读的。
咱们退出来 通过 sudo 提权的形式进行关上命令:

sudo vim httpd.conf 

咱们在 virtual 下边增加配置一个虚拟主机 监听 80 端口

<VirtualHost *:80>ServerName www.aqingkong.comDocumentRoot /data/www</VirtualHost>

配置完之后重启咱们的服务器命令:

sudo service httpd restart 

接下来咱们创立文件夹

Sudo mkdir –p /data/www 

咱们创立一个文件命令:

vim  index.Html 

在文件中写入一些内容后 保留的时候发现 “index.html” E212: can’t open file for writing (不能关上或写入)
强制退出来命令: Esc :q!

通过命令:ll /data/ 发现这个/data/目录他所属的用户是在 root 账号如下图

咱们不想那么麻烦 还是应用 qingkong 这个账号将它的权限目录所属人改掉 命令:

sudo chown -R qingkong:qingkong /data

通过命令查看 ll /data/ 所属人曾经扭转了如下图

接着咱们编辑 vim index.html 保留后 通过 https://www.aqingkong.com 拜访。当然啦 这是无法访问的 因为咱们的域名没有绑定咱们的 IP
通过 命令 sudo vim /etc/hosts 去 hosts 上来绑定咱们的域名 指向公网 IP

sudo vim /etc/hosts#复制到 Hosts 文件里192.168.43.227 www.aqingkong.com 

ping 咱们的域名没有问题 发现曾经解析到这台服务器上了在页面拜访一下 呈现的阿帕奇的页面

咱们看一下图片标记的这一段话 他的意思说(您应该将网站内容增加到目录/ var / www / html /。要避免应用此页面,请遵循文件/etc/httpd/conf.d/welcome.conf 中的阐明。)那就阐明 咱们配的虚拟主机是没有 起作用的 他和咱们默认拜访页面是一样的

接下来 咱们看一下日志 命令 cd /etc/httpd/logs 发现进不去。

sudo su –  //切换 root 用户后才进去。cd /etc/httpd/logsll   //会有两个文件 access_log、 error_logtail -f error_log   //查看日志

定位到这个目录是无法访问的

而后发现还须要配置

sudo vim /httpd.conf
<VirtualHost *:80>ServerName www.aqingkong.comDocumentRoot /data/www#在咱们虚拟主机内增加 Directory 配置 受权能够能拜访到你的程序<Directory "/data/www">Options Indexes FollowSymLinksAllowOverride NoneRequire all granted</Directory"></VirtualHost> 

而后重启服务器命令:

sudo service httpd restart

扩大命令 sudo setenforce 1 (长期敞开拜访)或 sudo setenforce 0(长期开启拜访)
什么时候执行呢?当你配置完 Directory(受权这个标签的时候你还不能拜访到你的程序或页面 就执行一下 sudo setenforce 0)
Setenforce 是干什么用的 。咱们服务器里有一个设置 。这个设置是为了平安做的一个设置。这是零碎自身起到一个多层开关 的一个作用 。

如果要永恒敞开 拜访权限 命令

sudo vim /etc/selinux/config

把 SELINUX=enforcing (强制模式)改为 SELINUX=disabled (宽松模式)下次再重启服务器就还是宽松模式 再拜访就不会呈现拜访不到的问题

如果有多个域名 配置多个虚拟主机 如下图

有什么问题 反复上边的操作就行了 多试下。

伪动态

下边再说说伪动态 这个还是比拟罕用的.通过命令: cd /etc/httpd 找到 modules 这个链接文件。 咱们找到这个模块 mod_rewrite.so(这个就是伪动态的重写规定)/etc/httpd 下的 Modules 里边放的所有模块的类。

模块配置的文件都放到 conf.modules.d 下。接着咱们来到 cd /etc/httpd/conf 下接着编辑 httpd.conf 命令:

sudo vim httpd.conf

第一步是将 mod_rewrite.so 加载到零碎中来。首先关上咱们伪动态的规定。在 Esc 状态下搜寻 loadModule 命令:

/loadModule

你会搜到 LoadModule foo_module modules/mod_foo.so 向下复制一行改成

LoadModule rewrite_module modules/mod_rewrite.so

重启一下咱们伪动态的性能就失效了命令:

sudo service httpd restart 

配置一下咱们的伪动态

<VirtualHost *:80>ServerName www.aqingkong.comDocumentRoot /data/www#在咱们虚拟主机内增加 Directory 配置 受权能够能拜访到你的程序<Directory "/data/www ">    Options Indexes FollowSymLinks    AllowOverride None    Require all granted#意思说当咱们 这个 mod_rewrite.c 这个文件存在的时候这个模块才无效<IfModule mod_rewrite.c>#重写引擎关上RewriteEngine on  #申请的 URL 是*.htm ,重定向到 index.html 前提条件在根目录创立一个 index.html 文件RewriteRule ^(.*).htm$ index.html </IfModule></Directory></VirtualHost>

留神:如果你编辑文件过程中强制按错键 强制退出编辑出错 会呈现以下问题 E325: ATTENTION Found a swap file by the name “.httpd.conf.swp” owned by: ro。。。通过命令 ls -a 查找全副暗藏文件。而后 rm –rf XXX.swp 结尾的文件就行了