Zend Autoloader在实际网站上无法正常工作
有问题! 我正在使用Zend Quickstart应用程序作为(刚开始lol)开发的地下室。 我的本地机器上有PHP/MySQL服务器(WinXP) 因此,一切工作正常。 但后来我试图上传我的网站到远程服务器。这是我所得到的:Zend Autoloader在实际网站上无法正常工作
Fatal error: Class 'Default_Model_Post' not found in /home/mysite/application/controllers/IndexController.php on line 13
13号线:
$post = new Default_Model_Post();
Default_Model_Post类位于应用程序/模型/ post.php中 和我的家庭服务器上被Zend的应用程序找到了!
我已经检查的.htaccess - 有SETENV APPLICATION_ENV生产线 这里是我的application.ini:
[production]
phpSettings.display_startup_errors = 0
phpSettings.display_errors = 0
includePaths.library = APPLICATION_PATH "/../library"
bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
bootstrap.class = "Bootstrap"
autoloaderNamespaces[] = "Mysite_"
appnamespace = "Application"
resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"
resources.frontController.params.displayExceptions = 0
resources.layout.layoutPath = APPLICATION_PATH "/layouts"
resources.db.adapter = "pdo_mysql"
resources.db.params.host = "localhost"
resources.db.params.username = "mysite_ib"
resources.db.params.password = "my passwd here"
resources.db.params.dbname = "mysite_ib"
resources.db.isDefaultTableAdapter = true
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1
resources.frontController.params.displayExceptions = 1
这里是bootstrap.php中:
<?php
class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
{
protected function _initAutoload()
{
$autoloader = new Zend_Application_Module_Autoloader(array(
'namespace' => 'Default',
'basePath' => dirname(__FILE__),
));
//print_r(Zend_Loader_Autoloader::getAutoloaders()); exit; //tried to get some info here lol
return $autoloader;
}
}
检查过的一切,我能想象!它适用于我的开发机器,但在真正的服务器上 - 它不是! 已经遍寻谷歌,Zend docs和stackoverflow,但总是不完全是我的问题(或修复不起作用)。 即使在真实的服务器上,Mysite_名称空间中的类也能正常工作。 在服务器上的网站是我的开发网站的全部副本(压缩 - >上传 - >解压Zend库等) 请说如何解决这个问题或至少如何调试它...我敢肯定,有一些神诅咒的服务器选项,我忘了改变。 我真的很依赖你的帮助:(我的梦的项目是废墟,对不起英语对不起
在你的文章中,每件事看起来都很正常,唯一能想到的就是确保文件夹“模型”的拼写是小写的服务器上。
您的开发机器是Windows系统,因此这些细节可以不管它,但他们在Unix重要。
你的文件名应该是Post.php
(资本“ P“)。
正如Atef提到的,Windows文件系统不区分大小写,因此一个请求t代表application/models/Post.php
将解析为您的文件。
在* nix系统上,请求将失败,因为文件系统区分大小写。
谢谢!问题真的是区分大小写!你的答案都是有用的! – Dmitry 2011-03-03 08:24:11