我有一個託管網站,並且在配置Joomla時遇到問題(在IIS7 + win server 2008上運行Joomla + php + mySQL)。我有一個類似的配置在本地機器上運行(在IIS7 + vista x64上的Joomla + php + mySQL),所以我至少能夠遵循各種教程中關於如何設置的說明。如何知道FastCGI是否被用來運行PHP腳本
託管網站的這種症狀是,我無法打開Joomla中的任何搜索引擎優化設置(甚至沒有第一個設置,「搜索引擎友好網址」)。我得到404(找不到文件)或URL顯示正確重寫,但始終顯示主頁的內容。我的家用機器出現了類似的問題,事實證明這是因爲我沒有使用FastCGI來託管PHP,所以我決定在託管網站上進行調查。
反正我在託管網站上託管的Joomla以下行的目錄的web.config文件中注意到:
<add name="Plesk_Handler_3522909676" path="*.php" verb="*" modules="IsapiModule" scriptProcessor="c:\program files (x86)\parallels\plesk\additional\pleskphp5\php5isapi.dll" resourceType="Either" />
從過去的經驗,我知道,PHP有一些問題時的FastCGI下不運行。我注意到,在根目錄下的web.config文件中使用以下行來代替:
<add name="Plesk_Handler_0286090609" path="*.php" verb="*" modules="CgiModule" scriptProcessor="c:\program files (x86)\parallels\plesk\additional\pleskphp5\php-cgi.exe" resourceType="Either" />
我複製了在的Joomla目錄中的web.config文件,並得到了不同的行爲......但仍然沒有工作。如果我在運行phpInfo()的joomla目錄中加載一個.php文件,那麼在Server API下面會顯示CGI/FastCGI。那是肯定確認正在使用FastCGI?爲什麼web配置中的處理程序指向modules =「CgiModule」而不是modules =「FastCgiModule」(我甚至不確定是否存在,但我只是發現提及CgiModule可疑)。
這是一個託管的網站,所以據我知道我沒有訪問ApplicationHost.config文件...
$ _ SERVER [ 'REQUEST_URI']服務器API = CGI/FastCGI的可以在這兩個CGI和FastCGI和服務器API可能會顯示這兩個CGI和FastCGI 'CGI/FastCGI的' 正確顯示。 一個區別是在FastCGI $ _SERVER [「REDIRECT_HANDLER」]可能會顯示php-fastcgi,但也不能證實正在使用「FastCGI」,因爲「php-fastcgi」只是配置文件中使用的變量名。 – 2011-12-08 06:30:27
@Jimmy,這個答案非常[需要引文](http://xkcd.com/285)。此外,您描述的方法聽起來有點* hacky *,是否有更好更強大的方式直接確定設置? – Pacerier 2015-06-24 10:25:00
@Pacerier它爲我工作,顯然對許多其他人。我找不到更好的方法,但如果您有答案,請隨時發佈「更好,更強大」的答案。我自己想出了它,因此沒有引用。 – Jimmy 2015-06-24 14:20:54