Zend PHP,从Linux移植到Windows - >设置baseUrl

时间:2014-06-09 18:56:10

标签: php zend-framework iis base-url

最近,我的任务是将一个基于Zend构建的PHP网站从Arch Linux服务器移植到Windows服务器。我没有使用PHP的经验。我把所有文件都拉回来并尝试在安装了PHP和CGI的IIS上启用它,但没有效果。在路径中改变了一些之后,我仍然遇到问题并安装了Zend studio。

我走过页面,发现下面的一点,似乎关闭了:

$baseUrl = substr($_SERVER['PHP_SELF'], 0, strpos($_SERVER['PHP_SELF'], '/index.php'));
$front_controller = Zend_Controller_Front::getInstance();
$front_controller->setBaseUrl($baseUrl);

当我调试页面时,我发现$ baseUrl被设置为(字符串:0)。如果我注释掉这一行以及设置前端控制器基本URL的行,页面将实际加载并显示登录页面;但是,来自该页面的链接图像似乎无法正常工作。如果我将$ baseUrl硬设置为'/index.php',登录页面也会加载,但是当我尝试与它进行交互时,它会递归地将'/index.php'添加到URL,直到浏览器终止。

我搜索了谷歌和这些论坛,试图确定实际需要设置的内容。当我在调试器中查看$ _SERVER的PHP_SELF属性时,它是

(string:90) C:\Users\[userid]\AppData\Local\Temp\dummy.phpC:\Users\[userid]\AppData\Local\Temp\dummy.php

IIS上托管的页面目前位于C:\ WEBPAGE \ ctcAB。

我尝试过各种各样的东西,包括带有\和s的Windows路径,。\ ctcAB,。\ ctcAB \ index.php,以及我在浏览器中获得的URL的多个排列,无论是否有http://(从我读过的内容来看,我理解为不正确。)。

因此,在Windows上的IIS上运行Zend PHP页面时,需要将Zend_Controller_Front的基本URL设置为什么?它是否相对于IIS指向的文件路径? ?它是否与根目录中显示的URL相关?

我看到另一个建议从$ this获取baseUrl;但是,当我尝试这个时,调试器会通知我,$ this不在上下文中。

非常感谢任何帮助。

0 个答案:

没有答案