2011-01-07 4 views
0

win7(xamppがインストールされている - zend framework 1.10.3)でプロジェクトを実行しています。しかし、私がUbuntuに移したとき、私は問題がありました。 /私が含まれ、ここではapplication.iniwin7からUbuntuにプロジェクトを移動するときにZend/Application.phpをロードできませんでした

<?php 

// Define path to application directory 
defined('APPLICATION_PATH') 
    || define('APPLICATION_PATH', realpath(dirname(__FILE__) . '/application')); 

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

define('APP_ROOT', realpath(dirname(dirname(__FILE__)))); 

// Ensure library/ is on include_path 
set_include_path(implode(PATH_SEPARATOR, array(
    realpath(APPLICATION_PATH . '/../library'), 
    get_include_path(), 
))); 

require_once 'include/constant.inc.php'; 
require_once('include/class.phpmailer.php'); 

// set constant in Zend_Registry 
//require_once 'Zend/Registry.php'; 
//Zend_Registry::set('const', $cfg); 

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

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

そして:ここ

Myproject 
    application 
    library 
     Zend 
    include 
     application.ini 
    etc... 
    index.php 

は私のindex.phpです: 私のプロジェクト構造は、これらの構成では

[production] 
phpSettings.display_startup_errors = 1 
phpSettings.display_errors = 1 
phpSettings.date.timezone = "Europe/London" 
;includePaths.library = APPLICATION_PATH "/../library" 
bootstrap.path = APPLICATION_PATH "/Bootstrap.php" 
bootstrap.class = "Bootstrap" 
appnamespace = "" 

;resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers" 
;resources.frontController.params.displayExceptions = 0 
resources.frontController.moduleDirectory = APPLICATION_PATH "/modules" 
resources.modules = "" 

autoloaderNamespaces.Zendex = "Zendex_" 


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


resources.layout.layoutPath = APPLICATION_PATH "/layouts/scripts/" 
resources.view[] = 
;resources.layout.layout = "layout" 
admin.resources.layout.layout = "admin" 
resources.view.doctype = "XHTML1_STRICT" 
resources.view.helperPath = APPLICATION_PATH "/helpers/views/" 
resources.view.helperPathPrefix = "Zend_View_Helper_" 
;resources.view.params.default.basePath       = APPLICATION_PATH "/layouts/default/" 
;resources.view.params.default.layout        = "layout" 
;resources.view.params.default.layoutPath       = APPLICATION_PATH "/layouts/default/default/" 

;resources.view.params.admin.basePath       = APPLICATION_PATH "/layouts/admin/" 
;resources.view.params.admin.layout        = "layout" 
;resources.view.params.admin.layoutPath       = APPLICATION_PATH "/layouts/admin/default/" 



[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 

、私が持っています私のプロジェクトをWindowsで動かすことに問題はありません(xamppがインストールされています)。 Ubuntuので

は、私はXAMPPは、このガイド以下インストールしていた。(私は間違ってdidntの場合)

http://humanlanguage.wordpress.com/2006/12/03/install-xampp-on-ubuntu/ 

をその指針によると、私は私の/ホーム/チュオン/ webdevをリンクにシンボリックリンクを作成しました/opt/lampp/htdocsフォルダのフォルダ( "truong"は私の名前です^ _ ^) 次に私のプロジェクトを/ home/truong/webdevに移動しました。 はlocalhost/webdev/MyProjectと をし、私はこのエラーが発生しました:その後、私はブラウザULRからの私のプロジェクトを実行

Warning: require_once(Zend/Application.php) [function.require-once]: failed to open stream: No such file or directory in /home/truong/webdev/qtcms/index.php on line 28 

Fatal error: require_once() [function.require]: Failed opening required 'Zend/Application.php' (include_path=':.:/opt/lampp/lib/php') in /home/truong/webdev/qtcms/index.php on line 28 

それは、システムがマイライブラリ/ Zendのフォルダを見つけることができなかったことのように見えます。私はそれは私が手動でphp.iniの私のZendのライブラリのインクルードパスを設定し、私はそれが私がきたのindex.phpに

// Ensure library/ is on include_path 
set_include_path(implode(PATH_SEPARATOR, array(
      realpath(APPLICATION_PATH . '/../library'), 
      get_include_path(), 
))); 

を設定していた原因、私は、それがneccessary波平と思ったはずと思った

インターネット上で何度も検索したが、役に立たないものは何も見つかりませんでした。 この問題を解決するのを手伝ってください... ありがとうございます。 ps:私の悪い英語を謝ります。 quangtruong1985

投稿数:1 登録日:木2011年1月6日4時24分午後

+2

ライブラリフォルダの権限/所有者をチェックしましたか? – opHASnoNAME

+0

フォルダのアクセス許可を設定すると、問題が解決しました。どうもありがとうございます。 –

答えて

1

あなたのライブラリーのパスが実際にあなたのインクルードパスに追加されていないように思えます。 print_r(get_include_path());

私は過去のリアルパスに関するいくつかの問題を抱えていたので、これがあなたの問題を引き起こしている可能性があります。 あなたはのrealpath

0

あなたのapplication.iniでincludeディレクティブをコメントアウトように見え避けるために

set_include_path(implode(PATH_SEPERATOR, array(
    dirname(__FILE__) . '/library', 
    get_include_path(), 
))); 

を試みることができます。 これはこれです:;includePaths.library = APPLICATION_PATH "/../library"。あなたが ';'ラインの冒頭でそれはうまくいくはずです。

Windowsマシンでは、Zend Frameworkへのパスをphp.iniに追加しましたか?もしそうなら、おそらくそれがLinuxで動かない理由でしょう。

WindowsマシンにXAMPPがインストールされている場合は、PEARがデフォルトでインストールされ、zendフレームワークが付属しています。

EDIT: 一部の文法。

0

あなたは、php.iniファイルでライブラリのインクルードパスがコメントされているかどうかを

を確認することができます;のinclude_path = "; C:\ PHPの\は含まれ; D:.. \ zendframework \ライブラリー" を

コメントがある場合は、セミコロンを削除してサーバーを再起動してください。

0

私のphp.iniディレクティブは=この

のinclude_pathのようだった "; C:\ XAMPPの\ PHPの\のPEAR; C:\ Zendの\ zendframework1116; C:\ Zendの\ zendframework1116 \ライブラリー;"

削除;パスの最後に私の問題を解決しました

関連する問題