Bluehost 控制台命令上的 CakePHP 3 不起作用

CakePHP 3 on Bluehost Console Commands Do Not Function

我正在尝试在 Bluehost 提供的共享托管解决方案上安装 CakePHP 3 应用程序。当我尝试从控制台(或任何蛋糕命令,真的)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=""
        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 "[=10=]")")
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 之外设置应用程序,但我不知道去哪里寻找其他潜在问题。

看来我的蛋糕命令实际上并不是 运行。

我终于解决了这个问题,发布了一个答案来帮助未来的用户。

Bluehost 确实存在问题,但我想您在任何试图清理 CLI 输入的共享主机上都会遇到类似问题。有几个步骤,但总体来说并没有那么痛苦。

  1. 确保您有一个 php.ini,其中 register_argv_argc 已设置为开。
  2. 使用

    创建应用程序
    php composer.phar create-project --prefer-dist cakephp/app [app name]
    
  3. 在新创建的[app name]文件夹中,您需要直接编辑您的bin/cake命令,您需要更改第39行

来自:exec php "$CONSOLE"/cake.php "$@"

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

我在 Hostmonster 服务器上遇到了同样的问题,它与 Bluehost 相同或相似。以下似乎有效:

php-cli bin/cake.php bake

这与上面 Arak Tai'Roth 的建议相同,但 "php-cli"。

对于 godaddy 共享主机,请按照

的步骤操作

1.First 检查你的 bin/cake file.If 它只包含一个 exec 命令作为这个

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

然后用这个Fix mistake in cake shell script

替换文件内容

2.Goto 托管 Cron 作业页面并使用命令

/usr/bin/php-cli /home/yourusername/public_html/path/to/your/bin/cake.php yourfilename

我遇到了同样的问题,但以上答案没有帮助。我没有更改任何蛋糕文件。我只是按照以下说明进行操作。

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>
php bin/cake.php bake

这适用于我 Windows。