2011-08-04 4 views
2

Zend가 구동하는 웹 사이트 작업을 원격 서버에서 수행하기 위해 고심하고 있으며 include 경로에 어떤 문제가 있는지 명확하지 않습니다. 내가 생각할 수있는 모든 순열을 시도했기 때문에 나는 정말로 도움이된다. 나는 근본적인 무언가를 놓쳤다 고 생각한다.Zend Framework를 설정하는 데 도움이되는 서버에 경로가 포함되어 있습니다.

내가 갖는 예외입니다 :이 응용 프로그램 경로에서 라이브러리 파일을 포함하도록 시도하는 것 같다 내가 왜 이해가 안

Message: Plugin by name 'Headtitle' was not found in the registry; used paths: Zend_View_Helper_: Zend/View/Helper/:/f5/metamusic/protected/application/views/helpers/ 
Stack trace: 

#0 /f5/metamusic/protected/library/Zend/View/Abstract.php(1182): Zend_Loader_PluginLoader->load('Headtitle') 
#1 /f5/metamusic/protected/library/Zend/View/Abstract.php(618): Zend_View_Abstract->_getPlugin('helper', 'headtitle') 
#2 /f5/metamusic/protected/library/Zend/View/Abstract.php(344): Zend_View_Abstract->getHelper('headtitle') 
#3 [internal function]: Zend_View_Abstract->__call('headtitle', Array) 
#4 /f5/metamusic/protected/application/views/scripts/search/index.phtml(3): Zend_View->headtitle('Search') 
#5 /f5/metamusic/protected/library/Zend/View.php(108): include('/f5/metamusic/p...') 
#6 /f5/metamusic/protected/library/Zend/View/Abstract.php(888): Zend_View->_run('/f5/metamusic/p...') 
#7 /f5/metamusic/protected/library/Zend/Controller/Action/Helper/ViewRenderer.php(908): Zend_View_Abstract->render('search/index.ph...') 
#8 /f5/metamusic/protected/library/Zend/Controller/Action/Helper/ViewRenderer.php(929): Zend_Controller_Action_Helper_ViewRenderer->renderScript('search/index.ph...', NULL) 
#9 /f5/metamusic/protected/library/Zend/Controller/Action/Helper/ViewRenderer.php(968): Zend_Controller_Action_Helper_ViewRenderer->render() 
#10 /f5/metamusic/protected/library/Zend/Controller/Action/HelperBroker.php(277): Zend_Controller_Action_Helper_ViewRenderer->postDispatch() 
#11 /f5/metamusic/protected/library/Zend/Controller/Action.php(523): Zend_Controller_Action_HelperBroker->notifyPostDispatch() 
#12 /f5/metamusic/protected/library/Zend/Controller/Dispatcher/Standard.php(295): Zend_Controller_Action->dispatch('indexAction') 
#13 /f5/metamusic/protected/library/Zend/Controller/Front.php(954): Zend_Controller_Dispatcher_Standard->dispatch(Object(Zend_Controller_Request_Http), Object(Zend_Controller_Response_Http)) 
#14 /f5/metamusic/protected/library/Zend/Application/Bootstrap/Bootstrap.php(97): Zend_Controller_Front->dispatch() 
#15 /f5/metamusic/protected/library/Zend/Application.php(366): Zend_Application_Bootstrap_Bootstrap->run() 
#16 /f5/metamusic/public/index.php(26): Zend_Application->run() 
#17 {main} 

. 또한 서버에는 open_basedir() 제한이 있으므로 서버 심볼 -을 사용하여 / 대신 루트 디렉토리에 액세스해야합니다.

그래서, 폴더 계층 구조는 다음과 같다 : 이것은 내의 index.php입니다

/public/index.php <- the site entry point 
/protected/application <- the site source 
/protected/library <- the Zend library directory from zf-minimal.tar.gz 

:

// Define path to application directory 
defined('APPLICATION_PATH') 
    || define('APPLICATION_PATH', ($_SERVER['NFSN_SITE_ROOT'] . 'protected/application')); 

// Define application environment 
defined('APPLICATION_ENV') 
    || define('APPLICATION_ENV', (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV') : 'production')); 

// Ensure library/ is on include_path 
set_include_path(implode(PATH_SEPARATOR, array(
    ($_SERVER['NFSN_SITE_ROOT'] . 'protected/library'), 
    get_include_path(), 
))); 

/** Zend_Application */ 
require_once 'Zend/Application.php'; 

// Create application, bootstrap, and run 
$application = new Zend_Application(
    APPLICATION_ENV, 
    APPLICATION_PATH . '/configs/application.ini' 
); 
$application->bootstrap() 
      ->run(); 

그리고 이것은 내 config.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" 
appnamespace = "Application" 
resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers" 
resources.frontController.params.displayExceptions = 0 
resources.frontController.baseUrl = "/" 
phpSettings.date.timezone = "Europe/London" 

resources.db.adapter = PDO_MYSQL 
resources.db.params.charset = "utf8" 
resources.db.params.host = localhost 
resources.db.params.username = --- 
resources.db.params.password = --- 
resources.db.params.dbname = --- 

acl.roles.guest = null 
acl.roles.member = guest 
acl.roles.admin = member 

resources.layout.layoutPath = APPLICATION_PATH "/layouts/scripts/" 
[staging : production] 

[testing : production] 
phpSettings.display_startup_errors = 1 
phpSettings.display_errors = 1 

[development : production] 
phpSettings.display_startup_errors = 1 
phpSettings.display_errors = 1 
resources.frontController.params.displayExceptions = 1 
+2

대문자 'T'를 사용하여 headTitle을 호출하면 안됩니까? –

+0

좋은 캐치! 예, 해결되었습니다. 윈도우 머신에서 개발할 때 미끄러 져야합니다. 동의 할 수 있도록 답변을 게시하십시오. –

답변

2

Shouldn 't'라는 제목으로 머리글을 부르는거야?

관련 문제