2013-09-13 3 views
0

У меня есть настройки в моем APP/Config/config.php У меня есть строка, которая определяет хост:CakePHP консоли дает ошибку «Undefined индекс: HTTP_HOST»

define('SITE_URL','http://'.$_SERVER['HTTP_HOST']); 

Всякий раз, когда я запускаю консоль торта, я получаю ошибку:

Notice (8): Undefined index: HTTP_HOST [APP/Config/config.php, line 144] 
Code Context 
include - APP/Config/config.php, line 144 
PhpReader::read() - CORE/Cake/Configure/PhpReader.php, line 80 
Configure::load() - CORE/Cake/Core/Configure.php, line 267 
include - APP/Config/bootstrap.php, line 190 
Configure::bootstrap() - CORE/Cake/Core/Configure.php, line 92 
require - CORE/Cake/bootstrap.php, line 146 
ShellDispatcher::_bootstrap() - CORE/Cake/Console/ShellDispatcher.php, line 131 
ShellDispatcher::_initEnvironment() - CORE/Cake/Console/ShellDispatcher.php, line 101 
ShellDispatcher::__construct() - CORE/Cake/Console/ShellDispatcher.php, line 57 
ShellDispatcher::run() - CORE/Cake/Console/ShellDispatcher.php, line 68 
[main] - APP/Console/cake.php, line 33 

Почему это появляется и как я могу решить эту проблему?

ответ

2

Его, потому что вы работаете из консоли (CakePHP использует PHP-CLI)

$_SERVER['HTTP_HOST'] 

его заполняется только при запуске из браузера (веб-сервер)

1

@Braian прав.

Вы можете сделать следующее в вашем файле конфигурации:

if(php_sapi_name() === 'cli') { 
    define('SITE_URL','http://{DEFAULT HOST HERE}; 
} else { 
    define('SITE_URL','http://'.$_SERVER['HTTP_HOST']); 
} 

В качестве альтернативы, вы можете запросить вашу базу данных для настройки хоста своего рода - если ваши хосты отличаться в зависимости от окружающей среды - и использовать Configure: : write, чтобы установить значение конфигурации до запуска основной логики консольных скриптов.

Смежные вопросы