apache配置虚拟主机(apache 虚拟主机配置详解)

admin 662 2022-11-15

阿里云服务器优惠多,折扣错,惊喜多,请咨询:www.wqiis.com

本文目录一览:

Apache怎么配置虚拟主机

1. 假设服务器有个IP地址为192.168.1.10,使用ifconfig在同一个网络接口eth0上绑定3个IP:

[root@localhost root]# ifconfig eth0:1 192.168.1.11

[root@localhost root]# ifconfig eth0:2 192.168.1.12

[root@localhost root]# ifconfig eth0:3 192.168.1.13

2. 修改hosts文件,添加三个域名与之一一对应:

192.168.1.11

192.168.1.12

192.168.1.13

3. 建立虚拟主机存放网页的根目录,如在/www目录下建立test1、test2、test3文件夹,其中分别存放1.html、2.html、3.html

/www/test1/1.html

/www/test2/2.html

/www/test3/3.html 需要虚拟主机租用可以看下,傲龙网络。

怎么在apache上安装虚拟主机

Apache配置虚拟主机方法在windows和linux有些差异,今天给大家演示如何在windows上配置Apache虚拟主机,此方法主要适用于独立的Apache环境。

1. 打开目录Apache的安装目录/conf/extra/, 找到 httpd-vhosts.conf 文件;

2. 添加一段代码来指定某一域名的网站,如图我配置虚拟域名是:

project.com,文件目录指向的是CI框架;

VirtualHost *:80

ServerAdmin webmaster@dummy-host.project.com

DocumentRoot "D:/AMP/Apache/htdocs/ci"

ServerName project.com

ErrorLog "logs/project.com-error.log"

CustomLog "logs/project.com-access.log" common

/VirtualHost

3. 打开 httpd.conf 文件, 添加如下代码:

# Virtual hosts

Include conf/extra/httpd-vhosts.conf

如果已存在,将Include前面的#去掉;

如何进行Apache虚拟机设置

Apache虚拟机设置有两种方法: 基于主机名的虚拟主机(一个IP地址,多个网站) 基于IP地址的虚拟主机(每个站点拥有一个的独立IP地址) 可能很多人没有多个静态ip,也没有多个域名,也没有线上的服务器。我也没有。不过我们还是可以在本机实现Apache虚拟机设置的。下面我们要用到的ip是 127.0.0.1, 127.0.0.2。域名是localhost, localhost2, localhost3打开/etc/hosts在后面添加127.0.0.1 localhost2 127.0.0.2 localhost3windows的系统是修改 C:\WINDOWS\system32\drivers\etc\hosts 文件这一步需要重启一下机器。先重启了再进行下边的操作。重启后 localhost2和localhost3就可以指向各住的ip了。打开apache配置文件。一般是在 /etc/httpd/conf/httpd.conf 或者你指定的目录。windows的系统是在apache安装目录的conf文件夹里 在最后添加NameVirtualHost 127.0.0.1:80ServerAdmin deng5765@163.com DocumentRoot /home/webroot/website1 ServerName localhostServerAdmin deng5765@163.com DocumentRoot /home/webroot/website2 ServerName localhost2ServerAdmin deng5765@163.com ServerName localhost3其中DocumentRoot要改成和自己机子相符的路径。然后务必重启apache才可以生效。 service httpd restart 重启apache。然后用localhost localhost2 和 localhost3 就可以访问各住的目录了。其中NameVirtualHost 127.0.0.1:80 是需要的,否则会出现这样的警告提示:VirtualHost 127.0.0.1:80 overlaps with VirtualHost 127.0.0.1:80, the first has precedence, perhaps you need a NameVirtualHost directive 如果需要一个虚拟机绑定多个域名,则可以在别名 ServerAlias 后面全部列出来。还可以通过 php_admin_value open_basedir 限制各自虚拟机可操作文件的目录。同时可以通过 ErrorDocument 404 设置404错误页面的位置。其他配置就不多说了,可以参考apache手册。至此,Apache虚拟机设置就完成了。

如何在Debian 10上安装Apache并设置虚拟主机

