广告招募

当前位置:亚洲制造网 > 技术中心 > 所有分类

疑难解答在Windows上安装PHP

2023年06月11日 12:08:13      来源:武汉小掌柜科技有限公司 >> 进入该公司展台      阅读量:45

分享:

我的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    :  "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可执行性: 
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/wwwrootest.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存在严重的问题。这些网站可以帮助您创建一个’默认网站’ 
・        /kb/323972 
・        /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

版权与免责声明:
1.凡本网注明"来源:亚洲制造网"的所有作品,版权均属于亚洲制造网,转载请必须注明亚洲制造网。违反者本网将追究相关法律责任。
2.企业发布的公司新闻、技术文章、资料下载等内容,如涉及侵权、违规遭投诉的,一律由发布企业自行承担责任,本网有权删除内容并追溯责任。
3.本网转载并注明自其它来源的作品,目的在于传递更多信息,并不代表本网赞同其观点或证实其内容的真实性,不承担此类作品侵权行为的直接责任及连带责任。其他媒体、网站或个人从本网转载时,必须保留本网注明的作品来源,并自负版权等法律责任。 4.如涉及作品内容、版权等问题,请在作品发表之日起一周内与本网联系。