仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 3301|回复: 19
打印 上一主题 下一主题

[学习教程] PHP教程之Apache下办事器虚拟主机的设置办法引见...

[复制链接]
深爱那片海 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-2-16 00:25:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
学会了生成静态网页,现在你应该接触一下XML了,恩,XML也了解了,那么AJAX你也得接触接触吧?AJAX完了....然后...   <P style="TEXT-INDENT: 2em">1、WWW办事器虚拟主机道理 <P style="TEXT-INDENT: 2em"><P style="TEXT-INDENT: 2em">WWW办事器虚拟主机是指利用一台物理机械,充任多个主机名的WWW办事器。好比由一台机械同时供应http://www.company1.com, http://www.company2.com 等的WWW办事,而阅读这些WWW站点的用户感到不到这类体例下跟由分歧的机械供应分歧的办事有甚么不同。 <P style="TEXT-INDENT: 2em"><P style="TEXT-INDENT: 2em">利用WWW虚拟主机的优点在于,一些小范围的网站,经由过程跟其他网站同享统一台物理机械,可以削减体系的运转本钱,而且可以削减办理的难度。别的,关于团体用户,也能够利用这类虚拟主机体例来创立有本人自力域名的WWW办事器,今朝国际有良多公司都供应这类收费的办事。 <P style="TEXT-INDENT: 2em"><P style="TEXT-INDENT: 2em">WWW虚拟主机有两种任务体例: <P style="TEXT-INDENT: 2em"><P style="TEXT-INDENT: 2em">1.1 基于IP地址的虚拟主机体例 <P style="TEXT-INDENT: 2em">这类体例下,分歧的主机名解析到分歧的IP地址,供应虚拟主机办事的机械上同时设置有这些IP地址。办事器依据用户恳求的目标IP地址来剖断用户恳求的是哪一个虚拟主机的办事,从而进一步的处置。 <P style="TEXT-INDENT: 2em">弱点:基于IP地址的虚拟主机体例需求在供应虚拟主机办事的机械上设立多个IP地址,既华侈了IP地址,又限制了一台机械所能包容的虚拟主机数量。因而这类体例愈来愈少利用。然而,这类体例是初期利用的HTTP 1.0协定独一撑持的虚拟主机体例。 <P style="TEXT-INDENT: 2em"><P style="TEXT-INDENT: 2em">1.2 基于主机名的虚拟主机体例 <P style="TEXT-INDENT: 2em">因为基于IP地址的虚拟主机体例有如上的弱点,HTTP 1.1协定中增添了对基于主机名的虚拟主机的撑持。详细说,当客户法式向WWW办事器收回恳求时,客户想要会见的主机名也经由过程恳求头中的“Host:”语句传递给WWW办事器。好比,www.company1.com, www.company2.com 都对应于统一个IP地址(即由统一台机械来给这两个虚拟域名供应办事),客户法式要存取http://www.company1.com/index.html时,收回的恳求头中包括有以下的内容: <P style="TEXT-INDENT: 2em">GET /index.html HTTP/1.1 <P style="TEXT-INDENT: 2em">Host: www.company1.com <P style="TEXT-INDENT: 2em">….. <P style="TEXT-INDENT: 2em">WWW办事器法式吸收到这个恳求后,可以经由过程反省“Host:”语句,来剖断客户法式恳求是哪一个虚拟主机的办事,然后再进一步的处置。 <P style="TEXT-INDENT: 2em">长处:供应虚拟主机办事的机械上只需设置一个IP地址,实际上就能够给有数多个虚拟域名供应办事,占用资本少,办理便利。今朝根基上都是利用这类体例来供应虚拟主机办事。 <P style="TEXT-INDENT: 2em">弱点:在初期的HTTP 1.0版本下不克不及利用。实践上如今利用的阅读器根基上都撑持基于主机名的虚拟主机体例。 <P style="TEXT-INDENT: 2em"><P style="TEXT-INDENT: 2em">2、Apache办事器下的虚拟主机设置手艺 <P style="TEXT-INDENT: 2em"><P style="TEXT-INDENT: 2em">2.1 Apache WWW办事器简介 <P style="TEXT-INDENT: 2em">Apache WWW办事器是今朝Internet上利用最广的WWW办事器软件。经由过程天真的设置装备摆设,它可以完成几近您想失掉的功效。本文次要引见在Apache 下设置各类虚拟主机的办法。 <P style="TEXT-INDENT: 2em"><P style="TEXT-INDENT: 2em">2.2 Apache WWW办事器下基于IP地址的虚拟主机设置 <P style="TEXT-INDENT: 2em">利用这类虚拟主机体例,起首要在办事器上为每一个虚拟主机独自设置一个IP地址。这些IP地址可以经由过程增添多个网卡或在一个网卡上设立多个IP地址来完成。有了多个IP地址后,可以采取以下两种体例之一来设置Apache: <P style="TEXT-INDENT: 2em">2.2.1 为每一个虚拟主机运转一份Apache <P style="TEXT-INDENT: 2em">采取这类体例,每份Apache法式可以以独自的用户运转,因而各个虚拟主机之间互不影响。设置这类虚拟主机时,只需为每份Apache设置一套设置装备摆设文件就能够了,独一需求注重的是:必需利用“Listen”语句,强迫每份Apache 仅仅在属于“本人”的IP地址上吸收办事恳求。 <P style="TEXT-INDENT: 2em">长处:各个虚拟主机之间互不搅扰,平安性高。 <P style="TEXT-INDENT: 2em">弱点:占用体系资本较多。 <P style="TEXT-INDENT: 2em"><P style="TEXT-INDENT: 2em">2.2.2多个虚拟主机同享统一份Apache <P style="TEXT-INDENT: 2em">采取这类体例,各个虚拟主机同享统一份Apache,因而各个虚拟主机之间有必定的影响,特别是履行CGI法式时,能够会带来一些严重的平安成绩。设置这类虚拟主机时,只需为每个虚拟主机设置相似以下的信息便可: <P style="TEXT-INDENT: 2em"><P style="TEXT-INDENT: 2em">
  1. <VirtualHost www.company1.com>; DocumentRoot /home/company1 … </VirrualHost>;
