`
zhengdl126
  • 浏览: 2542420 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类

虚拟主机配置教程,包括apache mod_vhost_alias模块

阅读更多

 

 

-----------

/htdocs/test 

/htdocs/admin

 

#ServerName localhost:80
NameVirtualHost *:80


Alias /admin/ "/data0/htdocs/admin/"
<VirtualHost *:80>
    ServerAdmin webmaster@dummy-host.example.com
    DocumentRoot "/data0/htdocs/test"
    ServerName  www.test.com 

  ServerAlias   www.test.com

   #ErrorLog "logs/dummy-host.example.com-error_log"
    #CustomLog "logs/dummy-host.example.com-access_log" common
</VirtualHost>

 

 

 

 

---------------------------

 

先看看我的经常用的配置文件【底部附件我经常用一个httpd.conf文件】:

 

NameVirtualHost 66.90.103.147:80

<VirtualHost *:80>
DocumentRoot /var/www/html/web-sale
<Directory "/var/www/html/web-sale">
allow from all
Options +Indexes
</Directory>
ServerName www.gllsale.cn
ServerAlias 7.vip2011.cn

Alias /tv /home/www/html/netnov/ch

ErrorLog logs/sale-error_log
CustomLog logs/sale-access_log common
</VirtualHost>




<VirtualHost *:80>
DocumentRoot /var/www/html/netnov
<Directory "/var/www/html/netnov">
allow from all
Options +Indexes
</Directory>
ServerName www.netnov.cn
ServerAlias 7.vip2011.cn

ErrorLog logs/netnov-error_log
CustomLog logs/netnov-access_log common
</VirtualHost>


<VirtualHost *:80>
DocumentRoot /var/www/html/netnov/test
<Directory "/var/www/html/netnov/test">
allow from all
Options +Indexes
</Directory>
ServerName test.netnov.cn
ServerAlias 7.vip2011.cn
</VirtualHost>

 

 

 

 

 

 

 

PHP5研究室
http://www.phpv.net/html/1584.html


前言:我有几台服务器托在机房,连年亏损. 我想我应该考虑将他们向外出租.准备明年运营,以扭转几年来尴尬的局面.于是,就有了这个教程.

目标:

1.用户开通FTP后,自动在/www/下创建一个与域名同名的目录.
(假如phpv.net的管理员购买空间后,他的主目录将是 /www/phpv.net)
2.空间知道泛域名绑定.
(即:访问者在浏览器内输入www.phpv.net 将会自动访问/www/phpv.net/www.phpv.net目录下的index文件.而输入bbs.phpv.net则访问/www/phpv.net/bbs.phpv.net/这个目录 .....)


按以前的,我得挨个绑虚拟主机.然后再restart apache
像这样:

<VirtualHost *:80>
    ServerAdmin webmaster@phpv.net
    DocumentRoot /www/phpv.net/www.phpv.net
    ServerName www.phpv.net
    ErrorLog logs/phpv-error_log
    CustomLog logs/phpv-access_log common
</VirtualHost>

<VirtualHost *:80>
    ServerAdmin webmaster@phpv.net
    DocumentRoot /www/phpv.net/bbs.phpv.net
    ServerName bbs.phpv.net
    ErrorLog logs/bbs-phpv-error_log
    CustomLog logs/bbs-phpv-access_log common
</VirtualHost>

 

 

----------本机


NameVirtualHost *:80

<VirtualHost *:80>
    DocumentRoot D:/AppServ/www
    ServerName localhost
    ErrorLog logs/phpv-error_log
    CustomLog logs/phpv-access_log common
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot D:/AppServ/www/kohana
    ServerName domo007.kohanas.com
    ErrorLog logs/phpv-error_log
    CustomLog logs/phpv-access_log common
</VirtualHost>

 

 

...............

#apache restart

简直太烦人太累了.

后来经过自己的测试和多位好友的帮助,我使用Apache 的 mod_vhost_alias模块.完美实现了这个要求.


我是这样开始的:

1.把原来的虚拟主机配置都删除掉, NameVirtualHost *:80 这句也加上个#在它前面.

2.接着,在httpd.conf使用下面的mod_vhost_alias配置

UseCanonicalName Off
VirtualDocumentRoot /www/%2+/%0

(注意:以上/www/ 是我的网站根目录,在实现操作中请按自己要求更改.)

重启apache.
#apache restart

3.测试
   使用FTP服务器的功能,使得用户登录时,自动以其域名创建主目录.(我用的是 pureftpd 具体配置请参阅相关文献)  
   以刚刚创建好的FTP用户登录,在目录下创建文件夹www.phpv.net 上传一个phpinfo的index.php
   输入http://www.phpv.net 看看是否正常. (域名的A记录要指向本机IP) 如果能正常显示出info信息,就表明成功了.

4.但,问题来了,使用http://phpv.net 访问的却是 /www/net/ phpv.net 这个目录.
想使用rewirte做一个自动跳转来解决这个问题,使得用户输入http://phpv.net 时能访问到/www/phpv.net/www.phpv.net 这个目录

rewirte解决方式:

加以下rule到http.conf中

RewriteEngine On
#RewriteCond %{HTTP_HOST} ^w+.w{1,3}$
RewriteCond %{HTTP_HOST} ^[a-z-0-9]+.w{1,3}$RewriteRule (.*) http://www.%{HTTP_HOST}$1 [R=301,L]


再次重启Apache,访问http://phpv.net ,自动跳转到http://www.phpv.net


5.相关问答:
如果把不需要执行PHP的目录禁用PHP解析?

这样:
<Directory "/www/phpv.net/manual.phpv.net">
php_flag engine off
</Directory>

好了.配置基本OK.

感谢:fluck boban 吴洪声 对本文的贡献.

附后:此配置基本能满足大部分用户的需求.
但有以下缺点:不能根据虚拟主机做个性化设置,比如,设置一个虚拟主机的PHP执行目录范围.
还有不能自动绑定两个域名到同一目录.

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/zhengdl126/archive/2009/06/19/4281929.aspx

分享到:
评论

相关推荐

    如何实现apache动态虚拟主机和激活mod_vhost_alias.so模块

    本文详细介绍了如何使用Apache httpd-2.2.15版本实现动态虚拟主机的配置过程,包括编译安装、添加`mod_vhost_alias`模块、配置Apache服务、创建站点文件夹、设置用户认证等关键步骤。通过这些步骤,您可以轻松地在同...

    mod_shared_hosting:重新实现支持多个路径和suexec的mod_vhost_alias

    该模块不使用mod_vhost_alias中可用的IP地址配置选项。 地位 该代码已有一段时间没有更新或在生产中使用,但是确实可以在承载超过80k网站的负载平衡Web服务器上运行,而不会出现任何问题。 安装 编译apache时: $...

    tomcat_apache共享动态连接库

    LoadModule vhost_alias_module modules/mod_vhost_alias.so LoadModule negotiation_module modules/mod_negotiation.so LoadModule dir_module modules/mod_dir.so LoadModule imagemap_module modules/mod_...

    Apache HTTP Server Version 2.2 文档(2013.4.10最新)

    mod_vhost_alias mpmt_os2(MPM) Apache MPM 公共指令 mpm_netware(MPM) winnt(MPM) prefork(MPM) 指令速查 worker(MPM) The Apache EBCDIC Port 针对特定平台的说明 Using Apache With Novell NetWare Running a ...

    062901apache 虚拟主机1

    最后,还可以通过第三方模块如mod_vhost_dbi将虚拟主机的配置存储在数据库中,这样可以更加灵活地管理和更新虚拟主机信息。但要使用这种方法,需要先安装相应的库文件,如libdbi及相关驱动。 总的来说,Apache虚拟...

    windows下apache2.4虚拟主机配置本机域名以及报403的处理方法

    windows下apache2.4虚拟主机配置本机域名 1.首先,找到hosts文件,C:\Windows\System32\drivers\etc\hosts,打开hosts,IP指向一个域名: 如127.0.0.1 www.tp5.com 2.打开Apache配置文件 httpd.conf,位于Apache\...

    Linux Apache Web 服务器终极教程

    - **mod_vhost_alias**: 虚拟主机别名支持。 - **mod_xml2enc**: XML编码转换。 通过上述知识点的详细介绍, 我们不仅了解了Apache Web服务器的强大功能, 还学习了如何在Linux环境下安装配置Apache, 以及如何利用...

    apache+tomcat域名泛解析

    mod_vhost_alias是Apache的一个模块,它支持使用虚拟主机别名,这对于实现泛域名解析至关重要。首先需要确保该模块已启用: ```apache LoadModule vhost_alias_module modules/mod_vhost_alias.so ``` 2. **...

    apache配置虚拟主机的方法详解

    总结来说,配置Apache虚拟主机涉及开启虚拟主机模块、编写`httpd-vhosts.conf`文件、更新`hosts`文件,并根据需求进行高级定制。通过这些步骤,你可以在同一台服务器上有效地管理多个独立的网站。

    Apache+tomcat动态二级域名.doc

    LoadModule vhost_alias_module modules/mod_vhost_alias.so LoadModule jk_module modules/mod_jk.so ``` 3. 将`mod_jk.so`模块加载到Apache中,将该模块文件放到`&lt;Apache安装目录&gt;/modules`。 4. 修改`httpd....

    教菜鸟用ubuntu搭建web服务器

    为了实现动态虚拟主机,我们需要使用 vhost_alias 模块。在 Apache2 已启用的模块目录中建立一个符号链接,以启用该模块: ``` $ sudo ln -s /etc/apache2/mods-available/vhost_alias.load /etc/apache2/mods-...

    windows 7 安装 php 5.3.9 配置 + apache 2.2.17 教程详解

    - 启用虚拟主机模块:取消注释 `LoadModule vhost_alias_module modules/mod_vhost_alias.so`。 - 加载 PHP 模块:添加 `LoadModule php5_module "c:/php/php5apache2_2.dll"`。 - 设置 PHP 初始化目录:添加 `...

    Apache+php+mysql 手动配置

    - 配置虚拟主机支持:启用`LoadModule vhost_alias_module modules/mod_vhost_alias.so`。 - 添加`AddType application/x-httpd-php .html .htm .php`以支持`.html`、`.htm`等文件作为PHP脚本处理。 - 测试Apache...

    062801web原理apache配置1

    例如,`mod_ssl`模块支持HTTPS,`mod_rewrite`用于URL重写,`mod_alias`处理路径别名,`mod_vhost`实现虚拟主机等。Apache的多道处理模块(MPM)包括 prefork 和 worker 模型,前者每个请求对应一个进程,后者每个...

    基于linux的自动虚拟主机Web教学实验平台的设计.pdf

    Apache的vhost-alias功能实现了泛名DNS与用户空间的对接,提高了教学平台的灵活性。此外,系统还通过模块化设计,确保了各个功能的独立性和可扩展性。 通过这样的设计,平台不仅能提供稳定、安全的教学环境,还能...

    Apache_+_Tomcat来构建J2EE环境系统部署手册

    # ./configure --prefix=/usr/local/httpd/ --enable-so --enable-vhost-alias --enable-rewrite --enable-deflate --enable-ssl --enable-modules=so --with-mpm=worker --enable-proxy # make # make install ...

    配置wamp3.0

    #LoadModule vhost_alias_module modules/mod_vhost_alias.so ``` 将前面的注释符号`#`去掉,启用虚拟主机支持。 ##### 2. 添加虚拟主机 - 打开`E:\wamp64\alias`目录下的`httpd-vhosts.conf`文件,添加虚拟主机...

Global site tag (gtag.js) - Google Analytics