Zend CLI не работает - PullRequest
       11

Zend CLI не работает

0 голосов
/ 19 июля 2009

Мое приложение работает с веб-стороны вещей.

Я бы хотел, чтобы 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: необработанное исключение «Zend_Db_Adapter_Exception» с сообщением «Драйвер mysql в данный момент не установлен»

Согласно phpinfo из командной строки, драйвер mysql работает. Чего мне не хватает?

Заранее спасибо.

Ответы [ 4 ]

1 голос
/ 08 октября 2012

Вы можете скопировать расширение pdo_mysql.so Zend Server в папку расширения php-cli и файл pdo_mysql.ini Zend Server в папку ini php-cli.

1 голос
/ 19 июля 2009

Если вы используете MySQL адаптер с Zend Framework, у вас есть две возможности (я цитирую документ ):

  • MySQL, используя расширение pdo_mysql PHP
  • MySQL, используя расширение mysqli PHP

Какой из них вы пытаетесь использовать?

Если это первое, активировано ли расширение pdo_mysql для CLI? (вы можете использовать "php -m", чтобы получить список загруженных расширений)

Если это второе, активировано ли расширение mysqli для CLI?

Кажется, ни один из двух адаптеров не использует расширение mysql (которое довольно старое); так что, если он появится, он, вероятно, не очень актуален.

Если повезет, просто "правильное расширение" загружается в файл php.ini, используемый для Web, а не в файл, используемый для CLI ...

0 голосов
/ 01 июня 2012

Чтобы PHP CLI работал на Zend Server, попробуйте это с https://serverfault.com/questions/356775/how-to-install-php-cli-with-pnctl-alongside-zend-server

Продлите $ PATH:

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
0 голосов
/ 01 сентября 2009

При запуске Zend Server вам нужно набрать /etc/zce.rc, чтобы заставить работать php cli, если команда отсутствует в вашем профиле:

$ . /etc/zce.rc

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...