CakePHP 3 на консольных командах Bluehost не работает

Я пытаюсь настроить приложение CakePHP 3 на общем хостинге, предоставленном Bluehost. Когда я пытаюсь выполнить bin/cake bake из консоли (или любой команды торта, на самом деле), я получаю следующий вывод:

    ################################################################################
#
# Bake is a shell script for running CakePHP bake script
#
# CakePHP(tm) :  Rapid Development Framework (http://cakephp.org)
# Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
#
# Licensed under The MIT License
# For full copyright and license information, please see the LICENSE.txt
# Redistributions of files must retain the above copyright notice.
#
# @copyright     Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
# @link          http://cakephp.org CakePHP(tm) Project
# @since         1.2.0
# @license       http://www.opensource.org/licenses/mit-license.php MIT License
#
################################################################################

# Canonicalize by following every symlink of the given name recursively
canonicalize() {
        NAME="$1"
        if [ -f "$NAME" ]
        then
                DIR=$(dirname -- "$NAME")
                NAME=$(cd -P "$DIR" > /dev/null && pwd -P)/$(basename -- "$NAME")
        fi
        while [ -h "$NAME" ]; do
                DIR=$(dirname -- "$NAME")
                SYM=$(readlink "$NAME")
                NAME=$(cd "$DIR" > /dev/null && cd $(dirname -- "$SYM") > /dev/null && pwd)/$(basename -- "$SYM")
        done
        echo "$NAME"
}

CONSOLE=$(dirname -- "$(canonicalize "$0")")
APP=$(dirname "$CONSOLE")

exec php "$CONSOLE"/cake.php "$@"
exit

Моя структура папок в настоящее время установлена ​​​​как:

/public_html
    /app
        /cakestuff

Генерируется с помощью кода:

php composer.phar create-project --prefer-dist cakephp/app app

Я также пытался настроить приложение вне public_html, но понятия не имею, где искать другие потенциальные проблемы.

Похоже, мои команды торта на самом деле не выполняются.


person Sugarcaen    schedule 21.06.2015    source источник
comment
Вы пытались явно указать ему использовать PHP? Например, «выпечка php bin/cake.php»?   -  person Arak Tai'Roth    schedule 22.06.2015


Ответы (5)


У меня была такая же проблема на сервере Hostmonster, который такой же или похожий на Bluehost. Похоже, работает следующее:

php-cli bin/cake.php bake

Это то же самое, что и предложение от Arak Tai'Roth выше, но с "php-cli".

person weehawker    schedule 22.11.2015

php bin/cake.php bake

Это работает для меня в Windows.

person user7362763    schedule 09.02.2018

Наконец-то я решил эту проблему, опубликовав ответ, чтобы помочь будущим пользователям.

Проблемы действительно возникают с Bluehost, но я полагаю, что у вас будут аналогичные проблемы на любом виртуальном хостинге, который пытается дезинфицировать ваши входные данные CLI. Было пару шагов, но в целом было не так больно.

  1. Убедитесь, что у вас есть файл php.ini, в котором для параметра register_argv_argc установлено значение On.
  2. Создайте приложение, используя

    php composer.phar create-project --prefer-dist cakephp/app [app name]
    
  3. Во вновь созданной папке [имя приложения] вам нужно напрямую отредактировать команду bin/cake, вам нужно изменить строку 39.

от: exec php "$CONSOLE"/cake.php "$@"

to: exec php-cli -c /path/to/your/php.ini "$CONSOLE"/cake.php "$@"

person Sugarcaen    schedule 23.06.2015
comment
У меня такая же проблема, но мне это не помогло :( - person Battousai; 16.01.2016

Для виртуального хостинга godaddy выполните следующие действия:

1. Сначала проверьте файл bin/cake. Если он содержит только одну команду exec, как это

exec php "$CONSOLE"/cake.php "$@"

затем замените содержимое файла этим Исправить ошибку в сценарии оболочки торта

2. Перейдите на страницу Cron Job и используйте команду

/usr/bin/php-cli /home/yourusername/public_html/path/to/your/bin/cake.php yourfilename
person sandesh bandal    schedule 27.08.2016

У меня была такая же проблема, и приведенные выше ответы не помогли. Я не изменил ни один из файлов торта. Я просто следовал следующим инструкциям, чтобы заставить его работать.

1.) Добавьте эту строку в .bashrc:

alias php-cli="/ramdisk/php/54/bin/php54-cli"

2.) cd для вашего приложения cakephp

3.) используйте эту команду для использования консоли выпечки:

php-cli bin/cake.php bake all <your table name here>
person Battousai    schedule 09.11.2016