注册 | 登陆

关于如何在apache上绑定多域名的问题

关于如何在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>
在后面输入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中选择 工具 -> internet选项 -> 高级 -> 取消“总是以UTF-8发送URL”。

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

请注意:

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

2、每次配置文件更改后,要重新启动Apache才会生效。

« 上一篇 | 下一篇 »

Trackbacks

点击获得Trackback地址,Encode: UTF-8

发表评论

评论内容 (必填):