复制代码
<P style="TEXT-INDENT: 2em"><P style="TEXT-INDENT: 2em">长处:占用体系资本比上一种体例少。 <P style="TEXT-INDENT: 2em">弱点:平安性低,每一个虚拟主机依然需求占用一个IP地址。 <P style="TEXT-INDENT: 2em"><P style="TEXT-INDENT: 2em">2.3 Apache WWW办事器下复杂的基于名字的虚拟主机设置 <P style="TEXT-INDENT: 2em">这类体例下,各个虚拟主机同享统一份Apache,因而有CGI法式运转时,平安性也不高。设置这类虚拟主机时,只需为每个虚拟主机设置相似以下的信息便可 <P style="TEXT-INDENT: 2em"><P style="TEXT-INDENT: 2em">
  1. NameVirtualHost 111.222.33.44 ; 在这个IP地址吸收虚拟主机的办事 <VirtualHost 111.222.33.44>; ServerName www.company1.com DocumentRoot /www/company1 </VirtualHost>; <VirtualHost 111.222.33.44>; ServerName www.company2.com DocumentRoot /www/company2 </VirtualHost>;
复制代码
<P style="TEXT-INDENT: 2em"><P style="TEXT-INDENT: 2em">长处:只需一个IP地址就能够供应大批的虚拟主机办事。 <P style="TEXT-INDENT: 2em">弱点:平安性差。保护这些虚拟主机时需求更改设置装备摆设文件,而且需求从头启动Apache历程才干起感化。因而不合适停止大范围的虚拟主机办事。 <P style="TEXT-INDENT: 2em"><P style="TEXT-INDENT: 2em">2.4 Apache WWW办事器下基于名字的大范围虚拟主机设置 <P style="TEXT-INDENT: 2em">所谓大范围虚拟主机,是指可以供应十分多的虚拟主机办事,好比能供应超越数十万个域名的虚拟主机办事。假如利用以上会商的办法,是很难完成的。完成这类办事的一种体例是使用Apache 功效壮大的URL重写功效。上面以一个实例来讲明这类体例。 <P style="TEXT-INDENT: 2em"><P style="TEXT-INDENT: 2em">2.4.1 Apache中URL重写功效 <P style="TEXT-INDENT: 2em">Apache 1.2及今后版本都有URL重写(Rewrite)功效。复杂的说,URL重写功效就是在Apache吸收到恳求后,在处置的过程当中能依据事后设定的划定规矩,对恳求中的URL停止修正。这些划定规矩次要由正轨表达式构成。重写依附于输出的URL、各类办事器端情况变量、HTTP恳求头中的内容、工夫,乃至可以经由过程内部的法式来利用数据库中的信息来匡助重写。 <P style="TEXT-INDENT: 2em">URL重写功效十分壮大,经由过程URL重写,可使Apache完成异常庞杂的功效。固然,URL重写功效自己也对照庞杂,关于URL重写功效的具体申明可以参看Apache 的随机文档。 <P style="TEXT-INDENT: 2em"><P style="TEXT-INDENT: 2em">2.4.2 利用Apache中URL重写功效完成基于名字的大范围虚拟主机设置 假定机械www.home.com供应名字形如abcde.home.com、hijk.home.com等的大范围虚拟主机办事。个中虚拟主机名必需是字母或数字,而且长度最少为3。为了避免一个目次下文件或子目次太多而对功能发生很大的负面影响,对用户的目次依照名字停止分级划分,如虚拟主机abcde.home.com的相干文件寄存在目次/member/ab/de/abcde上面。个中“ab”、“de”分离是“abcde”的前边两个字符和最初两个字符。当用户恳求http://abcde.home.com时,体系应当前往/member/ab/de/abcde上面的文件。
<P style="TEXT-INDENT: 2em">上面是为了完成这类功效需求停止的设置 <P style="TEXT-INDENT: 2em"><P style="TEXT-INDENT: 2em">1. 对域名办事器的设置 <P style="TEXT-INDENT: 2em">假定www.home.com的IP地址为202.103.190.57,在域名办事器DNS的home.com数据文件中增添一行: <P style="TEXT-INDENT: 2em">-------------------------------------------------------------------- <P style="TEXT-INDENT: 2em">* IN A 202.103.190.57 <P style="TEXT-INDENT: 2em">-------------------------------------------------------------------- <P style="TEXT-INDENT: 2em">如许,一切 *.home.com的IP地址城市被解析为202.103.190.57,就没有需要为各个虚拟主机分离停止设置。 <P style="TEXT-INDENT: 2em"><P style="TEXT-INDENT: 2em">2. 对Apache的设置 <P style="TEXT-INDENT: 2em">起首利用号令“httpd -l”反省mod_rewrite模块是不是已编译到Apache中,假如没有,从头编译Apache。 <P style="TEXT-INDENT: 2em">然后在Apache的设置装备摆设文件httpd.conf中增添以下语句(个中以“#”开首的为正文): <P style="TEXT-INDENT: 2em">----------------------------------------------------------------------- <P style="TEXT-INDENT: 2em">#制止利用机械的正式名 <P style="TEXT-INDENT: 2em">UseCanonicalName off <P style="TEXT-INDENT: 2em">#使能重写功效 <P style="TEXT-INDENT: 2em">RewriteEngine on <P style="TEXT-INDENT: 2em">RewriteMap lowercase int:tolower <P style="TEXT-INDENT: 2em"># 为平安思索,对CGI法式不停止重写 <P style="TEXT-INDENT: 2em">RewriteCond %{REQUEST_URI} !^/cgi-bin/ <P style="TEXT-INDENT: 2em"># 对www.home.com不重写,其他的重写 <P style="TEXT-INDENT: 2em">RewriteCond ${lowercase:%{HTTP_HOST}} !^www\.home\.com(\.*)$ <P style="TEXT-INDENT: 2em">RewriteCond ${lowercase:%{HTTP_HOST}} ^[a-z0-9-]+\.home\.com(\.*)$ <P style="TEXT-INDENT: 2em"># 起首把机械名改成小写,添加到恳求的文件途径前,并持续处置 <P style="TEXT-INDENT: 2em">RewriteRule ^(.+) ${lowercase:%{HTTP_HOST}}$1 [C] <P style="TEXT-INDENT: 2em"># 重写恳求 <P style="TEXT-INDENT: 2em">RewriteRule ^([a-z0-9])([a-z0-9])([a-z0-9])\.home\.com([\.]*)/(.*) /member/$1$2/$2$3/$1$2$3/$5 <P style="TEXT-INDENT: 2em">RewriteRule ^([a-z0-9])([a-z0-9])([a-z0-9]*)([a-z0-9])([a-z0-9])\.home\.com([\.]*)/(.*) /member/$1$2/$4$5/$1$2$3$4$5/$7 <P style="TEXT-INDENT: 2em">------------------------------------------------------------------------- <P style="TEXT-INDENT: 2em">长处:只需一个IP地址就能够供应大批的虚拟主机办事,保护便利。 <P style="TEXT-INDENT: 2em">弱点:平安性低。上例为了加强平安性,制止运转用户本人的CGI法式。 <P style="TEXT-INDENT: 2em"><P style="TEXT-INDENT: 2em">2.5 Apache WWW办事器下的重定向虚拟主机设置 <P style="TEXT-INDENT: 2em">重定向虚拟主机是指仅仅供应重定向功效,而不实践寄存用户主页数据的虚拟主机。好比,某站点有多个镜像办事器,假定为www1.user.com、www2.user.com,…wwwn.user.com。这些办事器放在分歧的收集上,散布于各地的客户会见这些办事器的速度也互不不异。而站点www.home.com经由过程虚拟域名user.home.com为这些镜像的办事器供应虚拟主机办事。当客户会见http://user.home.com时,www.home.com依据用户的IP地址、搜集到的收集拓扑布局信息,把客户重定向到对该客户来讲会见速度最快的站点。 <P style="TEXT-INDENT: 2em">重定向虚拟主机办事也能够经由过程利用URL重写功效来完成。这里仅给出复杂的重写划定规矩: <P style="TEXT-INDENT: 2em">------------------------------------------------------------------------- <P style="TEXT-INDENT: 2em">RewriteRule ^([a-z0-9]+)\.home\.com([\.]*)/(.*) /www/cgi-bin/nph-redirect.cgi/$1/$3 [T=application/x-httpd-cgi,L] <P style="TEXT-INDENT: 2em">------------------------------------------------------------------------- <P style="TEXT-INDENT: 2em">个中,nph-redirect.cgi为一个CGI法式,为了完成主动重定向,它需求发生完全的HTTP 应对头信息。该法式经由过程情况变量PATH_INFO失掉用户恳求的URL,经由过程情况变量REMOTE_ADDR失掉用户的IP地址,并依据收集拓扑情形生成重定向信息,前往给客户。 <P style="TEXT-INDENT: 2em"><P style="TEXT-INDENT: 2em">参考文献: <P style="TEXT-INDENT: 2em">1.Apache 1.3 User's Guide http://www.apache.org <P style="TEXT-INDENT: 2em"><P style="TEXT-INDENT: 2em">Virtual Hosting Setup Using Apache <P style="TEXT-INDENT: 2em">Abstract: There are two types of WWW Virtual Hosting, IP-based and Name-based. Those two types are introduced in this thesis, followed by some methods about WWW Virtual Hosting configuration under Apache and the difference between them is analyzed.
php   manual(PHP手册)肯定是要从网上下载一个的,它很权威,也很全面,我自己认为它是一本很好的参考书,但是不适合新手当教材使用。
深爱那片海 该用户已被删除
沙发
 楼主| 发表于 2015-2-16 01:32:18 | 只看该作者
环境搭建好,当你看见你的浏览器输出“it works\\\\\\\"时你一定是喜悦的。在你解决问题的时候,我强烈建议多读php手册。
第二个灵魂 该用户已被删除
板凳
发表于 2015-3-4 21:27:32 | 只看该作者
真正的方向了,如果将来要去开发团队,你一定要学好smarty ,phplib这样的模板引擎,
小妖女 该用户已被删除
地板
发表于 2015-3-11 21:05:56 | 只看该作者
装在C盘下面可以利用windows的ghost功能可以还原回来(顺便当做是重转啦),当然啦我的编译目录要放在别的盘下,不然自己的劳动成果就悲剧啦。
若天明 该用户已被删除
5#
发表于 2015-3-17 02:09:27 | 只看该作者
真正的方向了,如果将来要去开发团队,你一定要学好smarty ,phplib这样的模板引擎,
若相依 该用户已被删除
6#
发表于 2015-3-23 14:19:06 | 只看该作者
说点我烦的低级错误吧,曾经有次插入mysql的时间 弄了300年结果老报错,其实mysql的时间是有限制的,大概是到203X年  具体的记不清啦,囧。
海妖 该用户已被删除
7#
发表于 2015-3-29 12:00:29 | 只看该作者
写的比较杂,因为我也是个新手,不当至于大家多多指正。
山那边是海 该用户已被删除
8#
发表于 2015-4-3 13:10:14 | 只看该作者
开发工具也会慢慢的更专业,每个公司的可能不一样,但是zend studio是个大伙都会用的。
小魔女 该用户已被删除
9#
发表于 2015-4-7 15:23:38 | 只看该作者
环境搭建好,当你看见你的浏览器输出“it works\\\\\\\"时你一定是喜悦的。在你解决问题的时候,我强烈建议多读php手册。
再现理想 该用户已被删除
10#
发表于 2015-4-13 16:10:50 | 只看该作者
我要在声明一下:我是个菜鸟!!我对php这门优秀的语言也是知之甚少。但是我要在这里说一下php在网站开发中最常用的几个功能:
老尸 该用户已被删除
11#
发表于 2015-4-30 11:53:18 | 只看该作者
php里的数组为空的时候是不能拿来遍历的;(这个有点低级啊,不过我刚被这个边界问题墨迹了好长一会)
飘飘悠悠 该用户已被删除
12#
发表于 2015-5-1 14:09:31 | 只看该作者
为了以后维护的方便最好是代码上都加上注释,“予人方便,自己方便”。此外开发文档什么的最好都弄齐全。我觉得这是程序员必备的素质。虽然会消耗点很多的时间。但是确实是非常有必要的。
莫相离 该用户已被删除
13#
发表于 2015-5-3 01:21:25 | 只看该作者
作为一个合格的coder 编码的规范是必须,命名方面我推崇“驼峰法”,另外就是自己写的代码最好要带注释,不然时间长了,就算是自己的代码估计看起来都费事,更不用说别人拉。
分手快乐 该用户已被删除
14#
发表于 2015-5-7 13:00:57 | 只看该作者
你很难利用原理去编写自己的代码。对于php来说,系统的学习我认为还是很重要的,当你有一定理解后,你可你针对某种效果研究,我想那时你不会只是复制代码的水平了。
谁可相欹 该用户已被删除
15#
发表于 2015-6-14 16:19:03 | 只看该作者
再就是混迹于论坛啦,咱们的phpchina的论坛就很强大,提出的问题一般都是有达人去解答的,以前的帖子也要多看看也能学到不少前辈们的经验。别的不错的论坛例如php100,javaeye也是很不错的。
活着的死人 该用户已被删除
16#
发表于 2015-6-30 21:08:48 | 只看该作者
小鸟是第一次发帖(我习惯潜水的(*^__^*) 嘻嘻……),有错误之处还请大家批评指正,另外,前些日子听人说有高手能用php写驱动程序,真是学无止境,人外有人,天外有天。
简单生活 该用户已被删除
17#
发表于 2015-7-9 05:24:33 | 只看该作者
开发工具也会慢慢的更专业,每个公司的可能不一样,但是zend studio是个大伙都会用的。
admin 该用户已被删除
18#
发表于 2015-7-28 05:31:15 | 只看该作者
使用zendstdio 写代码的的时候,把tab 的缩进设置成4个空格是很有必要的
透明 该用户已被删除
19#
发表于 2015-7-28 19:03:06 | 只看该作者
写的比较杂,因为我也是个新手,不当至于大家多多指正。
兰色精灵 该用户已被删除
20#
发表于 2015-10-2 23:31:54 | 只看该作者
开发工具也会慢慢的更专业,每个公司的可能不一样,但是zend studio是个大伙都会用的。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-22 20:04

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表