Apache HTTP Server 是目前应用最多的 web server 服务软件之一,Apache提供了许多强大的功能,而且可以通过其他模块进行扩展。Apache HTTP Server是一个开源的跨平台的服务器软件,目前大部分网站都采用Apache作为网站HTTP服务器。

在本教程中,我们将向你介绍如何在Debian 10中安装Apache并配置虚拟主机。

首先你得有一台安装了Debian的服务器,这样便于你在上面进行演练操作。如果你没有可以考虑自己在虚拟机中安装一个Debian 10。当然,我也推荐您购买一台 阿里云VPS 或者 腾讯云VPS 虚拟主机,如果你更喜欢国外服务器,推荐你尝试 Vultr上的VPS ,注册即送$50美元体验,性价比非常高。

当然有主机了,为安全考虑不建议使用root账号,建议创建一个具有 sudo权限的用户 。

同时,你的Debian已经安装了PHP,如果没有安装可以参考「 如何在Debian 10安装PHP 」教程。

Apache的安装包在Debian的默认源中提供了,所以只需要执行安装命令即可安装。执行安装Apache命令之前我们需要先更新一下系统,命令如下:

安装完成后,apache将默认自动运行,我们通过以下命令查看apache服务状态。

输出命令类似如下:

开启防火墙可以加强服务器的安全性,我们通过防火墙只开放需要访问的端口。可以通过防火墙管理软件 ufw 或者 nftables 进行管理。

如果系统没有安装 ufw 或者 nftables ,可以通过如下命令直接安装。

UFW 如果需要开启 (HTTP)80 或者 (HTTPS)443 端口,可以通过执行如下命令开启:

nftables 如果需要开启 (HTTP)80 或者 (HTTPS)443 端口,可以通过执行如下命令开启:

这个更建议使用 UFW 作为防火墙管理软件,相对来说操作更简单。

Apache安装完成后,需要校验一下Apache是否正常工作。校验方法是打开浏览器,在地址栏中输入 ,如果能正常显示类似如下界面,说明Apache安装成功运行正常。

Apache安装完成后,默认的安装配置文件路径如下:

我们在 /var/www 目录中创建一个网站目录,例如 example.com 。默认情况,目录结构如下:

可以通过以下命令创建:

在该目录下我们创建一个 index.php 文件,文件内容如下:

首先,进入 /etc/apache2/sites-available 目录,创建配置文件 example.com.conf 文件,并在其中添加如下内容。

您可以根据需要命名虚拟主机配置文件,但是建议使用域名作为配置文件的名称。

要启用新的虚拟主机文件,请创建一个从虚拟主机文件到启用站点的目录的符号链接,该链接在启动过程中由Apache读取。

在Debian系统中,您可以使用名为 a2ensite 的帮助程序脚本来启用虚拟主机,命令如下:

当然你也可以选择手动创建符号链接,如下所示:

启用配置后,通过键入以下命令测试语法是否正确:

如果一切正常,会输出如下内容:

重启服务,使配置生效,命令如下:

在浏览器地址栏中输入 ,正常情况下你将看到如下输出:

至此,本教程交接完毕。

通过本教程,你将学会如何在Debian 10上安装Apache并设置虚拟主机,如果你有自己的的Debian 10主机不妨按照教程进行安装尝试,如果没有自己的Debian自己建议可以安装一台Debian10虚拟主机或者去 阿里云 或者 腾讯云 或者 Vultr 购买一台自己的VPS服务器。

apache怎么配置localhost的虚拟主机

修改 hosts 文件

1

不管你用的是什么系统,windows, mac,电脑上都会有一个 hosts 文件,修改这个文件,可以改变主机名所对应的 ip 地址。比如你安装了 Web 开发环境(MAMP 或 WAMP),启动环境以后,访问 你就会打开环境的默认的目录,这个 localhost 就是在 hosts 文件里定义的,它所指向的 ip 地址是 127.0.0.1 ,这个 ip 地址表示本地的你正在使用的这台电脑,了解详细的内容,可以搜索一下 :)

