<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/ DTD/wml_1.1.xml">

<wml>
<head>
<meta http-equiv="cache-control" content="max-age=180,private" />
</head>
<card title="关于如何在apache上绑定多域名的问题">
<p>
作者:<a href="index.php?action=showuser&amp;userid=1&amp;hash=">xreacn</a><br />时间:2007-03-01 22:40<br />分类:<a href="index.php?action=list&amp;cid=16&amp;hash=">站点建设</a><br />内容:关于如何在apache上绑定多域名的问题 
apache服务器配置文件在 
/apache/conf/httpd.conf 

这个文件夹下有三个文件，httpd.conf是主配置文件，其他的，初学者可以不管，但是在安全上有些问题。 

绑定域名的设置，在httpd.conf的最后几行，例如： 

### 部分 3: 虚拟主机 

# 基于名称的虚拟主机示例：[/color] 

# 
# ServerAdmin webmaster@dummy-host.example.com 
# DocumentRoot /www/docs/dummy-host.example.com 
# ServerName dummy-host.example.com 
# ErrorLog logs/dummy-host.example.com-error_log 
# CustomLog logs/dummy-host.example.com-access_log common 
# 
注意，每行前有#号的，说明这只是注释，并不对apache产生控制，所以，如果你要绑定域名，在下面加入行，去掉#就可以了。如下： 


### 部分 3: 虚拟主机 

# 基于名称的虚拟主机示例： 


#设置网站管理员邮箱 
ServerAdmin webmaster@dummy-host.example.com 
#虚拟主机目录（网站根目录） 
DocumentRoot /www/docs/dummy-host.example.com 
#要绑定的域名 
ServerName dummy-host.example.com 
#产生记录文件 
ErrorLog logs/dummy-host.example.com-error_log 
#记录文件 
CustomLog logs/dummy-host.example.com-access_log common 


如果你是在本机测试，这篇文章的意义不大。谁也不会把域名绑定到一个变动IP的机器上，如果是在服务器上安装apache，则要先指定IP，使用以下命令： 

#指定主机IP地址 
NameVirtualHost 12.34.56.78 

这样的话，就把域名绑定到指定IP上了。 
———————————————————— 
[color=crimson]关于如何安装win2000adv+php5.0+iis+apache2+mysql+perl 
如果你用windows，下载最新的apache(2.0.54),php(5.0.4),mysql(5.x的是测试版，推荐用4.1.1x),zend optimizer 2.5.7和kehui cms。 

####################################################################### 
第一： 装http服务器apache 

APACHE 的安装，选择好目录即可，基本采取NEXT 一路下去就可以了。 
我的APACHE 安装目录是F:\Program Files\Apache Group\Apache2 


安装完毕，打开F:\Program Files\Apache Group\Apache2\conf下的 
httpd.conf 文件， 

"要保证APACHE2对中文支持。在httpd.conf文件中，找到下面这句，修改之： 

AddDefaultCharset ISO-8859-1（好像是这么写的，改为AddDefaultCharset off）从apache2.0.53开始,中文字符已经支持,不在需要这个语句了!!!!!! 
" 



还是httpd.conf文件里，设置ServerRoot（服务器根，也就是apache的安装目录） 
ServerRoot "F:\Program Files\Apache Group\Apache2" 
设置DocumentRoot（网站目录，也就是你机器上那些让人浏览的网页所在目录）比如： 
DocumentRoot "F:\Http" 
找到DirectoryIndex （浏览的缺省页）在后面补上一个 index.php 
这后面的一大串东西要用空格隔开比如：DirectoryIndex index.html index.php 




下面2个这么设比较好（此外Options和ServerSignature怎么设最好研究一下）： 
HostnameLookups Off 
ServerTokens Prod 
其它的以后自己慢慢学吧，反正现在是能用了。 
运行一下apache，在浏览器里输入：http://localhost/xxx.html 
看看F:\http下面的xxx.html是不是能看到了（假设xxx.html文件已经存在）？ 



############################################################################# 
第二：装脚本语言php 


下载php的zip文件，解压缩，将其中的： 
php5ts.dll、libmysql.dll 一起复制到 
F:\Program Files\Apache Group\Apache2\bin的目录下; 
php.ini-recommended改名为php.ini 和 php5apache2.dll一起复制到F:\Program Files\Apache Group\Apache2下 
此外，把php的ext目录整个复制过来，比如：F:\Program Files\Apache Group\Apache2\ext 

