IIS7添加PHP支持的设置方法

 更新时间:2016年9月20日 19:01  点击:1824

要在Vista的IIS7上实现这一点我始终没弄成。

  最后我还是用的老方法,ISAPI,选用了一个5.3以前的版本,我选的是5.2.11。

  php教程-5.2.11-Win32.zip的下载地址

  .net教程/distributions/php-5.2.11-Win32.zip">http://cn2.php.net/distributions/php-5.2.11-Win32.zip

  如果上面的地址不好始,也可以去下面这个地址去从其他镜像下载

  http://cn.php.net/get/php-5.2.11-Win32.zip/from/a/mirror

  把php-5.2.11-Win32.zip下载回来之后,把里面的文件解压到C:php目录下(或者是D盘E盘也都行,只是我习惯放C盘)。

  还要确认一点,在Vista的“打开或关闭Windows功能”里不但要安装IIS,而且还要安装两个重要的ISAPI组件,如下图:

  下面开始配置PHP了……

  1、把PHP目录下的php.ini-dist(显示扩展名)改成php.ini,然后用记事本打开,在里面找到extension_dir = "./",然后把里面的./改成c:php(就是把PHP解压到的那个路径)。

  2、还是在php.ini这个文件里,找到下面这三行,把它们前面的分号删掉(带分号是注释的意思)

  extension=php_mbstring.dll

  extension=php_mssql.dll

  extension=php_mysql教程.dll

  3、把php.ini保存,然后复制到Windows目录下。

  4、打开Vista管理工具中的“Internet信息服务(IIS)管理器”,在“应用程序池”中新建一个应用程序池,取名为PHP,.Net版本为“无托管代码”。


  5、在“ISAPI筛选器”中点右键“添加”,起名为php,可执行文件选成C:phpphp5isapi.dll。

  6、在“ISAPI和CGI限制”里点右键“添加”,路径还是选成c:phpphp5isapi.dll,描述还写成php,选中“允许执行扩展路径”。

  7、在“处理程序映射”里右键“添加脚本映射”,请求路径填*.php,可执行文件还选c:phpphp5ispai.dll,名称还叫php。

  8、以上工作做完后就基本完工了,下面测试:

  在IIS指定的站点目录下建一个文件夹,就叫php(我之所以要搭建php+iis,主要是因为我要开发及管理的项目里既有php,也有asp教程和.net的),然后在这个php目录里新建一个文件phpinfo.php,里面的内容就是经典的PHP测试函数:

  

  phpinfo();

  ?>

 

// js 常用时间日期函数
function load(){
 var time = new Date( ); //获得当前时间
 var year = time.getFullYear();   //获得年
 var month = (time.getMonth()+1);   //获得月份 0-11
 if(month<10){
  month = '0' + month;
 }
 var ri = time.getDate();       //获得日期 1-31
 if(ri<10){
  ri = '0' + ri;
 }
 var hour = time.getHours( );   //获得小时  0-23
 var minute = time.getMinutes( );  //获得分钟  0-59
 if(minute<10){
  minute = "0"+minute;
 }
 var second = time.getSeconds( );   //获得秒  0-59
 if(second<10){
  second = "0" + second;
 }
 //var hm = time.getMilliseconds();   获得毫秒 0-999
 var day = time.getDay();    //获得星期 0-6
 document.getElementById("now_time").style.color = '#2A7EB7'; //改变了颜色
 switch(day){
  case 0:
   day = "星期日";
   if(day == "星期日"){
    document.getElementById("now_time").style.color = '#F00'; //改变了颜色
   }
   break;
  case 1:
   day = "星期一";
   break;
  case 2:
   day = "星期二";
   break;
  case 3:
   day = "星期三";
   break;
  case 4:
   day = "星期四";
   break;
  case 5:
   day = "星期五";
   break;
  case 6:
   day = "星期六";
   if(day == "星期六"){
    document.getElementById("now_time").style.color = '#F00';  //改变style里面颜色的属性
   }
   break;
 }

 time =year + "年  "+ month +"月"+ri+"日 "+  hour+":"+minute+":"+second +"  "+day;
 document.getElementById("now_time").innerHTML = time;
 //var time = setTimeout("load()",1000);     //setTimeout()小 setInterval()大  看看CUP使用率
}
var time = setInterval("load()",1000);

