Jim*_*mmy 16 php iis iis-7 fastcgi
我有一个托管网站,我在配置Joomla时遇到了麻烦(在IIS7 + win server 2008上运行Joomla + php + mySQL).我有一个类似的配置在本地机器上运行(Joomla + php + mySQL在IIS7 + vista x64上),所以我至少能够按照各种教程中显示的说明如何设置它.
托管网站的这种症状是我无法在Joomla中打开任何SEO设置(甚至不是第一个设置,"搜索引擎友好URL").我得到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" />
Run Code Online (Sandbox Code Playgroud)
从过去的经验来看,我知道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" />
Run Code Online (Sandbox Code Playgroud)
我在joomla目录中的web.config中复制了它,并得到了不同的行为......但仍然无法正常工作.如果我在运行phpInfo()的joomla目录中加载.php文件,则在Server API下它会显示CGI/FastCGI.那是肯定的确认正在使用FastCGI的?为什么web配置中的处理程序指向modules ="CgiModule"而不是modules ="FastCgiModule"(我甚至不确定是否存在,但我只是发现提到CgiModule可疑).
这是一个托管网站,据我所知,我无法访问ApplicationHost.config文件...
Jim*_*mmy 27
这是一个简单的测试:
<?php phpinfo(); ?>
Run Code Online (Sandbox Code Playgroud)
内;
检查phpinfo的输出并查找_SERVER ["REQUEST_URI"].
如果缺少此变量,则使用CGI.如果变量存在并正确设置为/phpinfo.php/foobar?foo=bar,则使用ISAPI或FastCGI.查看Server API输出顶部附近; 它应该设置为ISAPI(这意味着使用ISAPI)或CGI/FastCGI(这意味着正在使用FastCGI,因为我们已经排除了CGI).
php_sapi_name() 或 PHP_SAPI,都可以。
http://php.net/manual/en/function.php-sapi-name.php
<?php
if (php_sapi_name() != 'cgi-fcgi'){
echo 'I knew fastcgi wasn\'t working.';
}else{
echo 'Holy crap, something worked for once.';
}
Run Code Online (Sandbox Code Playgroud)
小智 5
您可以使用(在centos上)apachectl -M,您将显示启用了哪些模块:
apachectl -M:
file_cache_module (shared)
mem_cache_module (shared)
version_module (shared)
fastcgi_module (shared)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
37831 次 |
| 最近记录: |