apache2.4配置虚拟主机遇到的那些坑

原创 2016年11月10日 15:14:25

因为换了工作现在公司缺人,不得不重入一线干起技术开发的工作,公司没有运维人员所以我来兼职。为了节约云服务器的租用费,我准备在正式环境上再部署一套测环

境,这也是暂时的先过过渡。于是上网查阅apache配置虚拟主机的相关资料,各种资料众说纷纭,搞了半天也没成功,正式环境总是提示403 accescc forbidden。就在我快放

弃,准备再购置一套云服务器的时候,终于成功了。下面我就把我的配置过程和所遇到的坑记录下来,做一份备忘录。

我准备以test.XXXX.com做为测试环境的域名,首先我进入域名服务商的页面新增了一个域名解析test,IP还是指向正式环境的IP,因为测试环境也在同一台服务器上嘛,

作完这一步后才正式开始配置apache的虚拟主机。查看网上资料大都直接写明需要在httpd.conf文件中去掉 Include "conf/extra/httpd-vhosts.conf"前面的注释,表示

开启虚拟主机。但是并没有说明在httpd.conf中配置的相关信息和httdp-vhost.conf中配置的相关信息有什么联系,例如如果本来在httpd.conf中就配置

了正式环境的根目录,相关权限,那么如果开启了虚拟主机的配置文件,到底是只需要配置其他你需要的其他端口或者域名的虚拟主机还是也要把在

httpd.conf中配置的信息也要写入到httpd-vhosts.conf中呢?为了尽快搞定,带着疑问我开始配置httpd-vhost.conf文件。

<VirtualHost *:80>
    ServerAdmin webmaster@dummy-host3.example.com
    DocumentRoot "
我的代码目录"
    ServerName test.
XXX.com
    ErrorLog "logs/dummy-host3.example.com-error_log"
    CustomLog "logs/dummy-host3.example.com-access_log" common
  </VirtualHost>

保存退出,重启apache。访问正式环境出现报错:403 accescc forbidden。测试环境是好的。再次网上找资料,说是缺少权限相关的配置项,于是重新配置如下:

<VirtualHost *:80>
    ServerAdmin webmaster@dummy-host3.example.com
    DocumentRoot "
我的代码目录"
    ServerName test.
XXX.com
    ErrorLog "logs/dummy-host3.example.com-error_log"
    CustomLo
g "logs/dummy-host3.example.com-access_log" common
 
               <Directory "我的代码目录">

  Options Indexes FollowSymLinks
AllowOverride All
Allow from all
Order allow,deny

</Directory>

</VirtualHost>

保存退出,重启apache,问题照旧。比较抓狂了,上网搜索,又有说是因为apache2.4的配置和apache2.2的关于权限的配置写法不一样,我的apache是2.4版本的,配置文件写

法应该是

<Directory "我的代码目录">
    Options Indexes FollowSymlinks
    AllowOverride All
    Require all granted
    </Directory>

保存退出,重启apache,依然报同样的错。快疯了,搞了半天了,没有解决问题啊。于是我想是不是httpd.conf里面的配置应该再放一份到httpd-vhost.conf中去呢,并且根据网

上的资料,我把权限相关的配置项从虚拟主机的配置项中提了出来,我想只要目录是我正式环境和测试环境的上级目录的话,应该可以管到他们两的,于是配置又变成了:

<Directory "/opt/lampp/htdocs">
    Options Indexes FollowSymlinks
    AllowOverride All
    Require all granted
    </Directory>


<VirtualHost *:80>
    ServerAdmin webmaster@dummy-host3.example.com
    DocumentRoot "/opt/lampp/htdocs/weizeto_test"
    ServerName test.weizeto.com
    ErrorLog "logs/dummy-host3.example.com-error_log"
    CustomLog "logs/dummy-host3.example.com-access_log" common
  </VirtualHost>