iis 7.0 http 状态代码

当试图访问通过使用 HTTP 运行 Internet Information Services (IIS) 7.0 的服务器上的内容时 IIS 7.0 将返回一个数字代码,指示响应的状态。 HTTP 状态代码是 IIS 日志中记录的。 此外,HTTP 状态代码可能会显示在客户端浏览器中。

 

HTTP 状态代码可能表明请求是成功还是失败。 HTTP 状态代码还可能显示一个请求不成功的确切原因。

HTTP 状态代码
本节描述 IIS 7.0 使用的 HTTP 状态代码。

注意 本文不会列出每个可能的 HTTP 状态代码,按照 HTTP 规范中设置。 本文包括只在 HTTP 状态代码 IIS 7.0 可以发送的。 自定义 Internet 服务器 API (ISAPI) 筛选器或自定义 HTTP 模块可以设置自己的 HTTP 状态代码。
1 xx-信息
这些 HTTP 状态代码表示临时响应。 客户端计算机收到一个或多个 1 xx 响应客户端计算机之前收到常规响应。

IIS 7.0 使用以下信息性的 HTTP 状态代码:
100 继续。
101 切换协议。
2 xx-成功
这些 HTTP 状态代码表明服务器成功地接受该请求。

IIS 7.0 使用下面的成功 HTTP 状态代码:
200 确定。 客户端请求已成功完成。
201 创建。
202 被接受。
203 不具有权威性的信息。
204 无内容。
205 重置内容。
206 部分内容。
3 xx-重定向
这些 HTTP 状态代码表示客户端浏览器必须采取更多操作以完成请求。 客户端浏览器可能以请求在服务器上不同的页面。 或客户端浏览器可能要通过使用代理服务器重复请求。

IIS 7.0 使用下面的重定向 HTTP 状态代码:
301 永久移动。
302 对象移动。
304 未修改。
307 临时重定向。

目录

   1. What is 404 什么是404
   2. 创建一个。htaccess文件
   3. 在custom404页
   4. 例如custom404页

什么是404。

.您有多个看到404 1 brazillian时候对净戳可能。 .往往这些网页定制公司网站的设计,以混合英寸当使用标准的404页没有什么信息,以帮助用户进一步浏览您的网站。通过提供自定义404页,用户可以显示出地图或其他方法,直接到您的网站回来。.首先,我们将使用Apache和htaccess来创造我们的404和PHP的信息,提供自定义404页的内容。

创建一个。htaccess文件

.它已经超出了本文的范围来描述运作的。htaccess,因此,如果您需要更多的信息,然后检查了Apache的文档。

在这里我们将使用。htaccess文件对乘坐在httpd.conf文件中指定的默认行为。.这条线将告诉Apache服务器,利用本身的custom404.php文件,而不是默认的。

ErrorDocument 404 / custom404.php

Custom404页

该custom404.php文件就像其它任何PHP您网站上的文件。它可以包含任何HTML和PHP等混合您选择。 .您可以控制的内容完全控制了。 这将是一个简单的任务,在一个简单的重定向提出如下所示:  

<?php
header ( "Location: http://111cn.net" );
?>

<meta name="robots" content="noindex, nofollow">

例如Custom404页

这就是不正确的做法,例如PHPRO无文章代码。 下面是一个什么样的custom404.php网页可能看起来像简单的例子

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="en">
<head>
<meta name="robots" content="noindex, nofollow">
<title>PHPRO Custom 404</title>
</head>
<body>
<h1>Page Not found</h2>
<p>The page you have have looked for does not exists.
Please select from the menu or search for information using the search box below
</p>

<?php
/*** lots of code for generating a sitemap ***/
?>

<form action="search.php" method="post">
<input type="text" name="search_text" />
<input type="submit" value="Search" />
</form>

