Godaddy主机上的CakePHP控制台

我一直在努力让我的CakePHP网站在Godaddy“网格托pipe”帐户上工作。 我的蛋糕应用程序安装在帐户的子目录中,可以通过子域访问。 我不得不调整我的.htaccess文件来使这个工作,现在我需要让CakePHP控制台在这个环境中工作。

我在Amazon EC2服务上托pipe的Ubuntu服务器上安装了相同的蛋糕应用程序。 基本上一个简单的Ubuntu LAMP安装程序。 CakePHP控制台在此环境中按预期工作。

当我尝试在Godaddy上运行控制台时,我收到以下消息:

CakePHP控制台:此文件加载不正确,无法继续。请确保/ cake / console在您的系统path中,并检查手册是否正确使用此命令( http://manual.cakephp.org/)。 )

我已经开始在cake / console / cake.php中添加一些debugging代码来了解发生了什么。 在godaddy网站上,当我在第183行回显print_r($this->args) ,发现数组是空的。 当我在我的Ubuntu EC2实例上这样做时,我得到这个:

 Array ( [0] => /var/www/www.directory.sdcweb.org/htdocs/cake/console/cake.php ) 

它看起来像godaddy的命令行PHP不通过bash shell命令行参数。 有没有人有一些build议,我可能会得到CakePHP控制台上Godaddy的工作?

调用Cake shell的bash脚本包含以下内容

 LIB=${0/%cake/} APP=`pwd` exec php -q ${LIB}cake.php -working "${APP}" "$@" exit; 

我在想,修改这个脚本可能会解决这个问题。

Solutions Collecting From Web of "Godaddy主机上的CakePHP控制台"

我不认为在lib / cake中编辑任何东西都是可以的,因为它会随着你的第一次蛋糕更新而消失。

相反,我通过添加一行来改变php.ini中的register_argc_argv设置:

 register_argc_argv=On 

所有似乎现在与我一起工作。

在蛋糕壳脚本(蛋糕/控制台/蛋糕)的变化

 exec php -q ${LIB}cake.php -working "${APP}" "$@" 

 exec php -q -d register_argc_argv=1 ${LIB}cake.php -working "${APP}" "$@" 

在这之后,我发现像这样调用PHP恰巧运行PHP 4 CLI。 在这里解决这个问题是我用来在我共享的Godaddy主机上调用PHP 5的最终bash脚本

 exec /web/cgi-bin/php5 -q -d register_argc_argv=1 ${LIB}cake.php -working "${APP}" "$@" 

如果你通过他们的主机控制面板设置一个基于php的cron作业,你会发现调用的php命令实际上是这个php5可执行文件。

“请确保/ cake / console在您的系统路径中。”

这是网格托管,所以我假设你有一个.bashrc文件,你可以编辑。 首先,您需要知道您的蛋糕子目录的绝对路径,然后使用vim或nano编辑您的.bashrc

PATH = $ PATH:/绝对/路径/到/蛋糕/控制台

然后,你可以注销并重新登录,你应该能够从任何地方键入蛋糕烘烤,它应该修复你得到的错误(运行它从你的应用程序目录,所以它可以找到你的database.php)。

如果没有.bashrc文件,您可以临时导出变量,但每次登录时都必须键入它。