2009-07-18 14 views
0

私のアプリはWeb側から作業しています。Zend CLIが動作しません

私はユニットテストを実行することができます。ここで、このような

は、テストスクリプトのために私が持っているものだように、CLIが働いて取得したいのですが残念ながら

$pthRoot = dirname(__FILE__); 
define('APPLICATION_PATH', realpath(dirname(__FILE__) . '/..')); 
define('APPLICATION_ENV', 'development'); 
define('SERVER_ROLE', 'development'); 

set_include_path(implode(PATH_SEPARATOR, array(
    realpath(APPLICATION_PATH . '/../library') . PATH_SEPARATOR . realpath($pthRoot . '/../controllers') 
    . PATH_SEPARATOR . get_include_path() 
))); 
date_default_timezone_set('America/Toronto'); 

require_once('Zend/Loader/Autoloader.php'); 
$autoloader = Zend_Loader_Autoloader::getInstance(); 

require '../bootstrap.php'; 

require_once 'Zend/Application.php'; 
$application = new Zend_Application(
    APPLICATION_ENV, 
    APPLICATION_PATH . '/configs/application.ini' 
); 
$_SERVER['SERVER_ROLE'] = 'development'; 
$bootstrap = $application->getBootstrap(); 
$bootstrap->runScript(); 

$db = Zend_Registry::get('db'); 
$sql = "select * from settings"; 
print_r($db->fetchAll($sql)); 

、私はエラーでの取得しますget( 'db')行。

PHP致命的なエラー:キャッチされない例外「MySQLドライバが現在インストールされていない」メッセージと「Zend_Db_Adapter_Exception」コマンドラインからするphpinfoによれば

、MySQLドライバが実行されています。私は何が欠けていますか?

ありがとうございます。

答えて

1

あなたはZend FrameworkのとMySQLのアダプタを使用している場合、あなたは二つの可能性(私はthe docを引用)持っている:mysqliのを使用して、MySQLの

  • PDO_MYSQL PHP拡張モジュールを使用して、

    • MySQLをPHP拡張機能

    これらのうちどれを使用しようとしていますか?

    最初の場合は、CLIの拡張機能pdo_mysqlが有効になっていますか? ( "php -m"を使用して読み込まれた拡張機能のリストを取得できます)

    2番目の場合は、拡張機能mysqliをCLI用にアクティブにしていますか?

    mysql(これはかなり古いです)の2つのアダプタのいずれも使用していないようです。だから、もしこれが現れれば、それはおそらく本当に重要ではないでしょう。運のビットで

    、それだけで「右の拡張子が」Web用に使用php.iniファイルではなく、CLIのために使用されるものではロードされていることになるでしょう...

  • +0

    これはpdo_mysqlを使用しています。私が得られないことは、両方の状況で同じ設定ファイルを使用していることです。ロードされるのと同じ拡張機能であってはなりませんか? – jeffkolez

    +0

    ああ、違いがわかります。それはスキャンされた追加のiniファイルです。これまでにこれまでに遭遇したことはありません.cliのphpはディレクトリ内で余分なiniファイルをスキャンしていません。私はそれを私のphp.iniに加えました。ありがとう! – jeffkolez

    +0

    OK、あなたはそれがうまく動作していることを知っていて、それはなぜですか? –

    0

    実行している場合

    $ . /etc/zce.rc

    0

    はPHP CLIがhttps://serverfault.com/questions/356775/how-to-install-php-cli-with-pnctl-alongside-zend-server

    拡張からこれを試すのZend Server上で作業を取得するには:コマンドはプロフィールにない場合はZend Serverは、あなたは、PHPのCLIの作業を取得するために/etc/zce.rcを調達する必要がありますあなたの$ P ATH:

    export PATH=$PATH:/usr/local/zend/bin:/usr/local/zend/sbin 
    

    以上の永久:

    cat >> $HOME/.bashrc <<EOF 
    export PATH=$PATH:/usr/local/zend/bin:/usr/local/zend/sbin 
    EOF 
    reboot 
    
    1

    あなたはphp-cliのiniファイルフォルダにあなたにphp-cli拡張フォルダとZend Serverののpdo_mysql.iniファイルをZendのサーバーのpdo_mysql.so拡張子をコピーすることができます。

    関連する問題