apache虚拟主机设置(单IP多域名)
2014-06-03 11:15
561 查看
1.打开apache目录下的httpd.conf文件(此文件在D:\wamp\bin\apache\Apache2.2.17\conf\extra\目录下,具体路径视WAMP安装情况),使用Ctrl+F快捷键查找到如下模块:
去掉前面的#,如此就意味着开启了httpd-vhosts虚拟主机模块;
2.在任意磁盘上新建一个文件夹(为方便下面的讲解,文件夹命名为vhosts_set,文件夹名称任意),此文件夹内存放虚拟主机域名信息。,再次打开httpd.conf文件,并在文件最后添加下面语句:
语句的意思是将刚新建的vhosts_set文件夹下的xxx.conf包含进httpd.conf,其中,"D:/path/to/"是指我之前新建vhosts_set文件夹的路径
3.在vhosts_set文件夹下新建xxx.conf文件,其命名必须与步骤2中的xxx.conf一致,并在文件内添加如下内容:
保存添加内容,重启Apache服务器。此时在浏览器地址栏里输入http://localhost可正常访问
4.在vhosts_set文件夹下的xxx.conf新建新主机,如:http://iecspace.ecjtu.org,添加语句如下:
同时,需要修改本地hosts文件,打开C:\WINDOWS\system32\drivers\etc\hosts在文件最后新增如下语句:
保存修改,重启apache服务器,在浏览器地址栏输入:http://iecspace.ecjtu.org可能会出现如下提示:
这是由于目录访问权限导致的(Linux服务器上配置对文件夹访问权限要求更高,出错率会更大),这时需要设置对目录的访问权限,打开httpd.conf文件,找到如下加载模块:
改为:
保存修改,重启apache服务器,重新在地址栏内输入http://iecspace.ecjtu.org,即可指向目的站点。
5.若要增加新的主机,可重复上述添加过程即可。
说明:事实上,vhosts_set文件夹完全可以不必创建,若将xxx.conf文件内的所有内容直接写入httpd.conf文件中,这样也是可以的。但是,为了更方便地管理已设置的主机,建议根据上述步骤进行配置。同时,互联网上很多资料提到的修改httpd-vhosts文件的方法其实也是可行的,只要读者理解apache服务器是直接加载httpd.conf文件,并在其中通过包含(Include)其他文件从而引入添加内容这样一个核心的思想就可以举一反三地变通了。
Apache如何添加二级域名:
httpd.conf 中需要打开mod_rewrite功能(关于URL重定向的具体说明,可以参照.htaccess使用方法总结),具体操作就是,在httpd.conf 的最后,添加以下内容:
RewriteEngine on
RewriteMap lowercase int:tolower
RewriteMap vhost txt:/usr/local/etc/apache/vhost.map
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
RewriteCond ${vhost:%1} ^(/.*)$
RewriteRule ^/(.*)$ %1/$1
其中的 /usr/local/etc/apache 是你的 apache 服务器配置文件所在路径,根据实际情况更改(例如在/etc/httpd/下面)。然后,在这个所在路径的目录下创建一个文件: vhost.map,内容为:
www.minidx.com /usr/local/www/minidx.com
www.ntt.cc /usr/local/www/ntt.cc
blog.minidx.com /usr/local/www/minidx.com/blog
最后,在网站根目录 /usr/local/www/下,创建对应目录就可以了。如果需要增加,修改或者删除域名,子域名,仅仅需要更改vhost.map文件,而不用重启apache进程。
==========================附阿里云原装phpwind配置=======================================
<DirectoryMatch "/alidata/www/phpwind/(attachment|html|data)">
<Files ~ ".php">
Order allow,deny
Deny from all
</Files>
</DirectoryMatch>
<VirtualHost *:80>
DocumentRoot/alidata/www/phpwind
ServerName localhost
ServerAlias localhost
<Directory "/alidata/www/phpwind">
Options Indexes FollowSymLinks
AllowOverride all
Order allow,deny
Allow from all
</Directory>
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^(.*)-htm-(.*)$ .php?
RewriteRule ^(.*)/simple/([a-z0-9\_]+\.html)$ /simple/index.php?
</IfModule>
ErrorLog "/alidata/log/httpd/phpwind-error.log"
CustomLog "/alidata/log/httpd/phpwind.log" common
</VirtualHost>
1 | #Include conf/extra/httpd-vhosts.conf |
2.在任意磁盘上新建一个文件夹(为方便下面的讲解,文件夹命名为vhosts_set,文件夹名称任意),此文件夹内存放虚拟主机域名信息。,再次打开httpd.conf文件,并在文件最后添加下面语句:
1 | Include "D:/path/to/vhosts_set/xxx.conf" |
3.在vhosts_set文件夹下新建xxx.conf文件,其命名必须与步骤2中的xxx.conf一致,并在文件内添加如下内容:
1 | <VirtualHost *:80> |
2 | DocumentRoot "D:\wamp\www" (指向文件目录) |
3 | ServerName |
4 | </VirtualHost> |
4.在vhosts_set文件夹下的xxx.conf新建新主机,如:http://iecspace.ecjtu.org,添加语句如下:
1 | <VirtualHost *:80> |
2 | DocumentRoot "D:\web\iecspace" (指向文件目录) |
3 | ServerName http://iecspace.ecjtu.org (指向新域名) |
4 | </VirtualHost> |
1 | 127.0.0.1http://iecspace.ecjtu.org |
这是由于目录访问权限导致的(Linux服务器上配置对文件夹访问权限要求更高,出错率会更大),这时需要设置对目录的访问权限,打开httpd.conf文件,找到如下加载模块:
1 | <Directory> |
2 | Options FollowSymLinks |
3 | AllowOverride None |
4 | Order deny,allow |
5 | Deny from all |
6 | </Directory> |
1 | <Directory /> |
2 | Options Indexes FollowSymLinks |
3 | AllowOverride None |
4 | </Directory> |
5.若要增加新的主机,可重复上述添加过程即可。
说明:事实上,vhosts_set文件夹完全可以不必创建,若将xxx.conf文件内的所有内容直接写入httpd.conf文件中,这样也是可以的。但是,为了更方便地管理已设置的主机,建议根据上述步骤进行配置。同时,互联网上很多资料提到的修改httpd-vhosts文件的方法其实也是可行的,只要读者理解apache服务器是直接加载httpd.conf文件,并在其中通过包含(Include)其他文件从而引入添加内容这样一个核心的思想就可以举一反三地变通了。
Apache如何添加二级域名:
httpd.conf 中需要打开mod_rewrite功能(关于URL重定向的具体说明,可以参照.htaccess使用方法总结),具体操作就是,在httpd.conf 的最后,添加以下内容:
RewriteEngine on
RewriteMap lowercase int:tolower
RewriteMap vhost txt:/usr/local/etc/apache/vhost.map
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
RewriteCond ${vhost:%1} ^(/.*)$
RewriteRule ^/(.*)$ %1/$1
其中的 /usr/local/etc/apache 是你的 apache 服务器配置文件所在路径,根据实际情况更改(例如在/etc/httpd/下面)。然后,在这个所在路径的目录下创建一个文件: vhost.map,内容为:
www.minidx.com /usr/local/www/minidx.com
www.ntt.cc /usr/local/www/ntt.cc
blog.minidx.com /usr/local/www/minidx.com/blog
最后,在网站根目录 /usr/local/www/下,创建对应目录就可以了。如果需要增加,修改或者删除域名,子域名,仅仅需要更改vhost.map文件,而不用重启apache进程。
==========================附阿里云原装phpwind配置=======================================
<DirectoryMatch "/alidata/www/phpwind/(attachment|html|data)">
<Files ~ ".php">
Order allow,deny
Deny from all
</Files>
</DirectoryMatch>
<VirtualHost *:80>
DocumentRoot/alidata/www/phpwind
ServerName localhost
ServerAlias localhost
<Directory "/alidata/www/phpwind">
Options Indexes FollowSymLinks
AllowOverride all
Order allow,deny
Allow from all
</Directory>
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^(.*)-htm-(.*)$ .php?
RewriteRule ^(.*)/simple/([a-z0-9\_]+\.html)$ /simple/index.php?
</IfModule>
ErrorLog "/alidata/log/httpd/phpwind-error.log"
CustomLog "/alidata/log/httpd/phpwind.log" common
</VirtualHost>
相关文章推荐
- apache设置多个虚拟主机使多个域名可行有两种办法:1.多个IP解析到不同虚拟主机 2.单个IP绑定多个域名分解
- APACHE环境下同IP多域名虚拟主机的设置方案全攻略(2)[ubuntu 12, linux]
- Apache 一个ip多个域名设置(虚拟主机)
- APACHE环境下同IP多域名虚拟主机的设置方案全攻略[ubuntu 12, linux]
- Apache2.2.x+tomcat单IP多域名多站点的虚拟主机配置详解(win2003环境)
- 多IP多端口apache虚拟主机的配置的设置
- apache本地虚拟主机配置(多域名,单IP)【转】
- 如何配置apache一个ip多域名的虚拟主机?
- 【Apache】在Apache中利用ServerAlias设置虚拟主机接收多个域名和设置域名泛解析
- Apache2.2.x+tomcat单IP多域名多站点的虚拟主机配置详解(win2003环境)
- Apache基于IP、基于port和基于域名的三种虚拟主机的配置方法(linux下)
- 关于Windows下Apache使用虚拟主机(多域名多站点)的设置
- apache 基于IP、port和域名的三种虚拟主机的配置方法
- 在linux平台上搭建目前企业公司中基于域名,ip以及端口的虚拟主机apache服务!还有
- apache多域名转发至tomcat&https设置&虚拟主机的设置
- apache 2.2设置单IP多端口的虚拟主机
- linux下Apache2.2.4 + tomcat5.5+php 一个IP配置多域名,虚拟主机
- Apache服务器虚拟主机设置问题-如何使通过IP访问为默认的apache页面 <转载>
- Windows下Apache使用虚拟主机(多域名多站点)的设置
- apache 基于域名,IP,端口 3种方式的虚拟主机