打开F:\Program Files\Apache Group\Apache2\conf下的 
httpd.conf 文件,添加下面这2句（这是为了让php能以模块模式运行于apache中）： 

LoadModule php5_module "php5apache2.dll" 
AddType application/x-httpd-php .php 



然后，修改php.ini 
(1) 改 display_errors = Off 成為 display_errors = On 
(2) 改 extension_dir = "./" (这个是php的ext目录所在位置)成為 

extension_dir = "F:\Program Files\Apache Group\Apache2\ext" 
(3) 改 ;extension=php_mysql.dll 去除分號成為 extension=php_mysql.dll 


php装完了。在你的网站目录下（比如：F:\http），建一个文本文件，内容如下： 

保存为info.php。首先，重新启动apache服务器（也就载入php）；然后，在浏览器里输入： 

http://localhost/info.php 
如果看到PHP的欢迎测试页面,说明安装成功 



原理： 
Apache 會啟動並載入 httpd.conf 
跑到 LoadModule 會使用 Windows API LoadLibrary 載入 php5apache2.dll 
接著會載入同目錄的 php5ts.dll 
然後會載入 php.ini 根據裡面的設定載入其他 extension dll 


各個 extension 的 dll 被載入後, 如果該 extension dll 還需要載入相關的 dll 
則其他需要的 dll 要放在 apache 的 bin 目錄下 
因為 Apache 使用 Windows API LoadLibrary 來載入 DLL 檔, 
搜尋路徑是以 bin 為最優先, 其次是 SYSTEM32) 




######################################################################### 
第三：装数据库软件mysql 
这个很简单,选好安装目录,再选好apache目录F:\Program Files\Apache Group\Apache2 
和php.ini目录F:\Program Files\Apache Group\Apache2就行了。 
装完后要设置一下。 
先选Detailed Configuration;然后是服务器类型，随便选，我选developer machine; 
接着选数据库用途，我选Multifunctional database，对innodb和myisam都支持然后 
是innodb tablespace setting，我直接next（实际上我们好像并不需要innodb，直接选第3个只支持myisam的也可以）；; 

然后，是用户数量，我选最少的； 
enable tcp/ip 我next了；字符集好像应该选第2个或第1个，我选的是第2个： 
Best Support for Multilingualism；install as windows service划钩，next; 
modify security settings自己选吧(可以改mysql的根密码password，缺省的根密码是没有。为了安全起见，最好自己设一个根密码),next。最后执行就行了。 


都弄好了，先来建一个数据库：开始，程序，mysql,运行mysql command line client 
先输入根密码password(缺省是没有，改过的就要输入自己的密码)， 
屏幕出现mysql&gt; 
在后面输入create database kehui; 然后回车（分号一定要输入），就建了一个叫kehui的数据库 
有了一个数据库就可以安装kehui cms了。（如果输入drop database xxx;就删掉xxx数据库） 




####################################################################### 
第四：装kehui cms 
kehui cms需要先安装zend optimizer，去下一个最新的，安装就行了，很简单。 

最后，把kehui都解压缩到F:\http目录下，到浏览器里输入http://localhost/install.php， 
上来是条款声明,点yes； 
进入到安装部分：host是数据库的主机名，既然数据库mysql和kehui cms都装在同一台机器上，那就填‘localhost’(也就是本地主机。如果不装在同一台机器上， 

那就填数据库所在机器的名字) 
User name是mysql的根用户名，一般只能是‘root’ 
以上两项自动出，一般不需要自己输入。 
Password是mysql的根密码，如果你没有改动过，缺省的就是什么也没有，不填；改过的话，就输入自己设的根密码。 
database就是kehui CMS系统所需的数据库，这个数据库必须已经存在才行。刚才安装mysql的时候不是 
已经建了一个也叫kehui的数据库吗？就用它好了，填'kehui' 
timezone好像是时区，默认是0，不用动。国外的朋友可能需要改，这个以后改也可以。 


好啦，next，连接数据库，并创建表..... 
所有表都建立完后， 
Admin name是管理员（也就是你）在网站上的注册名，自己起名吧。 
password输入自己登陆网站的密码 
confirm再输入一遍密码 
Admin email管理员的电子邮箱 
继续下一步，也就全部完成。点击Done就可以来到主页。 