<VirtualHost *:80>
    ServerAdmin webmaster@dummy-host4.example.com
    DocumentRoot "/opt/lampp/htdocs/weizeto"
    ServerName www.weizeto.com
    ErrorLog "logs/dummy-host4.example.com-error_log"
    CustomLog "logs/dummy-host4.example.com-access_log" common
  </VirtualHost>

保存退出,重启apache,终于OK了!!!正式环境和测试环境都可以正常访问了。

总结一下:

1.如果开启了虚拟主机的配置文件,也就是在httpd.conf中去掉了 Include "conf/extra/httpd-vhosts.conf"前面的注释的话,一定要在httpd-vhost.conf中写上权限

的配置项,否则会导致你的localhost也就是初始配置的根目录下的站点出现403,没权限访问的报错。

2.除了在httpd-vhost.conf中配置你想新增的站点外,还要把在httpd.conf中的初始配置站点,新增在httpd-vhost.conf中。

3.如果你所有站点的路径到在htdocs下面,那可以在httpd-vhost.conf中统一写一份权限配置项,只要保证路径是你所有站点的上级目录,不用在每个

virtualhost配置中都去写一份权限配置项。

4.请检查你的apache版本,2.2和2.4的权限配置写法是不一样的。

2.2的如下:

Options Indexes FollowSymLinks
AllowOverride All
Allow from all
Order allow,deny

2.4的如下:

 Options Indexes FollowSymlinks
 AllowOverride All
 Require all granted

最后再说一句,搞开发遇到的问题,无论是代码上的还是配置上的或者数据库等等到后面都是可以解决的,只要你真的想解决它,一定要有这个信心。


相关文章推荐

Apache配置虚拟主机的三种方式

Apache配置虚拟主机的三种方式 一、基于IP 二、基于主机名 三、基于端口 首先在Apache下的htdocs目录下,新建两个目录,test1和test2 每个目录下新建一个测试页面inde...

Apache之——多虚拟主机多站点配置的两种实现方案

Apache中配置多主机多站点,可以通过两种方式实现: 将同一个域名的不同端口映射到不同的虚拟主机,不同端口映射到不同的站点;将同一个端口映射成不同的域名,不同的域名映射到不同的站点。 我们只需要修...

windows下apache虚拟主机的配置

我们这里主要讲最常用的基于域名的虚拟主机的配置。 1.记事本打开hosts (win7打不开的给权限),例如路径:C:\ Windows\ System32\ drivers\etc, 写入如下内容:...

apache2.4 虚拟主机配置

环境:osx yosemite,apache2.4 一、什么是虚拟主机? 二、如何配置?
  • yeruby
  • yeruby
  • 2015年06月10日 19:13
  • 5727

apache2.2 虚拟主机配置

一、修改httpd.conf 打开appserv的安装目录,找到httpd.conf文件,分别去掉下面两行文字前面的#号。  #LoadModule vhost_alias_module mo...
  • zm2714
  • zm2714
  • 2012年12月20日 20:19
  • 49409

Apache 配置https虚拟主机

一、安装带ssl的Apache2.2.21 1、安装apache之前需要先检查openssl是否安装完毕,yum list "*openssl*",如果没有用yum安装下即可 2、ap...

Apache2.4虚拟主机和多站点配置

博客中提到的各个文件路径说明:(我的apache安装在”D:\webtools\Apache2.4”).我的apache版本为Apache/2.4.17 (Win64),最新版下载地址:http://...

Linux下Apache虚拟主机配置

Linux下Apache虚拟主机配置 虚拟主机技术主要分三种情况 1,一台服务器,多个ip 2,一台服务器,同一个ip,多个域名 3,一台服务器,同一个ip,多个端口 注意...

Apache虚拟主机配置

Apache虚拟主机配置

apache 基本vhost配置

经常使用Apache虚拟主机进行开发和测试,但每次需要配置虚拟主机时都习惯性的ctrl+c和ctrl+v,这次由于重装系统,需要配置一个新的PHP开发环境虚拟主机,于是总结一下Apaceh配置http...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:apache2.4配置虚拟主机遇到的那些坑
举报原因:
原因补充:

(最多只允许输入30个字)