网站防采集方法


    第1种方法:

    防采集第一招 用Persistence为静态页面增加session功能  

    一般来说,只有服务器端的CGI程序(ASP、PHP、JSP)具有session会话功能,用来保存用户在网站期间(会话)的活动数据信息,而对于数量众多的静态页面(HTML)来说,只能使用客户端的cookies来保存临时活动数据,但对于cookies的操作是个很烦琐的过程,远没有对于session操作那样简便。为此,本文向读者推荐一种在DHTML中的解决方案“Persistence技术”,使得在静态页面中也能使用session会话功能。

    Microsoft Internet Explorer 5浏览器和以后的版本都支持使用状态保持(Persistence)技术,让我们能够在当前会话过程中保存一些数据对象到客户端,减少了对服务器的访问请求,充分发挥了客户端计算机的数据处理能力,从而也整体提升了页面显示效率。

    Persistence技术有以下几种行为可供调用:

· saveFavorite—当页面被添加到收藏夹时保存页面状态和信息
· saveHistory—在当前会话中保存页面状态和信息
· saveSnapshot—当页面被保存到硬盘时,保存页面状态和信息
· userData—在当前会话中用XML格式保存页面状态和信息
    Persistence技术打破了以前使用cookies和session的传统,继承了cookies的一些安全策略,同时也增加了存储和管理数据的能力。我们的每个页面有64KB的用户数据存储容量,对于每个站点总计有640KB的存储上限。

    Persistence技术存储的数据格式符合XML标准,所以可以使用DOM技术中的getAttribute和setAttribute方法来存取数据。

    下面是一个Persistence技术的典型应用,通过对Persistence存储数据的分析,使得静态页面具有验证功能。

    实际判断过程是这样的:

    1.有三个对象:游客V、导航页面A、内容页面C
    2.游客V只能通过导航页面A的链接才能看到内容页面C;
    3.如果游客V是通过其它途径来访问内容页面C(比如通过其它网站的超链接、直接在IE地址栏中输入网址访问等),内容页面C将自动提示版权信息,显示空白页。
具体实现步骤:

    · 在“导航页面”中加入一个STYLE用来定义persistent类,同时加入存储函数fnSave用来授权。
