Zend CLI çalışmıyor

4 Cevap php

Benim app şeyler web tarafında çalışıyor.

Ben ünite testleri ve gibi çalıştırın böylece ben CLI çalışma almak istiyorum

Burada bir test komut dosyası için ne var:

$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));

Ne yazık ki, get ('db') satır bir hata alıyorum.

PHP Ölümcül hata: iletisiyle yakalanmamış istisna 'Zend_Db_Adapter_Exception' mysql Sürücü şu anda yüklü değil '

Komut satırından phpinfo göre, mysql sürücü çalışıyor. Ne eksik?

Şimdiden teşekkürler.

4 Cevap

: Zend Framework ile MySQL Adaptörü kullanıyorsanız, iki olanakları (I alıntı the doc) var

  • MySQL kullanarak pdo_mysql PHP uzantısı
  • MySQL kullanarak mysqli PHP uzantısı

Onlardan biri kullanmak çalıştığınız?

If it's the first one, is the extension pdo_mysql activated for CLI ? (you can use "php -m" to get the list of extensions that are loaded)

Bu ikinci ise, uzatma mysqli CLI için aktive edilir?

Bu iki adaptör hiçbiri (oldukça eski olan) uzantısını mysql kullanıyor gibi görünüyor; Bu bir görünür eğer öyleyse, muhtemelen gerçekten ilgili değil.

Biraz şans ile, sadece "doğru uzantısı" Web için kullanılan php.ini dosyasında yüklü olduğunu olmayabilir ve CLI için kullanılan biri olacak ...

Siz [(1)] {ait ini klasörüne php-cli uzantısı klasör ve Zend Server pdo_mysql.ini dosya size Zend Server pdo_mysql.so uzatılmasını kopyalayabilirsiniz }.

Zend Server çalıştıran zaman, komut profilinizde değilse, /etc/zce.rc php cli çalışma almak için kaynak vardır:

$ . /etc/zce.rc

PHP CLI Zend Server üzerinde çalışan almak için http://serverfault.com/questions/356775/how-to-install-php-cli-with-pnctl-alongside-zend-server bu deneyin

Lütfen $ PATH uzatın:

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

Ya da daha kalıcı:

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