疑難解答在Windows上安裝PHP
我的PHP的安裝不工作?我無(wú)法運(yùn)行我的PHP腳本?一個(gè)簡(jiǎn)單的php Info頁(yè)在瀏覽器中未加載?這些都是我從論壇用戶聽(tīng)到的典型問(wèn)題。我仍然說(shuō)的最好方法安裝PHP是利用WPI如我論壇里所說(shuō)的這里和這里。我說(shuō),是因?yàn)閃PI安裝,包括非手動(dòng)步驟安裝PHP 5.2.11或PHP5.3。
但是像手動(dòng)安裝軟件也不是100%安全,可能要失敗的。我要解釋如何解決您的PHP安裝問(wèn)題。第一個(gè)建議是使用WPI安裝它。如果您按照我的PHP安裝方法,只需要簡(jiǎn)單的故障排除就好啦。此故障排除方法是為了配置PHP能夠運(yùn)行在IIS FastCGI和非線程安全的PHP版本。這個(gè)故障解決不只是為了讓PHP運(yùn)行在IIS的ISAPI模式中。如果您運(yùn)行的是XP或更高版本的操作系統(tǒng),我們建議部署在PHP上的IIS應(yīng)該使用IIS FastCGI非線程安全的PHP版本。
我想告訴你在PHP安裝過(guò)程中需要搞清楚特定的事情。這將是一件好事,如果你能說(shuō)出下面命令/指令執(zhí)行結(jié)果,并把問(wèn)題報(bào)告到論壇。
如果您是XP/2k3
運(yùn)行下面的命令,看看輸出類似于在這里(我假設(shè)你的系統(tǒng)驅(qū)動(dòng)器是C:)。
cscript.exe C:\inetpub\AdminScripts\adsutil.vbs GET w3svc/DefaultDoc
cscript.exe C:\inetpub\AdminScripts\adsutil.vbs GET w3svc/ScriptMaps | findstr php
輸出結(jié)果,你可以從第一個(gè)命令:
DefaultDoc : <STRING> "Default.htm, Default.asp, index.htm, index.php"
以下結(jié)果來(lái)自第二cssript命令:
".php,C:\WINDOWS\system32\inetsrv\fcgiext.dll,5,GET,HEAD,POST"
如果你返回值為空或者其他的事情,你應(yīng)該懷疑你的安裝
看看目錄’C:\WINDOWS\system32\inetsrv’(我假設(shè)C:是您的系統(tǒng)驅(qū)動(dòng)器),并確保您有:
? fcgiext.dll
? fcgiext.ini
? fcgiconfig.js
同時(shí)打開(kāi)fcgiext.ini文件,看看事情是正確的。正確設(shè)置的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存在。并有一個(gè)有效php.ini文件在相同的目錄。
如果您是Vista/2k8/WIN7/R2
運(yùn)行下面的命令:
%WINDIR%\system32\inetsrv\appcmd.exe list config /section:fastcgi /text:*
%WINDIR%\system32\inetsrv\appcmd.exe list config /section:handlers /text:* | findstr /i PHP
在第一個(gè)命令的輸出應(yīng)該類似:
配置
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\"
在第二個(gè)命令的輸出應(yīng)該類似于:
name:"PHP_via_FastCGI"
path:"*.php"
scriptProcessor:"C:\Program Files\PHP\php-cgi.exe"
如果輸出是NIL(我的意思是什么)或大幅不同,請(qǐng)仔細(xì)檢查您的安裝。通過(guò)大幅度不同我的意思是文件有所缺失。請(qǐng)不要過(guò)多關(guān)注他們的值。
適用于所有的平臺(tái)
所有可用的可執(zhí)行文件/ DLL的顏色可顯示為紅色應(yīng)出席上述在各自的位置。你也應(yīng)該有一個(gè)有效顯示為藍(lán)色的php.ini文件在本地。
確保但是php - cgi.exe是正常工作的
有很多原因,你可以得到500如果PHP - cgi.exe不能正常工作。其中有些可以是:
? 一些PHP擴(kuò)展創(chuàng)建問(wèn)題和無(wú)法正確加載
? 程序錯(cuò)誤
編程錯(cuò)誤是一些你需要關(guān)注的。我想告訴你用一個(gè)簡(jiǎn)單的PHP文件包含如下行,測(cè)試你的PHP可執(zhí)行性:
<?php
echo ’This is my first PHP program’;
?>
請(qǐng)?jiān)谀腤ebroot的文件夾命名上面的文件為‘test.php’并保存(PHP服務(wù)器變量_ SERVER [“DOCUMENT_ROOT]”)。我將使用
’C:\inetpub\wwwroot’作為我的webroot文件夾,PHP_SERVER variable _SERVER["DOCUMENT_ROOT"]設(shè)置
你可以使用下面兩個(gè)命令檢查你的PHP是否運(yùn)行良好:
"C:\Program Files\PHP\php-cgi.exe" -v
"C:\Program Files\PHP\php-cgi.exe" C:\inetpub\wwwroot\test.php
第一個(gè)命令要打印出類似這樣:
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
沒(méi)有任何錯(cuò)誤或彈出對(duì)話框。如果有對(duì)話框提到缺少資源文件,請(qǐng)給予關(guān)注。它可能導(dǎo)致您的PHP無(wú)法正常在瀏覽器中查看。這個(gè)結(jié)果應(yīng)該是干凈的。我的意思是沒(méi)有任何彈出對(duì)話框。如果你得到一下對(duì)話框缺少資源或者獲取到該資源文件或者禁用擴(kuò)展包在PHP.INI文件中。以禁用擴(kuò)展,執(zhí)行下列操作:
? 理解php.ini文件中起始行’extension=’的所有行
? 每次注釋一句并按照上述執(zhí)行
? 找出哪些擴(kuò)展創(chuàng)造問(wèn)題和在前面加;注釋掉
第二個(gè)命令應(yīng)打印’This is my first PHP program’在命令行中,一些類似下面的話:
X-Powered-By: PHP/5.3.1RC4
Content-type: text/html
這是我的第一個(gè)PHP程序
PHP的輸出文件本身
請(qǐng)閱讀我的博客這里尋求解決辦法。
本地主機(jī)/你的機(jī)器的IP地址是妥善解決
確保一個(gè)純HTML文件中的Webroot可以被http://localhost/default.html訪問(wèn)
如果不是有一個(gè)DNS問(wèn)題,請(qǐng)嘗試與您的Internet服務(wù)提供商解決這個(gè)問(wèn)題。
IIS的默認(rèn)Web站點(diǎn)/ localhost是正確配置
請(qǐng)確保:
? 您有一個(gè)名為’默認(rèn)網(wǎng)站’配置在你的IIS中。您可以通過(guò)運(yùn)行’Inetmgr’確保這些。按視窗鍵+ R和輸入’Inetmgr’
? 你能看到一個(gè)’默認(rèn)網(wǎng)站’下的網(wǎng)站?如果不行,那么你的IIS存在嚴(yán)重的問(wèn)題。這些網(wǎng)站可以幫助您創(chuàng)建一個(gè)’默認(rèn)網(wǎng)站’
? http://support.microsoft.com/kb/323972
? http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/9b74f316-071b-4eab-b5d2-c3ad7feb46ca.mspx?mfr=true
? 如果你有一個(gè)正確的’默認(rèn)網(wǎng)站’綁定在80端口,您應(yīng)該復(fù)制你文件夾里面的’test.php文件這一文件夾對(duì)應(yīng)的是‘默認(rèn)站點(diǎn)’的屋里路徑
? 通過(guò)‘inetmgr’UI關(guān)于’Physical Path’和’Binding Port’是有效的
也可以使用命令行工具,以了解約束力的港口和物理路徑站點(diǎn):
在Vista/2008/Win7/R2
最新產(chǎn)品
- 人臉消費(fèi)機(jī)
- RF-SIM卡消費(fèi)機(jī)
- 啟迪智慧食堂
- 啟迪無(wú)線消費(fèi)機(jī)
- 羽毛球館管理軟件(創(chuàng)業(yè)版)
- SF-780系列HID卡售飯機(jī)
- 美食城管理系統(tǒng)
- 啟迪SF_980 15寸觸摸屏收款機(jī)收銀機(jī)
- 啟迪SF-920無(wú)線手持打印一體機(jī)
- 啟迪SF-910手持消費(fèi)機(jī)

