0

我正在尝试将使用 Zend PHP 框架构建的网站移动到新服务器,但我很难启动和运行它。我最初并没有建立这个网站,而且我以前从未使用过这个框架,所以这对我来说非常混乱。

我收到的错误消息是:

Error : Invalid controller specified (~iswlp)
Trace info : #0 /home/iswlp/library/Zend/Controller/Front.php(954):
Zend_Controller_Dispatcher_Standard->dispatch(Object(Zend_Controller_Request_Http), Object(Zend_Controller_Response_Http)) #1 /home/iswlp/public_html/index.php(80):
Zend_Controller_Front->dispatch() #2 {main}

我尝试从 APPLICATION_PATH 目录 (/home/iswlp/application) 中删除尾部斜杠,但这没有任何区别。

有任何想法吗?

谢谢。

4

3 回答 3

0

配置/路由问题 - 要检查的几件事:

显然有几种方法可以安装 Zend,但为了安全起见,大多数人将应用程序和库文件夹放在服务器上的 www/public_html 文件夹之外。这实际上是 Zend 解决问题的方式(或假设如此)。所以这里有一些片段可以帮助你,因为你的一些配置可能已经改变以适应以前的主机(再次假设你的应用程序和库文件是一个级别的深度(即在你的服务器上的公共目录之外):

index.php 文件片段:

// Define path to application directory
if (!defined('APPLICATION_PATH')) {    
    define('APPLICATION_PATH', realpath(dirname(__FILE__) . '/../application'));
}

// Define the application root
if (!defined('APPLICATION_ROOT')) {    
    define('APPLICATION_ROOT', realpath(dirname(__FILE__) . '/..'));
}

// Ensure library/ is on include_path
set_include_path(    
    APPLICATION_ROOT . '/library' . PATH_SEPARATOR    
    . get_include_path()
);

htaccess 文件片段

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} \.(js|css|gif|jpg|png|swf)$ [OR]
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]

如果您没有标准的 Zend 安装,您将不得不编辑 index.php 和 htaccess 文件以适应。

于 2012-06-13T02:18:05.280 回答
0

问题似乎与路由有关。

我猜你正在通过mod_userdirlike访问应用程序http://somedomain.com/~iswlp/foo,这是正确的吗?

从似乎是什么导致 Zend Framework 关闭的错误,因为您的文档根在任何一种情况下都是相同的,但是当从domain.comvs.调用时,您的 baseUrl 是不同的。anotherdomain.com/~iswlp

作为一种解决方法,您可以尝试修改 PC 上的主机文件,并查看当您尝试访问该站点时错误是否消失。

尝试这个:

  • 确定托管 ZF 应用程序的服务器的 IP 地址。
  • 打开系统上的主机文件
  • 添加1.2.3.4 domain.com到 hosts 文件,其中 1.2.3.4 是服务器 IP,并且domain.com是在 Apache/IIS/OtherServer 中配置的站点的假定域名
  • 现在打开浏览器并尝试访问 domain.com

在这种情况下你仍然得到错误吗?

我从未尝试过,但如果 ZF 应用程序将托管在/~username文件夹中,则可能必须对应用程序进行小的配置更改。

于 2012-06-13T01:12:57.313 回答
0

如果/Users/Tim/Sites/iswlp.com.au/是您的项目根目录(包含名为applicationlibrary等的文件夹),APPLICATION_PATH应设置为:/Users/Tim/Sites/iswlp.com.au/application/而不是/home/iswlp/application/.

于 2012-06-13T00:54:57.673 回答