Так же как и /protected/config/main.php
удобно настроить для сервера и для локальной машины (подробнее), можно настроить и console.php
.
И так приступим. В папке /protected/config/
создадим 2 файла: consoleLocal.php
и consoleServer.php
.
Теперь для конфигурации консоли у нас есть 3 файла. console.php
- содержит основные конфигурации для локальной машины и для сервера. consoleLocal.php
- конфигурация только для локальной машины. consoleServer.php
- конфигурация только для сервера.
Настроим основные конфигурации, для этого откроем файл console.php
и приведем его к следующему виду:
<?php return array( 'basePath' => dirname(__FILE__) . DIRECTORY_SEPARATOR . '..', 'name' => 'project name', // preloading 'log' component 'preload' => array('log'), // application components 'components' => array( 'log' => array( 'class' => 'CLogRouter', 'routes' => array( array( 'class' => 'CFileLogRoute', 'levels' => 'error, warning', ), ), ), ), );
Теперь можно настраивать соединение с БД в зависимости от места запуска. Перейдем к настройки для локальной машины, откройте файл consoleLocal.php
и добавьте конфигурацию соединения с БД, пример:
<?php return CMap::mergeArray( require(dirname(__FILE__) . '/console.php'), array( 'components' => array( 'db' => array( 'connectionString' => 'mysql:host=localhost;dbname=mydbname', 'emulatePrepare' => true, 'username' => 'root', 'password' => '', 'charset' => 'utf8', 'enableProfiling' => true, ), ), ), );
По аналогии настройте конфигурацию соединения с БД для сервера в файле consoleServer.php
. В файлах consoleLocal.php
и consoleServer.php
можно настроить не только разное подключение к базе данных, но и другие конфигурации. Например логирование и т.д..
Теперь настроим выбор файла конфигураций в зависимости от места запуска. Для этого открываем файл /protected/yiic.php
и приводим его к следующему виду:
<?php $yiic=dirname(__FILE__).'/../framework/yiic.php'; if ($_SERVER['OS'] == 'Windows_NT') { $config=dirname(__FILE__).'/config/consoleLocal.php'; } else { $config=dirname(__FILE__).'/config/consoleServer.php'; } require_once($yiic);
Все, теперь можете пользоваться консольными командами Yii не переживая о постоянной смене конфигураций.
$_SERVER['OS']
. Мне этот параметр подходит, т.к. на локальной машине у меня Winsows 7, а на сервере CentOS.
Если у вас возникли проблемы с определением места запуска, то можете использовать другой параметр определения или элемент массива $_SERVER
. Для просмотра всех параметров $_SERVER
Вы можете привести файл yiic.php
к виду:
<?php $yiic=dirname(__FILE__).'/../framework/yiic.php'; var_dump($_SERVER); die;
И выполнить команду yiic
в консоле (для Windows
Win + R и введите cmd), перед выполнением команды вы должны находиться в папке my project path/protected
:
yiic
Команда исполнит php
код в файле yiic.php
и выведет список всех параметров массива $_SERVER
. После выбора параметров не забудьте вернуть все как было.
Комментарии
Комментарии отсутствуют, Вы можете быть первым