PHP Apache - 多站点虚拟主机配置,html注释标签

本文详细介绍了如何在Apache服务器上配置多站点虚拟主机,包括在主配置文件和虚拟主机配置文件中添加和管理多个站点,以及注意事项,如端口选择、域名解析和hosts文件的修改。
摘要由CSDN通过智能技术生成
  • 多站点虚拟主机的含义

多站点虚拟主机: 是指在一台物理意义上的电脑(服务器)中,配置多个网站站点,并都可以对外提供“web访问服务”,外界看起来就是有多个站点(或多个服务器)的样子!每个站点,也就是类似一个主机,这就是虚拟主机。


  • 配置多站点虚拟主机

配置多站点虚拟主机可以分两步:

1、在apache的主配置文件(httpd.conf) ,引入多站点的配置文件(虚拟主机配置文件),在 httpd.conf 搜索 “httpd-vhosts.conf”,打开注释:

Virtual hosts

Include /private/etc/apache2/extra/httpd-vhosts.conf

httpd.conf 中还有一个文件 “mod_vhost_alias.so” ,这个文件专门解决多次或者重复配置的站点,也就是可以写一个站点模板,里面都是自适应填充站点内容找到对应文件,这个可以单独去了解一下,这里我就不打开了,但是推荐使用这个。

#LoadModule vhost_alias_module libexec/apache2/mod_vhost_alias.so

2、在虚拟主机配置文件 (httpd-vhosts.conf)中,再挨个网站进行配置(每个网站一段配置),我们找到 httpd-vhosts.conf 文件打开,我们把里面的所有东西都注释掉,自己来配置。

Virtual Hosts

Required modules: mod_log_config

If you want to maintain multiple domains/hostnames on your

machine you can setup VirtualHost containers for them. Most configurations

use only name-based virtual hosts so the server doesn’t need to worry about

IP addresses. This is indicated by the asterisks in the directives below.

Please see the documentation at

URL:http://httpd.apache.org/docs/2.4/vhosts/

for further details before you try to setup virtual hosts.

You may use the command line option ‘-S’ to verify your virtual host

configuration.

VirtualHost example:

Almost any Apache directive may go into a VirtualHost container.

The first VirtualHost section is used for all requests that do not

match a ServerName or ServerAlias in any block.

<VirtualHost *:80>

ServerAdmin webmaster@dummy-host.example.com

DocumentRoot “/usr/docs/dummy-host.example.com”

ServerName dummy-host.example.com

ServerAlias www.dummy-host.example.com

ErrorLog “/private/var/log/apache2/dummy-host.example.com-error_log”

CustomLog “/private/var/log/apache2/dummy-host.example.com-access_log” common

<VirtualHost *:80>

ServerAdmin webmaster@dummy-host2.example.com

DocumentRoot “/usr/docs/dummy-host2.example.com”

ServerName dummy-host2.example.com

ErrorLog “/private/var/log/apache2/dummy-host2.example.com-error_log”

CustomLog “/private/var/log/apache2/dummy-host2.example.com-access_log” common

  • 自定义多个站点配置格式:

默认都是 80 端口,如果你的端口不是可以进行修改

站点1:(第一个站点,被称为默认站点)

<VirtualHost *:80>

域名

ServerName localhost

域名根目录

DocumentRoot “/Users/dengzemiao/Sites”

域名根目录权限

<Directory “/Users/dengzemiao/Sites”>

运行列出目录(正式服务器需要去掉 Indexes)

Options Indexes FollowSymLinks

运行权限覆盖

AllowOverride All

运行所有人访问

Require all granted

域名根目录默认显示文件

DirectoryIndex index.html index.php

  • 我在 httpd-vhosts.conf 里面配置了三个站点:

Virtual Hosts

Required modules: mod_log_config

If you want to maintain multiple domains/hostnames on your

machine you can setup VirtualHost containers for them. Most configurations

use only name-based virtual hosts so the server doesn’t need to worry about

IP addresses. This is indicated by the asterisks in the directives below.

Please see the documentation at

URL:http://httpd.apache.org/docs/2.4/vhosts/

for further details before you try to setup virtual hosts.

You may use the command line option ‘-S’ to verify your virtual host

configuration.

VirtualHost example:

Almost any Apache directive may go into a VirtualHost container.

The first VirtualHost section is used for all requests that do not

match a ServerName or ServerAlias in any block.

<VirtualHost *:80>

ServerAdmin webmaster@dummy-host.example.com

DocumentRoot “/usr/docs/dummy-host.example.com”

ServerName dummy-host.example.com

ServerAlias www.dummy-host.example.com

ErrorLog “/private/var/log/apache2/dummy-host.example.com-error_log”

CustomLog “/private/var/log/apache2/dummy-host.example.com-access_log” common

<VirtualHost *:80>

ServerAdmin webmaster@dummy-host2.example.com

DocumentRoot “/usr/docs/dummy-host2.example.com”

ServerName dummy-host2.example.com

ErrorLog “/private/var/log/apache2/dummy-host2.example.com-error_log”

