注册 | 登陆
浏览模式: 标准 | 列表2007年03月1日的文章

关于如何在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才会生效。

用Apache绑定域名设置虚拟主机

Apache下要怎样才能像IIS那样设定虚拟主机呢?? 有好几个Domain Name 却只有一个IP

一台主机怎么办呢? 本篇教你怎么设置虚拟主机…
觉得 http://domain/~user 这样的域名太长或者没有独特性吗?
想要有个不一样的domain吗? 例: http://user.domain/

【安裝Apache】
要设虚拟主机当然要先装好Apache.
安装这部分就略过了.

【设定前准备 】

1.先找到安装Apache的目录,例如: C:Apache

2.找到 httpd.conf文档 ,例: C:Apacheconfhttpd.conf

3.先把 httpd.conf 备份起来 (这个动作要养成习惯.)

4.用记事本打开 httpd.conf
先找到
#
# 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
#

正常的话是在 httpd.conf 的最下面的部分

【了解 VirtualHost 相关参数】

语法:..
说明:虚拟主机的设定

举例:
NameVirtualHost *          (设定主机的ip)
            (开头设定虚拟主机的ip)
ServerAdmin admin@domain.com   (设定虚拟主机的管理者信箱,不用和预设的网站管理者相同)
DocumentRoot c:/user/        (指定虚拟主机的网站主目录)
ServerName domain.com        (设定虚拟主机的名称,指定设定虚拟主机的UR)
ServerAlias www.domain.com     (设定虚拟主机的別名,例: WWW )
ErrorLog logs/*           (虚拟主机发生错误时要记录在哪个目录,可不设.)
TransferLog logs/??          (虚拟主机存取记载要存放的个目录,可不设.)
            (结束,要设第二组虚拟主机在从开头开始设)

※别名的意思:
一般的apache网址都是 http://domain/~user
如果有另外申请另一个domain , 不可能因为这样又架一台主机,或者开另一个使用者,这

时就需要用到别名.
或者只有一个domain,却想要制作好几个网站,也可以用别名去做,那每个网站都有各个独

特性.看起来就像是不同的主机一样.

【设定范例 教学】

#第一个部分,设定你虚拟主机要用的ip
NameVirtualHost 123.123.123.123 (设定主机的ip)  ※设定一次就好

#第二个部分,跟你预设的主机设定一样,也就是还没设定其他虚拟主机之前会看到的网站
 (设定你自己主机的ip)
  ServerAdmin admin@domain.com
  DocumentRoot c:/Apache/htdocs
  ServerName domain.com
  ServerAlias www.domain.com

#第三个部分,第一组虚拟主机,用途:跟预设主机不同domain时可用.

  ServerAdmin admin@domain1.com
  DocumentRoot c:/Apache/users/w1
  ServerName domain.com
  ServerAlias www.domain1.com

#第四个部分,第二组虚拟主机,用途:domain1的别名主机.

  ServerAdmin admin2@domain1.com
  DocumentRoot c:/Apache/users/w2
  ServerName domain.com
  ServerAlias www2.domain1.com

win+apache下配置虚拟主机和绑定域名

那天是在一个朋友送的服务器上(肉鸡),MAIL服务器,没有装IIS,我自己安装了APACHE后发现无法绑米所以才学习了相关的东西
本篇内容大部分可以在网上找到,不过大部分是LINUX下的,稍微有不同,为了使大家使用方便,不走晚路,我自己也写了一个简单的教程,希望大家能接受.

  
  在WIN下安装APACHE配置虚拟目录和UNIN下基本是一样的

  就是修改httpd.conf

  1:单个IP对应单个玉米

  例如:www.phpunion.com对应192.168.1.1

  www.feelone.net对应192.168.1.2

  在httpd.conf中加入如下指令

  <VirtualHost 192.168.1.1>    #对应玉米所指向的IP

  
  DocumentRoot "c:/web/php"   #www.phpunion.com要指向的目录,注意一定要有""

  ServerName www.phpunion.com  #所要绑的玉米

  </VirtualHost>

  <VirtualHost 192.168.1.2>    #对应玉米所指向的IP

  
  DocumentRoot "c:/web/feel"   #www.feelone.net要指向的目录,注意一定要有""

  ServerName www.feelone.net #所要绑的玉米

  </VirtualHost>

  剩下的可以继续绑!

  2:单个IP对应多个玉米

NameVirtualHost 192.168.1.1   #记得一定要有着句啊!

  <VirtualHost 192.168.1.1>    #对应玉米所指向的IP

  
  DocumentRoot "c:/web/php"   #www.phpunion.com要指向的目录,注意一定要有""

  ServerName www.phpunion.com  #所要绑的玉米

  </VirtualHost>

  <VirtualHost 192.168.1.1>    #对应玉米所指向的IP

  
  DocumentRoot "c:/web/feel"   #www.feelone.net要指向的目录,注意一定要有""

  ServerName www.feelone.net #所要绑的玉米

  </VirtualHost>

  这样就绑上对应的目录了,如果没有NameVirtualHost 192.168.1.1 这个指令的话,所有的玉米就都指到php目录了.

  然后重新启动apache,就可以看到所指的玉米对应相应的虚拟目录!

apache绑定多个域名的问题

我现在有这么一个问题,
我有一台服务器,只有一个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,在文件最后面有虚拟主机格式,
QUOTE:

#<VirtualHost *>
#   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
#</VirtualHost>

简单的添加:

<VirtualHost 202.112.11.22>
    DocumentRoot usr/local/www/
    ServerName   202.112.11.22
</VirtualHost>
<VirtualHost 202.112.11.22>
    DocumentRoot usr/local/www/site1/
    ServerName   www.site1.com
</VirtualHost>
<VirtualHost 202.112.11.22>
    DocumentRoot   usr/local/www/site2/
    ServerName   www.site2.com
</VirtualHost>