################################################################################# 
装好后，浏览器里http://localhost/就是主页（如果中文乱码，很可能是mysql字符集选择不对，语言那里重选； 
还不行就重装mysql，语言选项里选前2个中的一个，我印象是选第2个） 


http://localhost/admin/就是超级管理员的管理界面了，在主页上点击‘管理’或者'控制面板‘，也能到管理员界面。 

进入管理员界面后，进系统设置。要注意‘系统URL’这一栏，如果地址末尾有'\'或‘/’，一定要把末尾的'\'或‘/’删掉，否则会出现问题。 


注意：系统URL最好这样写，以避免发生问题： 

如果你的kehui就在F:/http目录下，那么系统URL不填，为空，主页URL填/index.php（登录网站的时候会自动加上前面的ip地址的）；如果kehui网站在F:/http/kehui目录下，系统URL要填/kehui，主页URL填/kehui/index.php。大体上就是这个意思。 

—————————————————————————————————————— 
如果再不懂，那再看下面的例子 


我现在有这么一个问题， 
我有一台服务器，只有一个ip，假设为202.112.11.22 
我有两个国际域名，三个站点， 
我想用apache支持多个域名， 
站点一通过202.112.11.22访问（对应本机usr/local/www/) 
站点二www.site1.com的地址为202.112.11.22/site1/（对应本机usr/local/www/site1/) 
站点三www.site2.com的地址为202.112.11.22/site2/（对应本机usr/local/www/site2/) 
请问如何设置apache ？ 



解决办法： 
打开http.conf 
1，ServerName 127.0.0.1 修改成ServerName 202.112.11.22 
2，#NameVirtualHost * 修改成"NameVirtualHost 202.112.11.22" 
3，在文件最后面有虚拟主机格式， 

# 
# ServerAdmin webmaster@dummy-host.example.com 
# DocumentRoot /www/docs/dummy-host.example.com 
# ServerName dummy-host.example.com 
# ErrorLog logs/dummy-host.example.com-error_log 
# CustomLog logs/dummy-host.example.com-access_log common 
# 


简单的添加： 


DocumentRoot usr/local/www/ 
ServerName 202.112.11.22 


DocumentRoot usr/local/www/site1/ 
ServerName www.site1.com 


DocumentRoot usr/local/www/site2/ 
ServerName www.site2.com 

假如要跟IIS并存，而且IIS已经占用80端口，上面的设置无效，因此要在所有的IP后面跟上你设定的端口 
另外 
listen port 80 改为 listen port 你喜欢的端口。 
—————————————————————————— 
关于高级安全配置，细读以下： 

高级配置 


1、设置虚拟目录 

　　在配置文件中找下面这行： 

　　　　 

　　在这行下面添加如下内容： 

　　　　Alias /vdir/ "c:/comexe/" 

　　　　 
　　　　Options MultiViews 
　　　　AllowOverride None 
　　　　Order allow,deny 
　　　　Allow from all 
　　　　 

　　这样，通过访问 http://user.dns0755.net/vdir/，就可以访问到c:\comexe\目录下的内容。 

　　Apache默认开设了两个虚拟目录：“/icons/”和“/manual/”。这两个虚拟目录没有用，可以在配置文件中删除。 



2、如何解决中文网页显示乱码 

（1）在配置文件中找包含“AddLanguage”或“AddCharset”的行，在这些行最前面增加一行： 

　　　　AddDefaultCharset GB2312 

（2）养成良好的习惯，在每个网页的里加入这行： 

　　　　 

　　一般的中文版网页编辑工具（例如FrontPage、Dreamweaver等）都会自动加上这行。 



3、如何解决中文文件名无法访问 

　　在ie中选择 工具 -&gt; internet选项 -&gt; 高级 -&gt; 取消“总是以UTF-8发送URL”。 

　　这个方法很麻烦，请尽量不要使用中文的网站文件名。 

请注意： 

1、Apache配置过程中最关键的两点是：网站根目录和默认首页文件名。必须要把网站文件放在所指定的网站根目录下，而且默认首页文件名必须要设置正确，否则将看不到您的网页。 

2、每次配置文件更改后，要重新启动Apache才会生效。 </p><p>
<a href="index.php?action=login&amp;hash=">立即登陆发表评论</a><br />
</p>
<p><a href="index.php?action=list&amp;hash=">返回日志列表</a><br /><a href="index.php?action=index&amp;hash=">返回主页</a></p>
</card>
</wml>
