媒介
今朝全球利用Linux来架设的网站出现爆炸性的生长,乃至已影响到 Microsoft的Windows NT,之所以让 Linux 急速窜起的缘由则是 Linux 的 Open Source 精力与其体系的不乱效能。
Linux 上普通最广泛采取的 Web server 是名震江湖的Apache,Apache 是由一群玩家们所设计,是所谓的 Open Source Software,也就是暗示Apache 是收费而且自在开放其原始的,它的设定复杂而且效能不错,依据 http://www.netcraft.com/ 的统计,截至 1999 年
8 月的了局,Apache 已占领全部 Web server 市场的 55%,抢先 Microsoft 的 22%。对於一个天天数万阅读人次的中型网站来讲,Linux 与Apache 的组合已足以担其重担。
有了 Web server 与材料库之後,咱们还需求一个二者之间的桥梁,让网页上阅读者的查询号令可以下达材料库, 同时也让材料库的材料内容可以放上彀页。在这个方面有很多东西可以作失掉,像 Java 就能够, 然而最广为利用的即是 CGI,写过 CGI 的读者都晓得设计 CGI 一贯是件费事事,不仅除错不便利, 并且设计起来相当不直接,今朝写 CGI 最多见的言语是 C 言语和 Perl 言语。 比来这两年中拜 Windows NT 与 IIS 之赐, Microsoft 的 ASP (Active Server Page) 大行其道, 成为网页设计的好东西,然而现实上 Unix 的世界已然悄然地发生了一个功效效力上都不输、 乃至赶过 ASP 的新东西,它叫做 PHP (Personal Homepage),PHP 如今已呈现在很多大型网站, 成为网页设计的最好选择。PHP 可以代替本来 CGI 的功效,履行速度也相当快,而且可以与几近一切的材料库相毗连。
以下咱们便由浅入深地引见若何以 Linux + Apache + PHP + MySQL 来架设一个网站, 并兼谈架站时会碰到的一些成绩,在讲解的过程当中,我会以我所架设的 http://linuxfab.cx/ 作为实例讲解,以便利读者懂得,以下就分项申明 :
Domain Name 的请求与 DNS(Domain Name Server) 的架设SQL 查询言语与干系式材料库PHP 网页设计言语这叁个部分,让列位对若何以 Linux + Apache + PHP + MySQL 来架设网站可以有个最根基而全体性的懂得。Domain Name 的请求与 DNS 的架设一个网站固然要有一个名字,也就是所谓的 domain name,这一点我想每一个人都应当晓得的, 像是 www.chinatimes.com.tw 或是 www.nctu.edu.tw 等就是 domain name。 请求如许在 .tw (台湾) 之下的 domain 可以经过 Hinet、Seednet 或是经过 TWNIC 来请求, 若是请求以 .com、.org、.net 等这类国际性的 domain name 时,则必需在国外请求, 不外由於网际网路与信誉卡的兴旺,如今已呈现良多可以直接在网路上请求 domain name, 而且以信誉卡付出的办事,凡是在一两天以内即可以办妥,在这一点国际的请求就稍嫌烦琐, 比不上国外的疾速办事。以 LinuxFab 为例,其 domain name 是 linuxfab.cx,.cx 是宁靖洋上的一个小岛 □ Christmas island 的网域,现在之所以请求如许的网域最次要是由于它价钱廉价, 而且可以在网路上请求和利用信誉卡付出费用,别的也不用承受成分反省的繁复手续。 假如你想请求一个不同凡响的 domain name,那麽是可以思索.cx 的。
请求了 domain name,之後,下游的 DNS 会答应你本人的 DNS 向其传送 domain name材料,以 LinuxFab 为例,下游的 DNS 为 nic.cx,而 xxx.linuxfab.cx 的 domain name 即可以透过你所架设的 DNS 来设定, 而且将其传送给 nic.cx,让你所设定的 domain name 可以为他人所查询到。Domain Name 的请求与 DNS 的架设DNS 的运作机制相外地风趣,咱们以 abc.def.ghi 为例,往 abc 的偏向称之为下流, 往ghi 的偏向称之为下游,所以 abc.def.ghi 为 .def.ghi 的下流, 而 def.ghi 又为 .ghi 的下流,所以 .ghi 为 def.ghi 的下游,而 .def.ghi 又为 abc.def.ghi 的下游, 假定某团体所利用的domain name 为 jkl.mno.ghi,他想要查询 abc.def.ghi 的 ip 时, 体系会扣问其自己的下游,也就是 .mno.ghi 的 DNS,若找不到材料,则再向其下游扣问, 也就是 .ghi ,此时 .ghi的 DNS 发明了 def.ghi 的材料,於是往其下流扣问, 也就是 def.ghi 的 DNS,若没有找
到材料,则再扣问其下流,也就是 abc.def.ghi, 不外此例中,def.ghi 的 DNS 已找到了所属的 abc.def.ghi 的材料,於是入手下手沿着原途径一路传回。
在任何一台 DNS查询到了 domain name 和其对应的 ip 之後,会存入该 DNS 的 cache(快取) 中,如许下一次若是再碰到查询该 domain name 时, 即可直接从 cache 中读取,而不用反复一样的漫长查询举措了。omain Name 的请求与 DNS 的架设接上去该来引见一下 DNS 的设定,后面说过要办理本人网域以下的 domain name (以LinuxFab来讲即是 xxx.linuxfab.cx),必需本人设定 DNS(Domain Name Server),Linux 上的DNS 软体是一个名为 named 的程式和包括 named.boot、named.hosts 和 named.ca 这几个设定档,只需先设定好设定档之後, 再启动(履行) named 程式便可。
named.boot 是用来设定 DNS 所管辖的各个 domain name 所需的材料库档案, 一个 DNS 可以管辖分歧的网域,好比说我可以花钱买个 abc.cx 和 def.cx 这两个网域,然後让下游的 DNS 指向统一个 DNS,不外普通来讲,一个 DNS 凡是都办理一个网域。以linuxfab.cx 为例,named.boot 的内容为 :
个中,第一行是暗示材料库设定档所寄存的目次,第二行是指 .linuxfab.cx 网域下的domain name 所寄存的档案,第叁行咱们临时不论它,第四行是指 DNS 的 cache 材料寄存的档案。omain Name 的请求与 DNS 的架设接上去重头戏就是 named.hosts 的设定,以 linuxfab 为例,其内容以下 :
$ORIGIN linuxfab.cx.
@ IN SOA dns.linuxfab.cx. root.dns.linuxfab.cx. (
950710 ; Serial
21600 ; Refresh
7200 ; Retry
3600000 ; Expire
86400 ) ; Minimum
IN NS dns.linuxfab.cx.
localhost IN A 127.0.0.1
dns IN A 140.113.88.2
IN HINFO "X86 PC" "LINUX"