共计 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 结尾的文件就行了