2013-12-14 2 views
3

У меня есть приложение CakePHP, работающее на общем хосте, который недавно обновил меня до PHP 5.4.x. По большей части, все прошло гладко, но теперь мои снаряды не будут работать:Проблема с CakePHP Console после обновления до PHP 5.4

CakePHP Console: This file has been loaded incorrectly and cannot continue.Please make sure that /cake/console is in your system path,and check the manual for the correct usage of this command. 

Порывшись в cake/console/cake.php, оказывается, что отказ происходит в этом блоке:

if (!isset($this->args[0]) || !isset($this->params['working'])) { 
# debug($this->args); 
# debug(isset($this->args[0])); 
    $this->stderr("\nCakePHP Console: "); 
    $this->stderr('This file has been loaded incorrectly and cannot continue.'); 
    $this->stderr('Please make sure that ' . DIRECTORY_SEPARATOR . 'cake' . DIRECTORY_SEPARATOR . 'console is in your system path,'); 
    $this->stderr('and check the manual for the correct usage of this command.'); 
    $this->stderr('(http://manual.cakephp.org/)'); 
    $this->_stop(); 
} 

В частности, $this->args массив пуст, поэтому нет 0 индекс. Это приложение запускает CakePHP 1.3.17. Я проверил другое приложение под управлением 1.3.16, и оба сценария cake и файлы cake.php - это то же самое. Однако на сайте 1.3.16 значение $this->args[0] правильно установлено на путь вызываемого сценария.

Любая идея, почему мой недавно обновленный сайт не получит такое же значение? Это приложение, которое не было затронуто в течение нескольких месяцев. Насколько я знаю и могу сказать, единственным изменением было обновление PHP.

Любое понимание было бы высоко оценено.

+0

У нас были проблемы, обновляющиеся в прошлом PHP 5.3 при использовании Cake 1.3 - если у вас есть ** ** обновить PHP мимо этой точки, вы, возможно, придется обновить ядро ​​торт, а также (и все устаревшие функции и функции, не поддерживающие обратную совместимость, которые впоследствии возвращают разные структуры). –

ответ

0

Где-то в процессе обновления версии PHP мой хост решил поиграть в игры с моим файлом php.ini и register_argc_argv значение получилось отключенным. Вернуть его обратно было именно то, что мне нужно.

Смотрите также: https://stackoverflow.com/a/3570142/1665

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