CustomLog “/private/var/log/apache2/dummy-host2.example.com-access_log” common

自定义多个站点配置

默认都是 80 端口,如果你的端口不是可以进行修改

站点1:(第一个站点,被称为默认站点)(一般都会配置一个 localhost 方便访问主目录)

<VirtualHost *:80>

域名

ServerName localhost

域名根目录

DocumentRoot “/Users/dengzemiao/Sites”

域名根目录权限

<Directory “/Users/dengzemiao/Sites”>

运行列出目录(正式服务器需要去掉 Indexes)

Options Indexes FollowSymLinks

运行权限覆盖

AllowOverride All

运行所有人访问

Require all granted

域名根目录默认显示文件

DirectoryIndex index.html index.php

站点2:

<VirtualHost *:80>

域名

ServerName www.dzm.com

错误日志

ErrorLog “/Users/dengzemiao/Sites/dzm/error.log”

成功日志

CustomLog “/Users/dengzemiao/Sites/dzm/access.log” combined

域名根目录

DocumentRoot “/Users/dengzemiao/Sites/dzm”

域名根目录权限

<Directory “/Users/dengzemiao/Sites/dzm”>

运行列出目录(正式服务器需要去掉 Indexes)

Options Indexes FollowSymLinks

运行权限覆盖

AllowOverride All

运行所有人访问

Require all granted

域名根目录默认显示文件

DirectoryIndex index.html index.php

站点3:

<VirtualHost *:80>

域名

ServerName www.xyq.com

错误日志

ErrorLog “/Users/dengzemiao/Sites/xyq/error.log”

成功日志

CustomLog “/Users/dengzemiao/Sites/xyq/access.log” combined

域名根目录

DocumentRoot “/Users/dengzemiao/Sites/xyq”

域名根目录权限

<Directory “/Users/dengzemiao/Sites/xyq”>

运行列出目录(正式服务器需要去掉 Indexes)

Options Indexes FollowSymLinks

运行权限覆盖

AllowOverride All

运行所有人访问

Require all granted

域名根目录默认显示文件

DirectoryIndex index.html index.php

  • 然后保存重启 Apache

  • 但是配置好之后还是不会生效的,我们还需要去做域名解析,也就是修改本地 hosts 文件,打开路径找到 hosts 文件

/private/etc

  • 将 hosts 文件拷贝到桌面在编辑,编辑好之后保存在拖进去覆盖

  • 然后重启 Apache 服务器,输入配置的站点,就打开成功了。


  • 注意:上面每个站点的目录都是在 /Users/dengzemiao/Sites 这个文件夹下面,这个文件夹是在 Apache 服务器配置文件里面我们之前配置好的根目录文件夹,我在这个根目录下面新建每一个文件夹我都可以设置成一个新的站点

  • 重点注意:我在MAC上将这个新站点目录不指向这个根目录下,而是指定到随意一个桌面文件夹下,会打不开站点,无法生效。

自定义多个站点配置

默认都是 80 端口,如果你的端口不是可以进行修改

站点1:(第一个站点,被称为默认站点)(一般都会配置一个 localhost 方便访问主目录)

<VirtualHost *:80>

域名

ServerName localhost

域名根目录

DocumentRoot “/Users/dengzemiao/Desktop/Project/php/Sites”

域名根目录权限

<Directory “/Users/dengzemiao/Desktop/Project/php/Sites”>

运行列出目录(正式服务器需要去掉 Indexes)

Options Indexes FollowSymLinks

运行权限覆盖

AllowOverride All

运行所有人访问

Require all granted

域名根目录默认显示文件

DirectoryIndex index.html index.php

站点2:

<VirtualHost *:80>

域名

ServerName www.dzm.com

域名根目录

DocumentRoot “/Users/dengzemiao/Sites/dzm”

域名根目录权限

<Directory “/Users/dengzemiao/Sites/dzm”>

运行列出目录(正式服务器需要去掉 Indexes)

Options Indexes FollowSymLinks

运行权限覆盖

AllowOverride All

运行所有人访问

Require all granted

域名根目录默认显示文件

DirectoryIndex index.html index.php

站点3:

<VirtualHost *:80>

域名

ServerName www.xyq.com

域名根目录

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:前端)

最后

资料过多,篇幅有限,需要文中全部资料可以点击这里免费获取前端面试资料PDF完整版!

自古成功在尝试。不尝试永远都不会成功。勇敢的尝试是成功的一半。

img-kQN82Suw-1712198467740)]

[外链图片转存中…(img-shmkcnzI-1712198467741)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

[外链图片转存中…(img-u4ixPsKe-1712198467741)]

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:前端)

最后

[外链图片转存中…(img-V3T7ulaa-1712198467741)]

[外链图片转存中…(img-ck8W4IQe-1712198467742)]

资料过多,篇幅有限,需要文中全部资料可以点击这里免费获取前端面试资料PDF完整版!

自古成功在尝试。不尝试永远都不会成功。勇敢的尝试是成功的一半。

  • 27
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值