关于apache:Apache的虚拟主机配置及伪静态

46次阅读

共计 2960 个字符,预计需要花费 8 分钟才能阅读完成。

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

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

cd /etc/httpd/


接下来咱们看下 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


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

sudo vim httpd.conf 

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

<VirtualHost *:80>ServerName www.aqingkong.com
DocumentRoot /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/logs
ll   // 会有两个文件 access_log、error_log
tail -f error_log   // 查看日志

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

而后发现还须要配置

sudo vim /httpd.conf
<VirtualHost *:80>ServerName www.aqingkong.com
DocumentRoot /data/www
#在咱们虚拟主机内增加 Directory 配置 受权能够能拜访到你的程序
<Directory "/data/www">
Options Indexes FollowSymLinks
AllowOverride None
Require 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.com
DocumentRoot /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 结尾的文件就行了

正文完
 0