<STYLE>
.userData {behavior:url(#default#userdata);}
</STYLE>
<SCRIPT language=Javascript>
function fnSave(){
oPersistDiv.setAttribute("bIsValid","true");
oPersistDiv.save("oXMLStore");
}
</SCRIPT>

    · 在“导航页面”的<body>和</body>区域中定义一个层用来标识Persistence对象
<DIV CLASS=userData ID="oPersistDiv"></DIV>

    · 在“导航页面”的超链接属性中加入一条语句用来调用函数fnSave:
<a href='redhat2.htm' onmousedown="fnSave()">

    接下来,为“内容页面”加入验证功能。

    · 在“内容页面”中加入一个STYLE用来定义persistent类,同时加入存储函数fnLoad用来判断合法性。
<STYLE>
.userData {behavior:url(#default#userdata);}
</STYLE>
<SCRIPT>
var bPageValid=false;
function fnLoad(){
oPersistDiv.load("oXMLStore");
if((oPersistDiv.getAttribute("bIsValid"))&&
(oPersistDiv.getAttribute("bIsValid")=="true")){
bPass=true;
}
else{
bPass=false;
}
oPersistDiv.setAttribute("bIsValid","false");
oPersistDiv.save("oXMLStore");
if(bPass==false){
var sError="来源不明,请您通过授权网站访问我们.";
alert(sError);
location.href="about:blank";
}
} </SCRIPT>

    · 修改“内容页面”的区域如下:
<BODY onload="fnLoad()">
<DIV CLASS=userData ID="oPersistDiv"></DIV>

 方法2:(ASP代码):
     

<%
Dim AppealNum,AppealCount
AppealNum=10 '同一IP60秒内请求限制10次
AppealCount=Request.Cookies("AppealCount")
If AppealCount="" Then
response.Cookies("AppealCount")=1
AppealCount=1
response.cookies("AppealCount").expires=dateadd("s",60,now())
Else
response.Cookies("AppealCount")=AppealCount+1
response.cookies("AppealCount").expires=dateadd("s",60,now())
End If
if int(AppealCount)>int(AppealNum) then
response.write "网页特效http://www.qpsh.com提醒您:抓取很累,歇一会儿吧!"
response.end
End If
%>

    第3种方法(ASP):

<%
user_agent=Request.ServerVariables("HTTP_USER_AGENT")
http_reffer=Request.ServerVariables("HTTP_REFERER")
server_name=Request.ServerVariables("SERVER_NAME")
'检查当前用户是否是蜘蛛人
function check(user_agent)
allow_agent=split("Baiduspider,Scooter,ia_archiver,Googlebot,FAST-WebCrawler,MSNBOT,Slurp",",")
check_agent=false
for agenti=lbound(allow_agent) to ubound(allow_agent)
if instr(user_agent,allow_agent(agenti))>0 then
check_agent=true
exit for
end if
next
check=check_agent
end function
if check(user_agent)=False then
if http_reffer="" or left(http_reffer,len("http://"&server_name)+1)<>"http://"&server_name&"/" then
%>
<html><body>
<form action='' name=checkrefer id=checkrefer method=post>
</form>
<script>
document.all.checkrefer.action=document.URL;
document.all.checkrefer.submit();
</script>
</body></html>
<%response.end
end if
end if
%>

 


    ***插入以上代码的页面需在同一个文件夹下,否则会出错。
从以上范例可看出,通过persistence的使用,使得普通的静态内容页面具有了session功能,一般的不敏感信息完全可以通过session保存在客户端。

    1.每个文章的命名不要有任何规律,比如你的文章是<%=id%>.htm的话,请在前面或后面生成个日期,如:20070911-1234.htm,前面的就是日期了,这样对采集新手来说是非常有效的。

    2.不要把所有的文章都放在一个目录下,你可以利用日期生成不同的目录名。

    3.不要所有的文章都用一个模板,制作尽量多的模板,添文章的时候可有选要用哪个模板,一般采集者的采集程序是有针对性的,他在采集前会对你的页面进行分析,如果你所有的页面排版无规律可寻,那么我想他就会放弃了。

    以上三种方法能防住初级采集的,但是对高手来说没什么用。
   
    下面三种方法用限制采集人的IP或SESSION的方法来达到防采集的目的。

[!--infotagslink--]

相关文章

  • php 中file_get_contents超时问题的解决方法

    file_get_contents超时我知道最多的原因就是你机器访问远程机器过慢,导致php脚本超时了,但也有其它很多原因,下面我来总结file_get_contents超时问题的解决方法总结。...2016-11-25
  • php抓取网站图片并保存的实现方法

    php如何实现抓取网页图片,相较于手动的粘贴复制,使用小程序要方便快捷多了,喜欢编程的人总会喜欢制作一些简单有用的小软件,最近就参考了网上一个php抓取图片代码,封装了一个php远程抓取图片的类,测试了一下,效果还不错分享...2015-10-30
  • HTTP 408错误是什么 HTTP 408错误解决方法

    相信很多站长都遇到过这样一个问题,访问页面时出现408错误,下面一聚教程网将为大家介绍408错误出现的原因以及408错误的解决办法。 HTTP 408错误出现原因: HTT...2017-01-22
  • Android子控件超出父控件的范围显示出来方法

    下面我们来看一篇关于Android子控件超出父控件的范围显示出来方法,希望这篇文章能够帮助到各位朋友,有碰到此问题的朋友可以进来看看哦。 <RelativeLayout xmlns:an...2016-10-02
  • ps把文字背景变透明的操作方法

    ps软件是现在非常受大家喜欢的一款软件,有着非常不错的使用功能。这次文章就给大家介绍下ps把文字背景变透明的操作方法,喜欢的一起来看看。 1、使用Photoshop软件...2017-07-06
  • Mysql select语句设置默认值的方法

    1.在没有设置默认值的情况下: 复制代码 代码如下:SELECT userinfo.id, user_name, role, adm_regionid, region_name , create_timeFROM userinfoLEFT JOIN region ON userinfo.adm_regionid = region.id 结果:...2014-05-31
  • intellij idea快速查看当前类中的所有方法(推荐)

    这篇文章主要介绍了intellij idea快速查看当前类中的所有方法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2020-09-02
  • js导出table数据到excel即导出为EXCEL文档的方法

    复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta ht...2013-10-13
  • mysql 批量更新与批量更新多条记录的不同值实现方法

    批量更新mysql更新语句很简单,更新一条数据的某个字段,一般这样写:复制代码 代码如下:UPDATE mytable SET myfield = 'value' WHERE other_field = 'other_value';如果更新同一字段为同一个值,mysql也很简单,修改下where即...2013-10-04
  • ps怎么制作倒影 ps设计倒影的方法

    ps软件是一款非常不错的图片处理软件,有着非常不错的使用效果。这次文章要给大家介绍的是ps怎么制作倒影,一起来看看设计倒影的方法。 用ps怎么做倒影最终效果&#819...2017-07-06
  • js基础知识(公有方法、私有方法、特权方法)

    本文涉及的主题虽然很基础,在许多人看来属于小伎俩,但在JavaScript基础知识中属于一个综合性的话题。这里会涉及到对象属性的封装、原型、构造函数、闭包以及立即执行表达式等知识。公有方法 公有方法就是能被外部访问...2015-11-08
  • 安卓手机wifi打不开修复教程,安卓手机wifi打不开解决方法

    手机wifi打不开?让小编来告诉你如何解决。还不知道的朋友快来看看。 手机wifi是现在生活中最常用的手机功能,但是遇到手机wifi打不开的情况该怎么办呢?如果手机wifi...2016-12-21
  • PHP 验证码不显示只有一个小红叉的解决方法

    最近想自学PHP ,做了个验证码,但不知道怎么搞的,总出现一个如下图的小红叉,但验证码就是显示不出来,原因如下 未修改之前,出现如下错误; (1)修改步骤如下,原因如下,原因是apache权限没开, (2)点击打开php.int., 搜索extension=ph...2013-10-04
  • c#中分割字符串的几种方法

    单个字符分割 string s="abcdeabcdeabcde"; string[] sArray=s.Split('c'); foreach(string i in sArray) Console.WriteLine(i.ToString()); 输出下面的结果: ab de...2020-06-25
  • js控制页面控件隐藏显示的两种方法介绍

    javascript控制页面控件隐藏显示的两种方法,方法的不同之处在于控件隐藏后是否还在页面上占位 方法一: 复制代码 代码如下: document.all["panelsms"].style.visibility="hidden"; document.all["panelsms"].style.visi...2013-10-13
  • 连接MySql速度慢的解决方法(skip-name-resolve)

    最近在Linux服务器上安装MySql5后,本地使用客户端连MySql速度超慢,本地程序连接也超慢。 解决方法:在配置文件my.cnf的[mysqld]下加入skip-name-resolve。原因是默认安装的MySql开启了DNS的反向解析。如果禁用的话就不能...2015-10-21
  • C#方法的总结详解

    本篇文章是对C#方法进行了详细的总结与介绍,需要的朋友参考下...2020-06-25
  • Zend studio文件注释模板设置方法

    步骤:Window -> PHP -> Editor -> Templates,这里可以设置(增、删、改、导入等)管理你的模板。新建文件注释、函数注释、代码块等模板的实例新建模板,分别输入Name、Description、Patterna)文件注释Name: 3cfileDescriptio...2013-10-04
  • EXCEL数据上传到SQL SERVER中的简单实现方法

    EXCEL数据上传到SQL SERVER中的方法需要注意到三点!注意点一:要把EXCEL数据上传到SQL SERVER中必须提前把EXCEL传到服务器上.做法: 在ASP.NET环境中,添加一个FileUpload上传控件后台代码的E.X: 复制代码 代码如下: if...2013-09-23
  • mysql锁定单个表的方法

    mysql锁定单个表的方法 复制代码 代码如下:mysql>lock table userstat read; mysql>unlock tables; 页级的典型代表引擎为BDB。 表级的典型代表引擎为MyISAM,MEMORY以及很久以前的ISAM。 行级的典型代表引擎为INN...2014-05-31