|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
熟悉了PHP和MYSQL开发的要领之后,再回头看你写的那个留言本,你也许会怀疑那真的是你写的吗?当然,如果屋里还有鬼的话,也许是它写的-_- </p> Apache 2.0
装置
绝对IIS来讲Apache创立站点加倍专业,一些大型门户网站和流量大的专业站点都是经由过程Apache宣布站点的。并且以往良多法式都是经由过程ASP言语完成的,ASP与IIS的兼容性对照好,那时IIS用户对照多。跟着PHP言语的盛行,愈来愈多的用户丢弃了ASP。比拟IIS来讲Apache与PHP的兼容性更好,履行代码的效力更高,运转起来也加倍不乱。
第一步:下载Apache 2.0装置法式,并运转.
第二步:赞同允许协定点“NEXT”按钮持续。
第三步:检查匡助信息,不必更改点“NEXT”按钮持续。
第四步:在办事器信息设置窗口填写站点的域名,办事器称号和办理员电子邮箱地址等信息。假如你没有域名也不妨坚持默许便可。点“NEXT”按钮持续装置。
第五步:选择装置类型,普通坚持默许的typical典范形式便可。
第六步:设置装置目次,默许为c:\program files\apache group。咱们可以点右侧的“Change”按钮修正此途径。
第七步:点install按钮入手下手装置。
第八步:复制必需文件到当地硬盘而且启动apache主法式。
第九步:完成apache装置任务,点“finish”按钮前往桌面。
第十步:与此同时咱们会看见在桌面右下角的义务栏处呈现一个小叶子图标,这个就是Apache启动项。
第十一步:咱们翻开IE阅读器在地址栏处输出http://127.0.0.1 ,假如可以看到显示出Apache页面的话就申明咱们已胜利完成装置任务了。
虚拟主机设置装备摆设
起首用“记事本”法式翻开“httpd.conf”设置装备摆设文件。此文件寄存在Apache办事器装置途径下的“conf”文件夹内。
1、利用 mod_vhost_alias
1.复杂的静态虚拟主机
(1)从 Host: 头中获得办事器名字 Server Name
(2)这里的日记格局,可以在未来经由过程第一个参数域来分隔分歧的虚拟主机的日记
- LogFormat "%V %h %l %u %t \"%r\" %s %b" vcommon CustomLog logs/access_log vcommon
复制代码 (3)在前往恳求的文件名的途径中包括进办事器名字: server name
- VirtualDocumentRoot /www/hosts/%0/docs VirtualScriptAlias /www/hosts/%0/cgi-bin
复制代码 2.更加无效的基于 IP 地址的虚拟主机
(1)从 IP 地址反解析失掉办事器名字(server name)
(2)在日记中包括 IP 地址,便于后续分发
- LogFormat "%A %h %l %u %t \"%r\" %s %b" vcommon CustomLog logs/access_log vcommon
复制代码 (3)在文件途径中包括 IP 地址
- VirtualDocumentRootIP /www/hosts/%0/docs VirtualScriptAliasIP /www/hosts/%0/cgi-bin
复制代码 2、利用 mod_rewrite
1. 利用 mod_rewrite 完成复杂的静态虚拟主机
(1)从 Host: 头获得办事器名字
(2)可朋分的日记
- LogFormat "%{Host}i %h %l %u %t \"%r\" %s %b" vcommon CustomLog logs/access_log vcommon <Directory /www/hosts> ExecCGI is needed here because we can"t force CGI execution in the way that ScriptAlias does Options FollowSymLinks ExecCGI </Directory>
复制代码 (3)接上去是关头局部
- RewriteEngine On a ServerName derived from a Host: header may be any case at all RewriteMap lowercase int:tolower
复制代码 起首处置通俗文档:
- 答应
变名 /icons/ 起感化
- 其他变名类同 RewriteCond %{REQUEST_URI} !^/icons/ 答应
CGIs RewriteCond %{REQUEST_URI} !^/cgi-bin/ 入手下手
“变戏法” RewriteRule ^/(.*)$ /www/hosts/${lowercase:%{SERVER_NAME}}/docs/$1
复制代码 如今处置 CGIs - 咱们需求强迫利用一个 MIME 类型
- LogFormat "%V %h %l %u %t \"%r\" %s %b" vcommon CustomLog logs/access_log vcommon 0
复制代码
2.利用自力的虚拟主机设置装备摆设文件 vhost.map
(1)vhost.map 文件包括了相似上面的内容:
- LogFormat "%V %h %l %u %t \"%r\" %s %b" vcommon CustomLog logs/access_log vcommon 1
复制代码 (2)http.conf 包括了:
- LogFormat "%V %h %l %u %t \"%r\" %s %b" vcommon CustomLog logs/access_log vcommon 2
复制代码 (3)界说映像文件
- LogFormat "%V %h %l %u %t \"%r\" %s %b" vcommon CustomLog logs/access_log vcommon 3
复制代码 (4)和下面的例子一样,处置变名
- LogFormat "%V %h %l %u %t \"%r\" %s %b" vcommon CustomLog logs/access_log vcommon 4
复制代码 (5)这里做基于文件的从头映照
- LogFormat "%V %h %l %u %t \"%r\" %s %b" vcommon CustomLog logs/access_log vcommon 5
复制代码 .htaccess文件功效
.htaccess文件的功效:"散布式设置装备摆设文件"供应了针对目次改动设置装备摆设的办法,即:在一个特定的文档目次中放置一个包括一个或多个指令的文件, 以感化于此目次及其一切子目次。作为用户,所能利用的号令遭到限制。办理员可以经由过程Apache 的AllowOverride指令来设置.子目次中的指令会掩盖更初级目次或主办事器设置装备摆设文件中的指令。
1、毛病文档的定位
(1)经常使用的客户端恳求毛病前往代码:
- LogFormat "%V %h %l %u %t \"%r\" %s %b" vcommon CustomLog logs/access_log vcommon 6
复制代码 (2)罕见的办事器毛病前往代码:
- LogFormat "%V %h %l %u %t \"%r\" %s %b" vcommon CustomLog logs/access_log vcommon 7
复制代码 (3)用户可以使用.htaccess指定本人事前制造好的毛病提示页面。普通情形下,人们可以专门设立一个目次,例如errors放置这些页面。然后再.htaccess中,到场以下的指令:
- LogFormat "%V %h %l %u %t \"%r\" %s %b" vcommon CustomLog logs/access_log vcommon 8
复制代码
上述第一条指令的意思是关于404,也就是没有找到所需求的文档的时分得显示页面为/errors目次下的notfound.html页面。不好看出语法格局为:
- LogFormat "%V %h %l %u %t \"%r\" %s %b" vcommon CustomLog logs/access_log vcommon 9
复制代码 假如所需求提醒的信息很少的话,不用专门制造页面,直接在指令中利用HTML号了,例以下面这个例子:
ErrorDocument 401 "<body bgcolor=#ffffff> 你没有权限会见该页面!
</body>" 2、文档会见的暗码回护要使用.htaccess对某个目次下的文档设定会见用户和对应的暗码,起首要做的是生成一个.htpasswd的文本文档,例如:
- VirtualDocumentRoot /www/hosts/%0/docs VirtualScriptAlias /www/hosts/%0/cgi-bin 0
复制代码 这里暗码经由加密,用户可以本人找些东西将暗码加密成.htaccess撑持的编码。该文档最好不要放在www目次下,建议放在www根目次文档以外,如许更加平安些。
有了受权用户文档,可以在.htaccess中到场以下指令了:
- VirtualDocumentRoot /www/hosts/%0/docs VirtualScriptAlias /www/hosts/%0/cgi-bin 1
复制代码 require user wsabstract (答应会见的用户,假如但愿表中一切用户都答应,可使用 require valid-user)
注:括号局部为进修时分本人添加的正文
3、回绝来自某个IP的会见
假如我不想某个当局部分会见到我的站点的内容,那可以经由过程.htaccess中到场该部分的IP而将它们回绝在外。 例如:
- VirtualDocumentRoot /www/hosts/%0/docs VirtualScriptAlias /www/hosts/%0/cgi-bin 2
复制代码 注: 第二行回绝某个IP,第三行回绝某个IP段,也就是219.146.95.0~219.146.95.255 想要回绝一切人?用deny from all好了。不止用IP,也能够用域名来设定。
4、回护.htaccess文档
在利用.htaccess来设置目次的暗码回护时,它包括了暗码文件的途径。从平安思索,有需要把.htaccess也回护起来,不让他人看到个中的内容。固然可以用其他体例做到这点,好比文档的权限。不外,.htaccess自己也能做到,只需到场以下的指令:
- VirtualDocumentRoot /www/hosts/%0/docs VirtualScriptAlias /www/hosts/%0/cgi-bin 3
复制代码 5、URL转向
咱们能够对网站停止从头计划,将文档停止了迁徙,或更改了目次。这时候候,来自搜刮引擎或其他网站链接过去的会见便可能失足。这类情形下,可以经由过程以下指令来完成旧的URL主动转向到新的地址:
- VirtualDocumentRoot /www/hosts/%0/docs VirtualScriptAlias /www/hosts/%0/cgi-bin 4
复制代码 普通情形下缺省的首页文件名有default、index等。不外,有些时分目次中没出缺省文件,而是某个特定的文件名,好比在pmwiki中是pmwiki.php。这类情形下,要用户记住文件名来会见很费事。在.htaccess中可以等闲的设置新的缺省文件名:
- VirtualDocumentRoot /www/hosts/%0/docs VirtualScriptAlias /www/hosts/%0/cgi-bin 5
复制代码 也能够列出多个,按次标明它们之间的优先级别,
例如:
- VirtualDocumentRoot /www/hosts/%0/docs VirtualScriptAlias /www/hosts/%0/cgi-bin 6
复制代码 rewrite重写功效
Apache模块 mod_rewrite,一个基于必定划定规矩的及时重写URL恳求的引擎此模块供应了一个基于正则表达式剖析器的重写引擎来及时重写URL恳求。它撑持每一个完全划定规矩可以具有不限数目的子划定规矩和附加前提划定规矩的天真并且壮大的URL操作机制。此URL操作可以依附于各类测试,好比办事器变量、情况变量、HTTP头、工夫标志,乃至各类格局的用于婚配URL构成局部的查找数据库。此模块可以操作URL的一切局部(包含途径信息局部),在办事器级的(httpd.conf)和目次级的(.htaccess)设置装备摆设都无效,还可以生成终究恳求字符串。此重写操作的了局可所以外部子处置,也能够是内部恳求的转向,乃至还可所以外部代办署理处置。然而,一切这些功效和天真性带来一个成绩,那就是庞杂性,因而,不要期望一天以内就可以看懂全部模块。更多的会商、细节、示例,请检查具体的URL重写文档。
(1)特别字符的援用:
- VirtualDocumentRoot /www/hosts/%0/docs VirtualScriptAlias /www/hosts/%0/cgi-bin 7
复制代码 (2)情况变量
此模块会跟踪两个额定的(非尺度)CGI/SSI情况变量,SCRIPT_URL和SCRIPT_URI。他们包括了以后资本的逻辑收集视图,而尺度CGI/SSI变量SCRIPT_NAME和SCRIPT_FILENAME包括的是物理体系视图。注重:这些变量坚持的是其最后被恳求时的URI/URL,即在任何重写操作之前的URI/URL。其主要性在于他们是重写操作重写URL到物理途径名的原始根据。
示例:
- VirtualDocumentRoot /www/hosts/%0/docs VirtualScriptAlias /www/hosts/%0/cgi-bin 8
复制代码 (3)rewrite的指令
- VirtualDocumentRoot /www/hosts/%0/docs VirtualScriptAlias /www/hosts/%0/cgi-bin 9
复制代码 RewriteBase指令显式地设置了目次级重写的基准URL。鄙人文中,你将看到RewriteRule可以用于目次级的设置装备摆设文件中(.htaccess)并在部分局限内起感化,即划定规矩实践处置的只是剥离了当地途径前缀的一局部。处置停止后,这个途径会被主动地附着归去。默许值是"RewriteBase physical-directory-path"。
在对一个新的URL停止交换时,此模块必需把这个URL从头注入到办事器处置中。为此,它必需晓得其对应的URL前缀或说URL基准。凡是,此前缀就是对应的文件途径。然而,大多半网站URL不是直接对应于其物理文件途径的,因此普通不克不及做如许的假定! 所以在这类情形下,就必需用RewriteBase指令来指定准确的URL前缀。
假如你的网站办事器URL不是与物理文件途径直接对应的,而又需求利用RewriteBase指令,则必需在每一个对应的.htaccess文件中指定RewriteRule 。
例如,目次级设置装备摆设文件内容以下:
注:上述例子中,对/xyz/oldstuff.html的恳求被准确地重写为对物理文件/abc/def/newstuff.html的恳求。
以以下出了外部处置的具体步调:
固然这个进程看来很繁复,然而因为目次级重写的到来机会已太晚了,它不能不把这个(重写)恳求从头注入到Apache中心中,所以Apache外部的确是如许处置的。然而:它的开支其实不象看起来的那样大,由于从头注入完整在Apache办事器外部停止,并且如许的进程在Apache外部也为其他很多操作所利用。所以,你可以充实信赖其设计和完成是准确的。
我先把我自己学习PHP的过程做一下概括: |
|