修改这个 hosts 文件,我们可以手工的去指定任何主机名指向任何的 ip 地址,当然这个设置只影响你自己的电脑,比如我们可以随便造一个域名,比如 hello.com,让这个域名指向你的电脑,也就是 127.0.0.1 这个 ip 地址。这样你在浏览器中请求 hello.com ,打开的就是你在本地电脑上搭建的环境所指定的目录里的东西。为了测试 apache 的虚拟主机功能,你可以去虚拟几个这样的域名,这样在创建虚拟主机的时候,你可以让这些域名打开各自的目录。下面,我们先去修改这个 hosts 文件。

1. 找到 hosts 文件,windows 系统是在 Windows\System32\Drivers\etc 这个目录下,Mac 系统是在 /etc/hosts ,找到以后可以使用文本编辑软件打开它。

2. 在 hosts 文件里,新的一行上,先输入 ip 地址 127.0.0.1 ,然后空格,再输入一个主机名,这个主机名可以随便,比如 hello.com ,这样访问 hello.com 就会打开在你的电脑上的网站了。另起一行,再去定义一条,127.0.0.1 hola.com 。

3. 保存修改之后的 hosts 文件,然后启动在本地上的 Web 环境,打开浏览器,在地址栏上输入 hello.com ,还有 hola.com ,看看打开的是不是你在本地上的内容。现在,你看到的应该跟你使用 打开的是一样的东西。

END

配置 Apache 虚拟主机

现在,我们虚拟了两个域名,让它们指向了本地的电脑,访问它们,打开的是同一个目录里的内容,下面这个练习,我们通过修改 Apache 的配置文件,让访问不同域名的时候,打开的是不同的目录。你首先要判断一下配置 Apache 虚拟主机的配置文件,一般是在 httpd.conf 这个主配置文件里面,不过,很多环境都会单独把虚拟主机放在一个配置文件里面,然后在 httpd.conf 文件里指定一下,包含这个单独配置虚拟主机的文件。

1. 找到配置虚拟主机的配置文件,如果你用的是 WAMP 搭建的环境,先找到并打开 httpd.conf ,在这个文件里,搜索 # Virtual hosts ,它下面有一行代码, #Include conf/extra/httpd-vhosts.conf... 你可以去掉它前面的 # ,这样,Apache 启动以后,也会去加载这个httpd-vhosts.conf 配置文件,这样做的好处就是可以保持 Apache 相关设置的整洁。当然,你完全可以在主配置文件 httpd.conf 里面去设置虚拟主机。

2. 打开 httpd-vhosts.conf 这个文件,没有这个文件也可以去创建一个,或者直接在 httpd.conf 文件里面去配置虚拟主机。配置虚拟主机的东西应该像这样:

3. 应该有两段这样的代码,每一段都是在配置一个虚拟主机,你可以复制其中的一段,然后粘贴到文件的最下面。再根据自己的需要去修改这段代码。理解它的意思,ServerAdmin 就是网站的管理员的邮箱,DocumentRoot 是虚拟主机的主目录,也就是访问这个虚拟主机所打开的那个目录,这个目录你可以自己去指定,要注意的是,你需要先去创建这个目录,然后再在这里去指定这个目录的位置。ServerName 是主机名,比如之前我们虚拟的那个主机名 hello.com,ServerAlias 是主机的别名,你可以指定一个其它的主机名,访问它的时候也会打开这个虚拟主机的目录里的东西。ErrorLog 是错误的日志,也就是发生错误的时候,会把错误记录到哪个文件里。CustomLog 是虚拟主机访问的日志。

这样自己新添加的虚拟主机看起来应该像这样:

3

4. 在浏览器里打开 hello.com ,访问的是这个虚拟主机的配置里 DocumentRoot 所指定的 /Applications/MAMP/htdocs/hello 这个目录里的东西,你可以在这个目录里面放点东西,比如一个 WordPress 或者 Drupal 的网站等等。

注:配置虚拟主机的时候,第一个虚拟主机是默认的,你需要留着,配置自己的虚拟主机,可以从第二个开始配置,也就是第二段 VirtualHost 代码。

如何配置 Apache 的虚拟主机

