2011-03-02 82 views
1

有問題! 我正在使用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庫等) 請說如何解決這個問題或至少如何調試它...我敢肯定,有一些神詛咒的服務器選項,我忘了改變。 我真的很依賴你的幫助:(我的夢的項目是廢墟,對不起英語對不起

回答

1

在你的文章中,每件事看起來都很正常,唯一能想到的就是確保文件夾「模型」的拼寫是小寫的服務器上。

您的開發機器是Windows系統,因此這些細節可以不管它,但他們在Unix重要。

+0

謝謝!問題真的是區分大小寫!你的答案都是有用的! – Dmitry 2011-03-03 08:24:11

0

你的文件名應該是Post.php(資本「 P「)。

正如Atef提到的,Windows文件系統不區分大小寫,因此一個請求t代表application/models/Post.php將解析爲您的文件。

在* nix系統上,請求將失敗,因爲文件系統區分大小寫。

相關問題