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

虚拟主机一般是在配置多域名的时候 。我们在一个服务器中可以配置很多个网站,这个时候就要有多份配置保证 每一个域名访问网站的内容和源代码是不一样的 。废话不多说

首先 我们进入Apache 安装后的目录 如下图

cd /etc/httpd/

Apache的虚拟主机配置及伪静态_第1张图片
接下来我们看下 conf 文件夹下

cd  conf
ll 

我们接着打开 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

Apache的虚拟主机配置及伪静态_第2张图片
当我们进入编辑状态的时候如上图:提示文件是只读的。
我们退出来 通过 sudo 提权的方式进行打开命令:

sudo vim httpd.conf 

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

ServerName www.aqingkong.com
DocumentRoot /data/www

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

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 账号如下图
image
我们不想那么麻烦 还是使用 qingkong 这个账号将它的权限目录所属人改掉 命令:

sudo chown -R qingkong:qingkong /data

通过命令查看 ll /data/ 所属人已经改变了如下图
image
接着我们编辑 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 我们的域名没有问题 发现已经解析到这台服务器上了在页面访问一下 出现的阿帕奇的页面
Apache的虚拟主机配置及伪静态_第3张图片
我们看一下图片标记的这一段话 他的意思说(您应该将网站内容添加到目录/ var / www / html /。要防止使用此页面,请遵循文件/etc/httpd/conf.d/welcome.conf 中的说明。)那就说明 我们配的虚拟主机是没有 起作用的 他和我们默认访问页面是一样的

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

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

定位到这个目录是无法访问的
image
然后发现还需要配置

sudo vim /httpd.conf
ServerName www.aqingkong.com
DocumentRoot /data/www
#在我们虚拟主机内添加 Directory 配置 授权可以能访问到你的程序

Options Indexes FollowSymLinks
AllowOverride None
Require all granted

 

然后重启服务器命令:

sudo service httpd restart

扩展命令 sudo setenforce 1 (临时关闭访问)或 sudo setenforce 0(临时开启访问)
什么时候执行呢?当你配置完 Directory(授权这个标签的时候你还不能访问到你的程序或页面 就执行一下 sudo setenforce 0)
Setenforce 是干什么用的 。我们服务器里有一个设置 。这个设置是为了安全做的一个设置。这是系统本身起到一个多层开关 的一个作用 。

如果要永久关闭 访问权限 命令

sudo vim /etc/selinux/config

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

如果有多个域名 配置多个虚拟主机 如下图
Apache的虚拟主机配置及伪静态_第4张图片
有什么问题 重复上边的操作就行了 多试下。

伪静态

下边再说说伪静态 这个还是比较常用的.通过命令: 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 

配置一下我们的伪静态

ServerName www.aqingkong.com
DocumentRoot /data/www
#在我们虚拟主机内添加 Directory 配置 授权可以能访问到你的程序

    Options Indexes FollowSymLinks
    AllowOverride None
    Require all granted
#意思说当我们 这个 mod_rewrite.c 这个文件存在的时候这个模块才有效

#重写引擎打开
RewriteEngine on  
#请求的 URL 是*.htm ,重定向到 index.html 前提条件在根目录创建一个 index.html 文件
RewriteRule ^(.*).htm$ index.html 


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

你可能感兴趣的:(apache,linux,服务器)