我试图在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之外设置应用,但我不知道在哪里寻找其他潜在问题。
看起来我的蛋糕命令实际上并没有被运行。
答案 0 :(得分:1)
php bin/cake.php bake
这适用于Windows。
答案 1 :(得分:0)
我终于解决了这个问题,发布了一个帮助未来用户的答案。
问题确实存在于Bluehost中,但我想你会在尝试清理CLI输入的任何共享主机上遇到类似的问题。这是几个步骤,但总的来说并不那么痛苦。
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。使用
创建应用register_argv_argc
在新创建的[app name]文件夹中,您需要直接编辑bin / cake命令,需要更改第39行
来自: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>