Консоль CakePHP на хостинге Godaddy - PullRequest
7 голосов
/ 22 августа 2010

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

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

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

Консоль CakePHP: этот файл был загружен неправильно ипродолжить нельзя. Убедитесь, что /ake / 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;

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

Ответы [ 3 ]

12 голосов
/ 26 августа 2010

в сценарии оболочки торта (торт / консоль / торт) изменить

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

до

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

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

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

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

1 голос
/ 22 июля 2014

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

Вместо этого я изменил настройку register_argc_argv из php.ini, добавив строку:

register_argc_argv=On

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

1 голос
/ 24 августа 2010

"Пожалуйста, убедитесь, что /ake / console находится в вашем системном пути."

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

PATH = $ PATH: / absolute / path / to / cake / console

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

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

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