我有一个托管站点,但在配置Joomla时遇到了麻烦(在IIS7 + Win Server 2008上运行Joomla + php + mySQL)。我在本地计算机(IIS7 + vista x64上的Joomla + php + mySQL)上运行了类似的配置,因此我至少能够按照各种教程中显示的说明进行设置。
此托管网站的症状是,我无法在Joomla中打开任何SEO设置(甚至没有打开第一个设置“搜索引擎友好的网址”)。我收到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" />
[根据过去的经验,我知道在不使用fastCGI运行时php会有一些问题。我注意到根文件夹中的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文件...
这里是一个简单的测试:
<?php phpinfo(); ?>
内部;
检查phpinfo的输出并查找_SERVER [“ REQUEST_URI”]。
如果缺少此变量,则使用CGI。如果存在该变量并将其正确设置为/phpinfo.php/foobar?foo=bar,则使用ISAPI或FastCGI。查看服务器API输出顶部附近的内容;应该将其设置为ISAPI(表示正在使用ISAPI)或CGI / FastCGI(表示正在使用FastCGI,因为我们已经排除了CGI)。
您可以使用(在centos上)apachectl -M
,将显示启用了哪些模块:
php_sapi_name()或PHP_SAPI都可以。
[不幸的是,\_SERVER["REQUEST_URI"]
的检查对我不起作用。使用CGI