Консоль CakePHP на ходьбе Godaddy

Я изо всех сил пытаюсь заставить мой сайт CakePHP работать над учетной записью «grid hosting» Godaddy. Мое приложение для пирога – это установка, размещенная из подкаталога в учетной записи, и доступ к которому осуществляется через субдомен. Мне пришлось настроить мои файлы .htaccess, чтобы получить эту работу, и теперь мне нужно, чтобы консоль CakePHP работала в этой среде.

У меня такая же настройка приложений для торта на сервере Ubuntu, который размещен на сервисе EC2 Amazon. По сути, это простая установка Ubuntu LAMP. Консоль CakePHP работает так, как ожидалось в этой среде.

Когда я пытаюсь запустить консоль на Godaddy, я получаю следующее сообщение:

Консоль CakePHP: этот файл загружен некорректно и не может продолжить. Убедитесь, что / cake / console находится в вашем системном пути и проверьте руководство для правильного использования этой команды. ( Http://manual.cakephp.org/ )

Я начал добавлять код отладки в cake / console / cake.php, чтобы узнать, что происходит. На сайте godaddy, когда я выхожу из print_r($this->args) в строке 183, я обнаружил, что массив пуст. Когда я делаю это на своем экземпляре Ubuntu EC2, я получаю следующее:

 Array ( [0] => /var/www/www.directory.sdcweb.org/htdocs/cake/console/cake.php ) 

Похоже, что командная строка Godaddy PHP не проходит через аргументы командной строки оболочки bash. Есть ли у кого-нибудь советы относительно того, как я могу использовать консоль CakePHP для работы с Godaddy?

Сценарий bash, который вызывает оболочку Cake, содержит следующее

 LIB=${0/%cake/} APP=`pwd` exec php -q ${LIB}cake.php -working "${APP}" "$@" exit; 

Я думаю, что изменение этого скрипта может решить проблему.

Я не думаю, что редактирование чего-либо в lib / cake в порядке, так как оно исчезнет с вашего первого обновления пирога.

Скорее, я изменил параметр register_argc_argv из php.ini, добавив строку:

 register_argc_argv=On 

Кажется, теперь все работает со мной.

в сценарии оболочки торта (cake / console / cake)

 exec php -q ${LIB}cake.php -working "${APP}" "$@" 

в

 exec php -q -d register_argc_argv=1 ${LIB}cake.php -working "${APP}" "$@" 

после этого я узнал, что вызов php, как это случилось, запускает PHP 4 CLI. чтобы исправить это, вот окончательный сценарий bash, который я использую для вызова PHP 5 на мой общий хостинг Godaddy

 exec /web/cgi-bin/php5 -q -d register_argc_argv=1 ${LIB}cake.php -working "${APP}" "$@" 

если вы настроите задание cron на основе php через свою панель управления хостингом, вы обнаружите, что вызванная команда php фактически соответствует этому исполняемому файлу php5.

«Убедитесь, что / cake / console находится на вашем системном пути».

Это grid-хостинг, поэтому я предполагаю, что у вас есть .bashrc-файл, который вы можете редактировать. Сначала вам нужно знать абсолютный путь к вашему подкаталогу cake, а затем использовать vim или nano для редактирования вашего .bashrc

PATH = $ PATH: / абсолютный / путь / к / торт / консоли

Затем вы можете выйти из системы и войти в систему, и вы сможете набирать печенье из любого места, и она должна исправить ошибку вашего получения (запустите ее из каталога приложений, чтобы она могла найти ваш файл database.php).

При отсутствии файла .bashrc вы можете временно экспортировать переменную, но вам нужно будет вводить ее каждый раз при входе в систему.