网友俱乐部 » 建站推广 » apache上绑定多域名的问题

2007-1-18 13:27 问天
apache上绑定多域名的问题

apache服务器配置文件在
  /apache/conf/httpd.conf
  这个文件夹下有三个文件,httpd.conf是主配置文件,其他的,初学者可以不管,但是在安全上有些问题。
  绑定域名的设置,在httpd.conf的最后几行,例如:
  ### 部分 3: 虚拟主机
  # 基于名称的虚拟主机示例:
  #
  # ServerAdmin [email]webmaster@dummy-host.example.com[/email]
  # 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 [email]webmaster@dummy-host.example.com[/email]
  #虚拟主机目录(网站根目录)
  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上了。
  ????????????????????
  关于如何安装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,在浏览器里输入:[url]http://localhost/xxx.html[/url]
  看看F:\http下面的xxx.html是不是能看到了(假设xxx.html文件已经存在)?
  #############################################################################


?2005-10-31 12:47:16 njnu冰糖   210.29.130.*
  第二:装脚本语言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);然后,在浏览器里输入:
  [url]http://localhost/info.php[/url]
  如果看到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目录下,到浏览器里输入[url]http://localhost/install.php[/url],
  上来是条款声明,点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就可以来到主页。
  #################################################################################
  装好后,浏览器里[url]http://localhost/[/url]就是主页(如果中文乱码,很可能是mysql字符集选择不对,语言那里重选;
  还不行就重装mysql,语言选项里选前2个中的一个,我印象是选第2个)
  [url]http://localhost/admin/[/url]就是超级管理员的管理界面了,在主页上点击‘管理’或者'控制面板‘,也能到管理员界面。
  进入管理员界面后,进系统设置。要注意‘系统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/)
  站点二[url]www.site1.com[/url]的地址为202.112.11.22/site1/(对应本机usr/local/www/site1/)
  站点三[url]www.site2.com[/url]的地址为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 [email]webmaster@dummy-host.example.com[/email]
  # 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 [url]www.site1.com[/url]
  
  
  DocumentRoot usr/local/www/site2/
  ServerName [url]www.site2.com[/url]
  
  假如要跟IIS并存,而且IIS已经占用80端口,上面的设置无效,因此要在所有的IP后面跟上你设定的端口
  另外
  listen port 80 改为 listen port 你喜欢的端口。
  ??????????????????????????
  关于高级安全配置,细读以下:
  高级配置
  1、设置虚拟目录
  在配置文件中找下面这行:
  
  在这行下面添加如下内容:
  Alias /vdir/ "c:/comexe/"
  
  Options MultiViews
  AllowOverride None
  Order allow,deny
  Allow from all
  
  这样,通过访问 [url]http://user.dns0755.net/vdir/[/url],就可以访问到c:\comexe\目录下的内容。
  Apache默认开设了两个虚拟目录:“/icons/”和“/manual/”。这两个虚拟目录没有用,可以在配置文件中删除。
  2、如何解决中文网页显示乱码
  (1)在配置文件中找包含“AddLanguage”或“AddCharset”的行,在这些行最前面增加一行:
  AddDefaultCharset GB2312
  (2)养成良好的习惯,在每个网页的里加入这行:
  
  一般的中文版网页编辑工具(例如FrontPage、Dreamweaver等)都会自动加上这行。
  3、如何解决中文文件名无法访问
  在ie中选择 工具 -> internet选项 -> 高级 -> 取消“总是以UTF-8发送URL”。
  这个方法很麻烦,请尽量不要使用中文的网站文件名。
  请注意:
  1、Apache配置过程中最关键的两点是:网站根目录和默认首页文件名。必须要把网站文件放在所指定的网站根目录下,而且默认首页文件名必须要设置正确,否则将看不到您的网页。
  2、每次配置文件更改后,要重新启动Apache才会生效。
  Trackback URL for this entry

页: [1]


Powered by Discuz! Archiver 5.5.0  © 2001-2006 Comsenz Inc.