关于2003+IIS+PHP ISAPI显示未加载问题解决方法
关于2003+IIS+PHP ISAPI显示未加载问题解决方法
呵呵,这个问题困扰了好久,最后终于发现其实是PHP目录的权限设置问题``<BR>比如PHP在C:\php目录下<BR>给PHP目录 everyone 完全控制权就解决了
关于2003+IIS+PHP ISAPI显示未加载问题解决方法
呵呵,这个问题困扰了好久,最后终于发现其实是PHP目录的权限设置问题``<BR>比如PHP在C:\php目录下<BR>给PHP目录 everyone 完全控制权就解决了
(图一)
第二步:创建IP安全策略
右击刚刚添加的“IP安全策略,在本地机器”(图二),选择“创建IP安全策略”,单击“下一步”,然后输入一个策略描述,如“no Ping”(图三)。单击“下一步”,选中“激活默认响应规则”复选项,单击“下一步”。开始设置身份验证方式,选中“此字符串用来保护密钥交换(预共享密钥)”选项,然后随便输入一些字符(下面还会用到这些字符)(图四)。单击“下一步”,就会提示已完成IP安全策略,确认选中了“编辑属性”复选框,单击“完成”按钮,会打开其属性对话框。
(图二)
(图三)
(图四)
第三步:配置安全策略
单击“添加”按钮,并在打开安全规则向导中单击“下一步”进行隧道终结设置,在这里选择“此规则不指定隧道”。(图六)单击“下一步”,并选择“所有网络连接”以保证所有的计算机都Ping不通。单击“下一步”,设置身份验证方式,与上面一样选择第三个选项“此字符串用来保护密钥交换(预共享密钥)”并填入与刚才相同的内容。单击“下一步”,在打开窗口中单击“添加”按钮,打开“IP筛选器列表”窗口。(图七)单击“添加”,单击“下一步”,设置源地址为“我的IP地址”,单击“下一步”,设置目标地址为“任何IP地址”,单击“下一步”,选择协议为ICMP,现在就可依次单击“完成”和“关闭”按钮返回。此时,可以在IP筛选器列表中看到刚刚创建的筛选器,将其选中之后单击“下一步”,选择筛选器操作为“要求安全设置”选项(图八),然后依次点击“完成”、“关闭”按钮,保存相关的设置返回管理控制台。
(图五)
(图六)
(图七)
(图八)
第四步:指派安全策略
最后只需在“控制台根节点”中右击配置好的“禁止Ping”策略,选择“指派”命令使配置生效(图九)。经过上面的设置,当其他计算机再Ping该计算机时,就不再相通了。但如果自己Ping本地计算机,仍可相通。此法对于Windows 2000/XP均有效。
(图九)
<!--#config errmsg="Error! Please email webmaster@mydomain.com --> |
<!--#config timefmt="%A, %B %d, %Y"--> <!--#echo var="LAST_MODIFIED" --> |
Wednesday, April 12, 2000 |
<!--#config sizefmt="bytes" --> <!--#fsize file="index.html" --> |
<!--#include virtual="/includes/header.html" --> |
<!--#include file="header.html" --> |
<!--#echo var="DOCUMENT_NAME" --> |
<!--#echo var="DOCUMENT_URI" --> |
/YourDirectory/YourFilename.html |
http://YourDomain<!--#echo var="DOCUMENT_URI" --> |
<!--#echo var="QUERY_STRING_UNESCAPED" --> |
<!--#config timefmt="%A, the %d of %B, in the year %Y" --> <!--#echo var="DATE_LOCAL" --> |
Saturday, the 15 of April, in the year 2000 |
<!--#echo var="DATE_GMT" --> |
<!--#echo var="LAST_MODIFIED" --> |
SERVER_SOFTWARE:显示服务器软件的名称和版本。例如: <!--#echo var="SERVER_SOFTWARE" --> SERVER_NAME: 显示服务器的主机名称,DNS别名或IP地址。例如: <!--#echo var="SERVER_NAME" --> SERVER_PROTOCOL:显示客户端请求所使用的协议名称和版本,如HTTP/1.0。例如: <!--#echo var="SERVER_PROTOCOL" --> SERVER_PORT:显示服务器的响应端口。例如: <!--#echo var="SERVER_PORT" --> REQUEST_METHOD:显示客户端的文档请求方法,包括GET, HEAD, 和POST。例如: <!--#echo var="REQUEST_METHOD" --> REMOTE_HOST:显示发出请求信息的客户端主机名称。 <!--#echo var="REMOTE_HOST" --> REMOTE_ADDR:显示发出请求信息的客户端IP地址。 <!--#echo var="REMOTE_ADDR" --> AUTH_TYPE:显示用户身份的验证方法。 <!--#echo var="AUTH_TYPE" --> REMOTE_USER:显示访问受保护页面的用户所使用的帐号名称。 <!--#echo var="REMOTE_USER" --> |
<!--#fsize file="index_working.html" --> |
<!--#config timefmt="%A, the %d of %B, in the year %Y" --> <!--#flastmod file="file.html" --> |
<!--#config timefmt=" %B %d, %Y" --> <A HREF="/directory/file.html">File</A> <!--#flastmod virtual="/directory/file.html" --> <A HREF="/another_directory/another_file.html">Another File</A> <!--#flastmod virtual="/another_directory/another_file.html" --> 显示结果为: File April 19, 2000 Another File January 08, 2000 |
<!--#exec cgi="/cgi-bin/counter.pl" --> |
什么是HTML:
HTML(HyperTextMark-upLanguage)即超文本标记语言,是WWW的描述语言。设计HTML语言的目的是为了能把存放在一台电脑中的文本或图形与另一台电脑中的文本或图形方便地联系在一起,形成有机的整体,人们不用考虑具体信息是在当前电脑上还是在网络的其它电脑上。我们只需使用鼠标在某一文档中点取一个图标,Internet就会马上转到与此图标相关的内容上去,而这些信息可能存放在网络的另一台电脑中。 HTML文本是由HTML命令组成的描述性文本,HTML命令可以说明文字、图形、动画、声音、表格、链接等。HTML的结构包括头部(Head)、主体(Body)两大部分,其中头部描述浏览器所需的信息,而主体则包含所要说明的具体内容。
什么是ASP:
Active Server Pages(ASP,活动服务器页面)就是一个编程环境,在其中,可以混合使用HTML、脚本语言以及组件来创建服务器端功能强大的Internet应用程序。如果你以前创建过一个站点,其中混合了HTML、脚本语言以及组件,你就可以在其中加入ASP程序代码。通过在HTML页面中加入脚本命令,你可以创建一个HTML用户界面,并且,还可以通过使用组件包含一些商业逻辑规则。组件可以被脚本程序调用,也可以由其他的组件调用。
htm(和html性质是一样的)其实是静态的网页文件,它只包含简单的网页语言,不包含服务器脚本或指令。
而shtm(和shtml也是性质一样)和ASP都是包含服务器脚本的文件,如果有脚本或指令在里面,服务器会按要求执行它,因此,这些类型是动态的,可执行的文件每一个网页或者说是web页都有其固定的后缀名,不同的后缀名对应着不同的文件格式和不同的规则、协议、用法,最常见的web页的后缀名是.html和.htm,但这只是web页最基本的两种文件格式,今天我们来介绍一下web页的其它一些文件格式。
首先介绍一下html与htm
关于HTML,HTML(HyperTextMark-upLanguage)即超文本标记语言,是WWW的描述语言。设计HTML语言的目的是为了能把存放在一台电脑中的文本或图形与另一台电脑中的文本或图形方便地联系在一起,形成有机的整体,人们不用考虑具体信息是在当前电脑上还是在网络的其它电脑上。我们只需使用鼠标在某一文档中点取一个图标,Internet就会马上转到与此图标相关的内容上去,而这些信息可能存放在网络的另一台电脑中。 HTML文本是由HTML命令组成的描述性文本,HTML命令可以说明文字、图形、动画、声音、表格、链接等。HTML的结构包括头部(Head)、主体(Body)两大部分,其中头部描述浏览器所需的信息,而主体则包含所要说明的具体内容。
关于HTM,实际上HTM与HTML没有本质意义的区别,只是为了满足DOS仅能识别8 3的文件名而已,因为一些老的系统(win32)不能识别四位文件名,所以某些网页服务器要求index.html最后一个l不能省略。MSIE能自动识别和打开这些文件,但编写网页地址的时候必须是完全对应的,也就是说index.htm和index.html是两个不同的文件,对应着不同的地址。值得一提的是UNIX系统中对大小写敏感,不吻合的话就可能报没有文件或者找不到文件。
其次介绍一下什么是shtml和shtm
关于shtml教程,view index.shtml是一种基于SSI技术的文件,也就是Server Side Include--SSI 服务器端包含指令,一些Web Server如果有SSI功能的话就会对index.shtml文件特殊招待,服务器会先扫一次iis shtml文件看没有特殊的SSI指令存在,如果有的话就按Web Server设定规则解释SSI指令,解释完后跟一般html一起调去客户端。
关于shtm,shtm与asp生成shtml的关系和htm与html的关系大致相似,这里就不多说了。
html或htm与shtml系统或shtm的关系是什么
html或者htm是一种静态的页面格式,也就是说不需要服务器解析其中的脚本,或者说里面没有服务器端执行的脚本,而生成shtml或者shtm由于它基于SSI技术,当有服务器端可执行脚本时被当作一种动态编程语言来看待,就如asp、jsp或者php一样。当shtml或者shtm中不包含服务器端可执行脚本时其作用和html或者htm是一样的。
大家也看到了,新浪啊,网易啊这些大站都用shtml.为什么用shtml呢? 这里简单讲一下shtml的好处.
比如,新浪一天比如增加2万条新闻,全部都得生成.如果选择生成html的话,他想改动左栏右栏底部头部等内容就需要以下几种办法,一是重新改模版再生成,二是全部用js调用,三是用iframe调用.第一种采用的话那他们就是变态.第二种搜索引擎不收,第三种大小都控制不了,想增加个广告都是难事.所以,我们就有了shtml.
shtml可以使用<!--#i nclude file="xxx.shtml" -->这种ssl..也就是可以直接调用某一页面到此页面,和asp的用法是一样的。但shtml却不像asp那样是动态页,当然,生成纯静态的asp,也就和html一样了。
因为你调用的是静态文件,所以在执行上不需要有多少损耗.
而shtml支持更简单,iis6.0都支持.就是把<服务器端包含文件>开启就行.
举个例子来说shtml的优势吧 ,shtml可以使用include 比如你可以<!--#i nclude file="/top.html"-->
这样你改页头就不用重新生成所有的页面了或者你inlcude “最新文章列表”,那你只要刷新“最新文章列表”就可以了,不用刷新所有的文章或者列表页,节省巨多时间。同理,你还可以发挥自己的想象,来include更多的东西,来减少你的刷新量 。
调用.js不也能办到吗? 当然,但是效果是不一样的,shtml是服务器端包含,也就是说在展示给用户之前已经在服务器端把包含的文件品合到一起了,而js却不然,js一般是在客户端执行的,也就是说,要由用户的浏览器去自己解释并展示出来换句话说,也就是shtml的包含对搜索引擎更有利,因为搜索引擎获得的是完整的html代码,而不是夹带了js还要自己解释的html代码,搜索引擎懒得去解释你的每个js
ssi的其它功能一般较少用到,所以也就不说了
但是,如果你用了shtml而不使用inlcude的话,那你是白白浪费时间,因为ssi是要进行一步include检查的,会比html慢。
所有文件采用 UTF-8 编码,因此所有文本文件(模板文件和php文件)必须保存为 UTF-8 编码。另外,部分文本编辑软件,如Dreamweaver、记事本等,在保存UTF-8文件时会在文件最开始加入UTF-8识别记号(BOM)。BOM在WINDOWS下打开文件时不可见,但PHP在读取文件时仍会将其作为文件的一部分,由此会产生无法登入、页面空白、出现上面的提示信息、模板无法顶住页面顶部等现象。
解决的方法:
建议您使用 Editplus 2.12 或者 UltraEdit 支持UTF-8的编辑器编辑PHP文件。它们对无BOM的UTF-8文件兼容较好;
UltraEdit用户需将 “保存时对所有UTF-8写入UTF-8 BOM文件头标记” 选项设置为关,其它文本编辑器用户,在编辑完后如发现程序异常,可参考这篇文章解决。