1、基于ip地址的虚拟主机

复制代码代码如下:

Listen 80

VirtualHost 172.20.30.40

DocumentRoot /home/httpd/html1

ServerName

ErrorLog /usr/local/apache/logs/error1_log

CustomLog /usr/local/apache/logs/access1_log combined

/VirtualHost

VirtualHost 172.20.30.50

DocumentRoot /home/httpd/html2

ServerName

ErrorLog /usr/local/apache/logs/error2_log

CustomLog /usr/local/apache/logs/access2_log combined

/VirtualHost

2、基于IP 和多端口的虚拟主机配置

复制代码代码如下:

Listen 172.20.30.40:80

Listen 172.20.30.40:8080

Listen 172.20.30.50:80

Listen 172.20.30.50:8080

VirtualHost 172.20.30.40:80

DocumentRoot /www/example1-80

ServerName

/VirtualHost

VirtualHost 172.20.30.40:8080

DocumentRoot /www/example1-8080

ServerName

/VirtualHost

VirtualHost 172.20.30.50:80

DocumentRoot /www/example2-80

ServerName

/VirtualHost

VirtualHost 172.20.30.50:8080

DocumentRoot /www/example2-8080

ServerName

/VirtualHost

3、单个IP 地址的服务器上基于域名的虚拟主机配置

复制代码代码如下:

# Ensure that Apache listens on port 80

Listen 80

# Listen for virtual host requests on all IP addresses

NameVirtualHost *:80

VirtualHost *:80

DocumentRoot /www/example1

ServerName

ServerAlias example1.com. *.example1.com

# Other directives here

/VirtualHost

VirtualHost *:80

DocumentRoot /www/example2

ServerName

# Other directives here

/VirtualHost

如果您感觉上面的文章还不够详细可以看下下面的文章:

实验目标:在apache实现基于域名的虚拟主机

实验用的XAMPP版本为1.7.7,内含apache版本为2.2.21

实验前准备:

1. 为了测试不同的域名,在Windows/System32/drivers/etc/下觅得hosts文件,在其中添加实验用的域名若干,如 -

复制代码代码如下:

127.0.0.1 test1.net

127.0.0.1 test2.net

如此,则在浏览器中输入该俩域名时,Windows将其解析为127.0.0.1本地地址。即,在浏览器中访问localhost, test1.net, test2.net均可访问XAMPP的欢迎页。

2. 在apache目录下建立目录,以放置您不同的网站。为保护XAMPP原有的htdocs中的欢迎页内容,实验另外建立了与htdocs平级的htdocs1目录,在其下建立了test1.net, test2.net两个子目录用以放置实验用的网站。如下 -

apache/htdocs1/test1.net - 放置test1.net网站内容

apache/htdocs1/test2.net - 放置test2.net网站内容

在这两个目录中各新建hello world一网页 index.html,内容 -

复制代码代码如下:

HTML

HEAD/HEAD

BODY

H1hello~, 这是[对应的网站名,用以区别].net/H1/BODY

/HTML

实验步骤:

1. 找到apache/conf/httpd.conf, 将其中的

ServerAdmin

ServerName

DocumentRoot

注释掉。

2. 在httpd.conf中,找到行

Include "conf/extra/httpd-vhosts.conf"

如被注释则解注。该文件记载了虚拟主机的参数。[以前虚拟主机参数是直接填写在httpd.conf中的,为了更好地组织文件,将其分离出去,类似于某些编程语言一样。因此httpd.conf中include它,即相当于把它的内容填在了httpd.conf中。]

3. 这个httpd-vhosts.conf文件格式基本如下 -

复制代码代码如下:

#blah-blah

NameVirtualHost *:80

#blah-blah

#blah-blah

VirtualHost *:80

ServerAdmin XXXXXXXX

DocumentRoot "XXXXXXXX"

ServerName XXXXXXX

ServerAlias XXXXXX

ErrorLog "logs/XXXXXX-error.log"

CustomLog "logs/XXXXXXX-error.log" combined

/VirtualHost

需要修改的,就是VirtualHost中的参数了。这个可以参见apache官方文档。根据实验域名,可以增加两个VirtualHost:

