全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

单台服务器中利用Apache的VirtualHost如何搭建多个Web站点详解

前言

本文将详细记录一下如何在单台服务器上,利用apache的virtualhost(虚拟主机)来搭建多个不同的web站点,并且每个站点独立管理自己的session,下面话不多说了,来一起看看详细的介绍吧。

开发环境

先说下我各项开发环境参数:

  • 操作系统: RedHat6.7(CentOS)
  • WEB服务器:apache2.2
  • php5.6.30

修改Apache配置

apache2.2 的配置文件路径在 /etc/httpd/conf/httpd.conf

我们用下面的命令修改apache的配置文件:

$ vim /etc/httpd/conf/httpd.conf

添加监听端口

找到如下的部分,

#
# Listen: Allows you to bind Apache to specific IP addresses and/or
# ports, in addition to the default. See also the <VirtualHost>
# directive.
#
# Change this to Listen on specific IP addresses as shown below to
# prevent Apache from glomming onto all bound IP addresses (0.0.0.0)
#
#Listen 12.34.56.78:80
Listen 80

默认的话,应该只会监听80端口,这里我们在后面加上用于另外站点的端口号。例如我们A站点是默认的80端口,B站点计划搭建在8080端口上,最终的配置文件修改成

...
#Listen 12.34.56.78:80
Listen 80
Listen 8080

启动并添加VirtualHost

接着在配置文件中找到下面的章节:

### Section 3: Virtual Hosts
#
# VirtualHost: 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.2/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.

#
# Use name-based virtual hosting.
#
 NameVirtualHost *:80
 NameVirtualHost *:8080

上面的代码是我已经修改好的,默认的话,最后两行NameVirtualHost应该也是被注释掉了。 因为我们要启用虚拟主机,所以这里就把我们之前监听的两个端口都设置好。

同时,将之后的配置文件修改成如下的样子,我们先来设置默认的80端口的站点A

#
# VirtualHost example:
# Almost any Apache directive may go into a VirtualHost container.
# The first VirtualHost section is used for requests without a known
# server name.
#
<VirtualHost *:80>
# ServerAdmin webmaster@dummy-host.example.com
 DocumentRoot /var/www/webA
 ServerName webA
# ErrorLog logs/dummy-host.example.com-error_log
# CustomLog logs/dummy-host.example.com-access_log common
</VirtualHost>

默认的Apache是没有开启VirtualHost的,所以这些代码都是被注释掉了的,我们这里只需要把DocumentRoot和ServerName所在的行去掉注释并且编辑下就好了。

DocumentRoot指的的是我们A站点的网站根目录位置

接下来再补充上8080端口的B站点信息就好了。

<VirtualHost *:8080>
 DocumentRoot /var/www/webB
 ServerName webB
</VirtualHost>

到这里,重启一下Apache服务(service httpd restart),就可以访问两个不同的站点了。

独立Session

如果我们的A,B两个站点的登录逻辑是用的一套代码,那我们使用后会发现,A站点和B站点的Session是共享的,也就是说,如果用户在A站点登录了之后,B站点是无需登录,自动也处于登录状态; 用户在A站点退出后,也会自动从B站点退出。

这显然不是我们想要的结果,原因就是A,B两个站点公用了一套Session体系,所以才会造成这样的问题。

解决的办法就是我们指定站点中session的存放位置。

同样是修改配置文件中指定虚拟主机,我们以站点B做为示例,修改配置文件如下:

<VirtualHost *:8080>
 DocumentRoot /var/www/webB
 ServerName webB
 <Directory "/var/www/webB">
  AllowOverride All
  php_value session.save_path "/var/lib/php/session_B"
 </Directory>
</VirtualHost>

php_value中 session.save_path 其实就是php.ini文件中的session.save_path字段,这里我们其他值都使用默认的php.ini配置文件,唯独指定了session的文件存放路径,默认的php session文件是存储在 /var/lib/php/session/文件夹中。

再试着去访问以下站点B,并且进行一些session的存取操作,回头到/var/lib/php/session_B文件夹中,就会发现新的session文件了。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对的支持。


# apache  # virtualhost  # apache搭建web服务器  # apache的virtualhost  # Apache服务器VirtualHost常用配置小结  # Apache NameVirtualHost *:80 has no VirtualHosts问题解  # Apache虚拟主机VirtualHost配置项详解  # 配置文件  # 虚拟主机  # 掉了  # 自己的  # 的是  # 都是  # 就好了  # 就会  # 也会  # 多个  # 夹中  # 说了  # 才会  # 不多  # 只需  # 有一定  # 要把  # 只会  # 就把  # 这篇文章 


相关文章: ui设计制作网站有哪些,手机UI设计网址吗?  定制建站流程步骤详解:一站式方案设计与开发指南  建站之星如何防范黑客攻击与数据泄露?  制作网站公司那家好,网络公司是做什么的?  logo在线制作免费网站在线制作好吗,DW网页制作时,如何在网页标题前加上logo?  如何通过智能用户系统一键生成高效建站方案?  浅析上传头像示例及其注意事项  建站主机选购指南:核心配置与性价比推荐解析  浅谈Javascript中的Label语句  教学网站制作软件,学习*后期制作的网站有哪些?  如何在Windows服务器上快速搭建网站?  网站制作难吗安全吗,做一个网站需要多久时间?  整人网站在线制作软件,整蛊网站退不出去必须要打我是白痴才能出去?  长沙企业网站制作哪家好,长沙水业集团官方网站?  网站制作报价单模板图片,小松挖机官方网站报价?  如何设计高效校园网站?  如何快速生成橙子建站落地页链接?  已有域名如何免费搭建网站?  宝盒自助建站智能生成技巧:SEO优化与关键词设置指南  宝塔建站无法访问?如何排查配置与端口问题?  怎么将XML数据可视化 D3.js加载XML  公司网站制作价格怎么算,公司办个官网需要多少钱?  大连网站制作公司哪家好一点,大连买房网站哪个好?  建站之星如何实现网站加密操作?  学校为何禁止电信移动建设网站?  详解免费开源的.NET多类型文件解压缩组件SharpZipLib(.NET组件介绍之七)  如何快速搭建高效服务器建站系统?  如何生成腾讯云建站专用兑换码?  单页制作网站有哪些,朋友给我发了一个单页网站,我应该怎么修改才能把他变成自己的呢,请求高手指点迷津?  如何在Golang中指定模块版本_使用go.mod控制版本号  如何在阿里云高效完成企业建站全流程?  ,巨量百应是干嘛的?  南阳网站制作公司推荐,小学电子版试卷去哪里找资源好?  网站制作新手教程,新手建设一个网站需要注意些什么?  如何在新浪SAE免费搭建个人博客?  *服务器网站为何频现安全漏洞?  建站之星安全性能如何?防护体系能否抵御黑客入侵?  建站之星后台管理系统如何操作?  手机网站制作平台,手机靓号代理商怎么制作属于自己的手机靓号网站?  高防服务器:AI智能防御DDoS攻击与数据安全保障  如何快速搭建高效简练网站?  娃派WAP自助建站:免费模板+移动优化,快速打造专业网站  如何通过建站之星自助学习解决操作问题?  如何注册花生壳免费域名并搭建个人网站?  武清网站制作公司,天津武清个人营业执照注销查询系统网站?  如何快速查询网址的建站时间与历史轨迹?  常州企业网站制作公司,全国继续教育网怎么登录?  官网自助建站平台指南:在线制作、快速建站与模板选择全解析  网站app免费制作软件,能免费看各大网站视频的手机app?  建站之星官网登录失败?如何快速解决? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。