Консоль CakePHP на хостинге Godaddy

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

У меня такая же настройка приложения для торта на сервере Ubuntu, который размещен в сервисе Amazon EC2. В основном простая установка Ubuntu LAMP из коробки. Консоль CakePHP работает как положено в этой среде. продолжить. Пожалуйста, убедитесь, что / торт / консоль находится в вашей системе путь, и проверьте руководство для правильного использования этого команда. ( 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
)

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

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

LIB=${0/%cake/}
APP=`pwd`

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

exit;

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

7
задан fedorqui 16 August 2016 в 10:54
поделиться

2 ответа

"Please make sure that /cake/console is in your system path."

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

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

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

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

1
ответ дан 6 December 2019 в 15:16
поделиться

в сценарии оболочки торта (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. чтобы исправить это, вот последний скрипт bash, который я использую для вызова PHP 5 на моем общем хостинге Godaddy

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

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

12
ответ дан 6 December 2019 в 15:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: