技术常识
·  当前位置:网站首页 >> 技术常识
疑难解答在Windows上安装PHP
2012-3-13    来源:    作者:佚名
我的PHP的安装不工作?我无法运行我的PHP脚本?一个简单的php Info页在浏览器中未加载?这些都是我从论坛用户听到的典型问题。我仍然说的最好方法安装PHP是利用WPI如我论坛里所说的这里和这里。我说,是因为WPI安装,包括非手动步骤安装PHP 5.2.11或PHP5.3。
但是像手动安装软件也不是100%安全,可能要失败的。我要解释如何解决您的PHP安装问题。第一个建议是使用WPI安装它。如果您按照我的PHP安装方法,只需要简单的故障排除就好啦。此故障排除方法是为了配置PHP能够运行在IIS FastCGI和非线程安全的PHP版本。这个故障解决不只是为了让PHP运行在IIS的ISAPI模式中。如果您运行的是XP或更高版本的操作系统,我们建议部署在PHP上的IIS应该使用IIS FastCGI非线程安全的PHP版本。
我想告诉你在PHP安装过程中需要搞清楚特定的事情。这将是一件好事,如果你能说出下面命令/指令执行结果,并把问题报告到论坛。
如果您是XP/2k3
运行下面的命令,看看输出类似于在这里(我假设你的系统驱动器是C:)。
cscript.exe C:\inetpub\AdminScripts\adsutil.vbs GET w3svc/DefaultDoc
cscript.exe C:\inetpub\AdminScripts\adsutil.vbs GET w3svc/ScriptMaps | findstr php
输出结果,你可以从第一个命令:
DefaultDoc    : <STRING> "Default.htm, Default.asp, index.htm, index.php"
以下结果来自第二cssript命令:
".php,C:\WINDOWS\system32\inetsrv\fcgiext.dll,5,GET,HEAD,POST"
如果你返回值为空或者其他的事情,你应该怀疑你的安装
看看目录’C:\WINDOWS\system32\inetsrv’(我假设C:是您的系统驱动器),并确保您有:
·        fcgiext.dll
·        fcgiext.ini
·        fcgiconfig.js
同时打开fcgiext.ini文件,看看事情是正确的。正确设置的INI文件最好具备:
[类型]
Php=PHP
[PHP]
ExePath=C:\Program Files\PHP\php-cgi.exe
InstanceMaxRequests=10000
ActivityTimeout=600
RequestTimeout=600
EnvironmentVars=PHP_FCGI_MAX_REQUESTS:10000,PHPRC:C:\Program Files\PHP\
确保C:\Program Files\PHP\php-cgi.exe存在。并有一个有效php.ini文件在相同的目录。
如果您是Vista/2k8/WIN7/R2
运行下面的命令:
%WINDIR%\system32\inetsrv\appcmd.exe list config /section:fastcgi /text:*
%WINDIR%\system32\inetsrv\appcmd.exe list config /section:handlers /text:* | findstr /i PHP
在第一个命令的输出应该类似:
配置
CONFIG.SECTION:"system.webServer/fastCgi"
  path:"MACHINE/WEBROOT/APPHOST"
  overrideMode:"Inherit"
  locked:"false"
  [system.webServer/fastCgi]
    [application]
      fullPath:"C:\Program Files\PHP\php-cgi.exe"
      arguments:""
      monitorChangesTo:""
      stderrMode:"ReturnStdErrIn500"
      maxInstances:"4"
      idleTimeout:"300"
      activityTimeout:"600"
      requestTimeout:"600"
      instanceMaxRequests:"10000"
      signalBeforeTerminateSeconds:"0"
      protocol:"NamedPipe"
      queueLength:"1000"
      flushNamedPipe:"false"
      rapidFailsPerMinute:"10"
      [environmentVariables]
        [environmentVariable]
          name:"PHP_FCGI_MAX_REQUESTS"
          value:"10000"
        [environmentVariable]
          name:"PHPRC"
          value:"C:\Program Files\PHP\"
在第二个命令的输出应该类似于:
name:"PHP_via_FastCGI"
path:"*.php"
scriptProcessor:"C:\Program Files\PHP\php-cgi.exe"
如果输出是NIL(我的意思是什么)或大幅不同,请仔细检查您的安装。通过大幅度不同我的意思是文件有所缺失。请不要过多关注他们的值。
适用于所有的平台
所有可用的可执行文件/ DLL的颜色可显示为红色应出席上述在各自的位置。你也应该有一个有效显示为蓝色的php.ini文件在本地。
确保但是php - cgi.exe是正常工作的
有很多原因,你可以得到500如果PHP - cgi.exe不能正常工作。其中有些可以是:
·        一些PHP扩展创建问题和无法正确加载
·        程序错误
编程错误是一些你需要关注的。我想告诉你用一个简单的PHP文件包含如下行,测试你的PHP可执行性:
<?php
echo ’This is my first PHP program’;
?>
请在您的Webroot的文件夹命名上面的文件为‘test.php’并保存(PHP服务器变量_ SERVER [“DOCUMENT_ROOT]”)。我将使用
’C:\inetpub\wwwroot’作为我的webroot文件夹,PHP_SERVER variable _SERVER["DOCUMENT_ROOT"]设置
你可以使用下面两个命令检查你的PHP是否运行良好:
"C:\Program Files\PHP\php-cgi.exe" -v
"C:\Program Files\PHP\php-cgi.exe" C:\inetpub\wwwroot\test.php
第一个命令要打印出类似这样:
C:\Windows\system32>"C:\Program Files\PHP\php-cgi.exe" -v
PHP 5.3.1RC4 (cgi-fcgi) (built: Nov 12 2009 22:32:27)
Copyright (c) 1997-2009 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2009 Zend Technologies
没有任何错误或弹出对话框。如果有对话框提到缺少资源文件,请给予关注。它可能导致您的PHP无法正常在浏览器中查看。这个结果应该是干净的。我的意思是没有任何弹出对话框。如果你得到一下对话框缺少资源或者获取到该资源文件或者禁用扩展包在PHP.INI文件中。以禁用扩展,执行下列操作:
·        理解php.ini文件中起始行’extension=’的所有行 
·        每次注释一句并按照上述执行
·        找出哪些扩展创造问题和在前面加;注释掉
第二个命令应打印’This is my first PHP program’在命令行中,一些类似下面的话:
X-Powered-By: PHP/5.3.1RC4
Content-type: text/html
这是我的第一个PHP程序
PHP的输出文件本身
请阅读我的博客这里寻求解决办法。
本地主机/你的机器的IP地址是妥善解决
确保一个纯HTML文件中的Webroot可以被http://localhost/default.html访问
如果不是有一个DNS问题,请尝试与您的Internet服务提供商解决这个问题。
IIS的默认Web站点/ localhost是正确配置
请确保:
·        您有一个名为’默认网站’配置在你的IIS中。您可以通过运行’Inetmgr’确保这些。按视窗键+ R和输入’Inetmgr’
·        你能看到一个’默认网站’下的网站?如果不行,那么你的IIS存在严重的问题。这些网站可以帮助您创建一个’默认网站’
·        http://support.microsoft.com/kb/323972
·        http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/9b74f316-071b-4eab-b5d2-c3ad7feb46ca.mspx?mfr=true
·        如果你有一个正确的’默认网站’绑定在80端口,您应该复制你文件夹里面的’test.php文件这一文件夹对应的是‘默认站点’的屋里路径
·        通过‘inetmgr’UI关于’Physical Path’和’Binding Port’是有效的
也可以使用命令行工具,以了解约束力的港口和物理路径站点:
在Vista/2008/Win7/R2
上一篇: 中小企业网站如何赢得客户的信任
下一篇: 教你怎样预防ARP攻击
  相关信息
友情链接: 膨胀螺栓网  膨胀螺栓  化学锚栓  精轧螺纹钢  模锻卸扣  高强度螺母  护栏螺栓  机械锚栓  六角头木螺丝