复制代码代码如下:

VirtualHost *:80

ServerAdmin adm@test1.net

DocumentRoot "C:/xampp/htdocs1/test1.net"

ServerName test1.net

ServerAlias

ErrorLog "logs/test1-error.log"

CustomLog "logs/test1-access.log" combined

Directory "C:/xampp/htdocs1/test1.net"

order allow,deny

allow from all

/Directory

/VirtualHost

VirtualHost *:80

ServerAdmin adm@test2.net

DocumentRoot "C:/xampp/htdocs1/test2.net"

ServerName test2.net

ServerAlias

ErrorLog "logs/test1-error.log"

CustomLog "logs/test1-access.log" combined

Directory "C:/xampp/htdocs1/test2.net"

order allow,deny

allow from all

/Directory

/VirtualHost

注意,如果不在各VirtualHost中定义Directory的可访问性,你将遇到的是Access Forbidden!就连原来的localhost也是。

4. 由于之前注释掉了httpd.conf中的ServerName, DocumentRoot等,为了仍然能以localhost访问原XAMPP欢迎页,就在增加一个VirtualHost,如下 -

复制代码代码如下:

VirtualHost *:80

ServerAdmin adm@localhost

DocumentRoot "C:/xampp/htdocs"

ServerName localhost

ErrorLog "logs/localhost-error.log"

CustomLog "logs/localhost-access.log" combined

Directory "C:/xampp/htdocs"

order allow,deny

allow from all

/Directory

/VirtualHost

为了避免出错,把它放置在第一个Virtualhost位置。

至此,apache基于域名的虚拟主机配置完成。可以通过访问XAMPP欢迎页,通过和访问各自的主页。

#

# Virtual Hosts

#

# 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:;

# for further details before you try to setup virtual hosts.

#

# You may use the command line option '-S' to verify your virtual host

# configuration.

#

# Use name-based virtual hosting.

#

NameVirtualHost *:80

#

# 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 VirtualHost block.

#

VirtualHost *:80

ServerAdmin kongdaoxian@gmail.com

DocumentRoot "E:/skydao/apache2/htdocs"

ServerName localhost

ServerAlias

ErrorLog "logs/localhost-error.log"

CustomLog "logs/localhost-access.log" combined

Directory "E:/skydao/apache2/htdocs"

order allow,deny

allow from all

/Directory

/VirtualHost

VirtualHost *:80

ServerAdmin kongdaoxian@gmail.com

DocumentRoot "E:/skydao/apache2/htdocs/project1"

ServerName project1.com

ServerAlias

ErrorLog "logs/project1-error.log"

CustomLog "logs/project1-access.log" combined

Directory "E:/skydao/apache2/htdocs/project1"

order allow,deny

allow from all

/Directory

/VirtualHost

VirtualHost *:80

ServerAdmin kongdaoxian@gmail.com

DocumentRoot "E:/skydao/apache2/htdocs/zendTest/public"

ServerName zendTest.com

ServerAlias

DirectoryIndex index.php

Directory /

Options FollowSymLinks

AllowOverride None

Order allow,deny

Allow from all

/Directory

/VirtualHost

VirtualHost *:80

ServerAdmin kongdaoxian@gmail.com

DocumentRoot "E:/skydao/apache2/htdocs/testRewrite"

ServerName testRewrite.com

ServerAlias

# DirectoryIndex index.php

Directory /

Options FollowSymLinks

AllowOverride None

Order allow,deny

Allow from all

/Directory

/VirtualHost

VirtualHost *:80

ServerAdmin kongdaoxian@gmail.com

DocumentRoot "E:/skydao/apache2/htdocs/test"

ServerName test.com

ServerAlias

ErrorLog "logs/zendTest-error.log"

CustomLog "logs/zendTest-access.log" combined

Directory "E:/skydao/apache2/htdocs/test"

order allow,deny

allow from all

/Directory

/VirtualHost

上一篇:华为云备份一台设备(华为云备份一台设备怎么备份)
下一篇:迪拜网站设计(迪拜logo设计)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~