apache 配置虚拟目录、虚拟主机的案例分享

发布时间:2020-07-04编辑:脚本学堂
本文介绍下,apache中配置虚拟主机与虚拟目录的几个例子,以及遇到的相关问题与解决方法,有需要的朋友作个参考。

一、问题1:配置好虚拟目录后 网站首页面可以显示,但图片显示不出来(图片在虚拟目录下的文件夹内),并且点击其它链接页面时反回 403。
查看日志为:client denied by server configuration;
访问权限问题;

二、问题2:403问题解决后,点击其它链接页面时反回 404,即虚拟目录下面的文件找不到。

以下是正确的配置文档,供参考。

三、#配置虚拟目录
 

复制代码 代码示例:
<IfModule dir_module>
  DirectoryIndex index.php index.html
  alias /phpmyadmin2 "E:/phpMyAdmin2"
  <Directory "E:/phpMyAdmin2" >
    Order allow,deny
    Allow from all
  </Directory>
  </IfModule>

权限问题主要为:
Directory 结点的配置
 

复制代码 代码示例:
<Directory "E:/phpMyAdmin2" >
     Order allow,deny
     Allow from all
 </Directory>

按照上面的配置,是不会有问题的。
 
如果遇到404问题,多是因为:虚拟目录名与站点文件夹名不一样。
还有站点最好在磁盘的根目录下,否则会出现图片显示不出来的问题。
最后,把它们的名字改为一样的就可以了。

另外,配置虚拟目录时,有时是在httpd.conf 文件中的  <IfModule alias_module> 中添加:
 

复制代码 代码示例:
DirectoryIndex index.php index.html
 Alias /phpMyAdmin2 "E:/phpMyAdmin2"
  <Directory "E:/phpMyAdmin2" >
    Order allow,deny
    Allow from all
  </Directory>
 

可以添加多个虚拟目录。
还可以独立写结点添加
 

复制代码 代码示例:
#配置虚拟目录
<IfModule dir_module>
    DirectoryIndex index.php index.html
    Alias /upload "E:/Workspace/PHP/espcms/upload"
    <Directory E:/Workspace/PHP/espcms/upload >
     Order allow,deny
     Allow from all
    </Directory>
</IfModule>

配置虚拟主机时也出现404问题,首页可以访问内容页面访问不到。confextra目录下的httpd-vhosts.conf文件配置如下:
 

复制代码 代码示例:
<VirtualHost 192.168.0.159:8088 >
    DirectoryIndex index.html index.htm index.php
    ServerAdmin webmaster@dummy-host2.localhost
    DocumentRoot "E:/phpMyAdmin2"
    ServerName  jbxue
    <Directory "E:/phpMyAdmin2" >
     Order allow,deny
     Allow from all
    </Directory>
</VirtualHost>
 

输入:http://jbxue:8088 可以访问到phpMyAdmin2首页面(要修改C:WINDOWSsystem32driversetc 下的hosts文件192.168.0.159   zhangli),但是图片显示不出来,以子页面不能访问。
为phpMyAdmin2 在httpd.conf中配置一个虚拟目录此问题就不出现了。
 

复制代码 代码示例:
<IfModule dir_module>
  DirectoryIndex index.php index.html
  Alias /phpMyAdmin2 "E:/phpMyAdmin2"
  <Directory "E:/phpMyAdmin2" >
    Order allow,deny
    Allow from all
  </Directory>
</IfModule>