我正在尝试将使用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)中删除尾部斜杠,但没有区别。
有什么想法吗?
感谢。
答案 0 :(得分:0)
如果/Users/Tim/Sites/iswlp.com.au/
是您的项目根目录(包含名为application
,library
等的文件夹),则APPLICATION_PATH
应设置为:/Users/Tim/Sites/iswlp.com.au/application/
/home/iswlp/application/
。
答案 1 :(得分:0)
问题似乎与路由有关。
我猜您是通过mod_userdir
http://somedomain.com/~iswlp/foo
访问该应用,这是正确的吗?
从错误中看出是什么导致Zend Framework失败,因为在任何一种情况下你的文档根都是相同的,但是从domain.com
与anotherdomain.com/~iswlp
作为一种解决方法,您可以尝试修改PC上的hosts文件,并在尝试访问该网站时查看错误是否消失。
试试这个:
1.2.3.4 domain.com
添加到hosts文件,其中1.2.3.4是服务器IP,domain.com
是站点的假定域名,因为它在Apache / IIS / OtherServer中配置在这种情况下你还会得到错误吗?
我从未尝试过,但如果ZF应用程序将托管在/~username
文件夹上,则可能需要对应用程序进行少量配置更改。
答案 2 :(得分:0)
配置/路由问题 - 要检查的几件事:
显然有几种方法可以安装Zend,但是为了安全起见,大多数人都将应用程序和库文件夹放在服务器上的www / public_html文件夹之外。这实际上是Zend如何解决方案(或假设如此)。所以这里有一些可能对你有帮助的片段,因为你的一些配置可能已经改变以适应以前的主机(再次假设您的应用程序和库文件是一层深度(即在您的服务器上的公共目录之外):< / p>
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文件。