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 输入的共享主机上都会遇到类似问题。有几个步骤,但总体来说并没有那么痛苦。
- 确保您有一个 php.ini,其中
register_argv_argc
已设置为开。
使用
创建应用程序
php composer.phar create-project --prefer-dist cakephp/app [app name]
在新创建的[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。
我正在尝试在 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 输入的共享主机上都会遇到类似问题。有几个步骤,但总体来说并没有那么痛苦。
- 确保您有一个 php.ini,其中
register_argv_argc
已设置为开。 使用
创建应用程序php composer.phar create-project --prefer-dist cakephp/app [app name]
在新创建的[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。