设为首页 收藏本站
查看: 944|回复: 0

[经验分享] 虚拟主机配置教程,包括apache mod_vhost_alias模块

[复制链接]

尚未签到

发表于 2017-1-10 11:38:43 | 显示全部楼层 |阅读模式
  -----------
  /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

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-326544-1-1.html 上篇帖子: 用apache.commons.pool 实现Access数据库连接池 下篇帖子: Apache使用mod_expires模块加速网页浏览
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表