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

时间:2015-06-21 20:21:50

标签: cakephp shared-hosting cakephp-3.0 bluehost

我试图在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="$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之外设置应用,但我不知道在哪里寻找其他潜在问题。

看起来我的蛋糕命令实际上并没有被运行。

5 个答案:

答案 0 :(得分:1)

php bin/cake.php bake

这适用于Windows。

答案 1 :(得分:0)

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

问题确实存在于Bluehost中,但我想你会在尝试清理CLI输入的任何共享主机上遇到类似的问题。这是几个步骤,但总的来说并不那么痛苦。

  1. 确保您有一个php.ini,其中public static List<E> removeDuplicates (List<E> inputList) { int dupCount = 0; Set<E> listSet = new HashSet<E>(); ListIterator<E> iter = inputList.listIterator(); while (iter.hasNext()) { E val = iter.next(); if (!listSet.add(val)) { ++dupCount; } } // you can log the number of duplicates if you want List<E> newList = Arrays.asList(listSet.toArray()); return newList; } 已设置为On。
  2. 使用

    创建应用
    register_argv_argc
  3. 在新创建的[app name]文件夹中,您需要直接编辑bin / cake命令,需要更改第39行

  4. 来自:php composer.phar create-project --prefer-dist cakephp/app [app name]

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

答案 2 :(得分:0)

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

php-cli bin/cake.php bake

这与上面Arak Tai'Roth的建议相同,但使用&#34; php-cli&#34;。

答案 3 :(得分:0)

对于godaddy共享主机按照步骤

1.首先检查你的bin / cake文件。如果它只包含一个exec命令

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

然后使用此Fix mistake in cake shell script

替换文件内容

2.转到主持人Cron Job页面并使用命令

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

答案 4 :(得分:0)

我有同样的问题,上面的答案没有帮助。我没有改变任何蛋糕文件。我只是按照以下说明开始工作。

1。)将此行添加到.bashrc:

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

2。)cd到你的cakephp app

3。)使用此命令来使用烘焙控制台:

php-cli bin/cake.php bake all <your table name here>