PHP Apache2.2 虚拟主机配置

飘逸的风13年前 (2013-01-26)程序6317
APACHE+PHP+MYSQL 基本环境设好了之后,今天在此基础之上设置
多个虚拟主机,即一个IP,可以有多个域名访问,也可以说一个WEB SERVER
上架设多个网站(在网上找了很久,都没有找到一个可以设置成功的例子,只好自己慢慢弄了,用了我36个小时)。
这个就是我们在网上看到的像bluehost,justhost等五大空间提供商所提供的虚拟主机,
就是这样的原理。
在上次的环境之上要做如下设置:

1.找到Apache的\conf目录下的httpd.conf文件,打开它,找到下面这两行:
# Virtual hosts
#Include conf/extra/httpd-vhosts.conf
把它改成下面这样:
# Virtual hosts
Include conf/extra/httpd-vhosts.conf

意思是启用虚拟主机的设置文件httpd-vhosts.conf,虚拟主机的设置都在这个文件下
设置,不用去改httpd.conf,这样比较清晰。

2.找到Apache的\conf\extra目录下的httpd-vhost.conf这个文件。
打开它的时候里面已经含有像下面这样的内容:
–虚拟主机配置开始
<VirtualHost *:80> 
ServerAdmin webmaster@dummy-host.localhost
DocumentRoot “C:/Program Files/Apache Software Foundation/Apache2.2/docs/dummy-host.localhost”
ServerName dummy-host.localhost
ServerAlias www.dummy-host.localhost
ErrorLog “logs/dummy-host.localhost-error.log”
CustomLog “logs/dummy-host.localhost-access.log” common
</VirtualHost>

COPY上面这几行,关键是:把
DocumentRoot “”–虚拟主机的目录,即域名对应的根目录
ServerName dummy-host.localhost–你想要的域名。
还要在每个虚拟主机配置开始前加入以下内容:
<Directory “c:\test”>
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
Order allow,deny
Allow from all
</Directory>

其中:
<Directory “c:\test”>  –这是你的虚拟主机的被授权的目录
一般与
DocumentRoot “”–虚拟主机的目录,即域名对应的根目录
相同。
Allow from all –这句是重点,只要allow别人才行访问上面定义的目录,
否则在IE或firefox访问时会显示503错误,即禁止访问。

如果你不想在httpd-vhost.conf 里加入
<Directory “c:\test”>
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
Order allow,deny
Allow from all
</Directory>
那么你也可以这样做:
在httpd.conf里找到以下内容:
<Directory />
Options FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
</Directory>

这是Apache默认的设置,最后一行是这样的
Deny from all
意思是拒绝所有访问对根目录的访问,别人是访问不了你的网站的,
所以要改成
Allow from all

不过还是建议用第一种方法,即修改httpd-vhost.conf的内容,这样比较清楚,也比较安全。
这样apache的设置就完成了,不过还要做下面这一步。

3.还有关键的一步:
这一步不做,一定不行因为你本地的机器没有DNS解析。
找到C:\WINDOWS\system32\drivers\etc目录下的hosts文件
加上这样的记录
127.0.0.1 demoa–这个是你的域名,你要设置多少个虚拟主机,就要加多少行这样的记录。

OK,现在你可以设置N+1个域名了。
也可以参考一下这个地址:https://httpd.apache.org/docs/2.0/vhosts/examples.html


样例:

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

<VirtualHost *:80>
ServerAdmin webmaster@dummy-host.localhost
DocumentRoot /www/docs/dummy-host.localhost
ServerName dummy-host.localhost
ServerAlias www.dummy-host.localhost
ErrorLog logs/dummy-host.localhost-error_log
CustomLog logs/dummy-host.localhost-access_log common
</VirtualHost>

<VirtualHost *:80>
ServerAdmin webmaster@dummy-host2.localhost
DocumentRoot /www/docs/dummy-host2.localhost
ServerName dummy-host2.localhost
ErrorLog logs/dummy-host2.localhost-error_log
CustomLog logs/dummy-host2.localhost-access_log common
</VirtualHost>


<Directory "D:\phpwork">
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
Order allow,deny
Allow from all
</Directory>
<VirtualHost *:80>
ServerAdmin webmaster@dummy-host2.localhost
DocumentRoot D:\phpwork
ServerName localhost
ErrorLog logs/dummy-host2.localhost-error_log
CustomLog logs/dummy-host2.localhost-access_log common
</VirtualHost>

<Directory "D:\phpwork\phpMyAdmin">
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
Order allow,deny
Allow from all
</Directory>
<VirtualHost *:80>
ServerAdmin webmaster@dummy-host2.localhost
DocumentRoot D:\phpwork\phpMyAdmin
ServerName phpMyAdmin.local
ErrorLog logs/dummy-host2.localhost-error_log
CustomLog logs/dummy-host2.localhost-access_log common
</VirtualHost>


<Directory "D:\phpwork\test">
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
Order allow,deny
Allow from all
</Directory>
<VirtualHost *:80>
ServerAdmin webmaster@dummy-host2.localhost
DocumentRoot D:\phpwork\test
ServerName test.local
ErrorLog logs/dummy-host2.localhost-error_log
CustomLog logs/dummy-host2.localhost-access_log common
</VirtualHost>

相关文章

分享一个生成sitemap.xml的类

很多站长在做seo优化的时候都会向各大搜索引擎网站提交站点地图sitemap.xml,同样需要提交。于是专门写了一个生成sitemap.xml的类,支持生成在制定目录下,默认生成在网站根目录下。 分...

Javascript 正则表达式使用手册

一.正则表达式匹配常用语法 “+”字符:规定表达式字符出现一次或多次。 “*”字符:规定表达式字符出现零次或多次。 “?”字符:规定表达式字符出现零次或一次。 ^ 匹配的是字符的开头 ,匹配的...

PHP清理标签属性

// code from https://www.aslibra.com/ // by hqlulu // replace <img (any code) src="(pic url)"&g...

MemCache安装使用

Windows下的Memcache安装: 1. 下载memcache的windows稳定版,解压放某个盘下面,比如在c:\memcached 2. 在终端(也即cmd命令界面)下输入 ‘c:\me...

php日历的高效写法

标题写的吸引人了些,不过我就觉得是挺高效的,我相信 之前看到过 irlvirus 写的 《php练习代码-日历》,我觉得效率都不是很好。 date()函数结合mktime() 可以得到一切东西...

PHP 文件上传$_FILES

文件上传表单<form enctype="multipart/form-data" action="URL" method="post">  <inp...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。