Godaddy Hosting上的CakePHP控制台

时间:2010-08-22 18:08:08

标签: php linux bash cakephp

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

我在Ubuntu服务器上拥有相同的蛋糕应用程序设置,该服务器托管在Amazon的EC2服务上。基本上是开箱即用的Ubuntu LAMP设置。 CakePHP控制台在此环境中按预期工作。

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

  

CakePHP控制台:此文件已加载错误,无法加载   继续。请确保/ cake / console在您的系统中   路径,并检查手册以了解此用法的正确用法   命令(http://manual.cakephp.org/

我已经开始在cake / console / cake.php中添加一些调试代码,以了解发生了什么。在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命令行参数。有没有人对如何让CakePHP控制台在Godaddy上工作有一些建议?

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

LIB=${0/%cake/}
APP=`pwd`

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

exit;

我认为修改此脚本可以解决问题。

3 个答案:

答案 0 :(得分:12)

在蛋糕shell脚本(cake / console / cake)中更改

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可执行文件。

答案 1 :(得分:1)

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

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

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

然后你可以注销并重新登录,你应该能够从任何地方输入蛋糕烘焙,它应该修复你得到的错误(从你的app目录运行它,这样它就可以找到你的database.php)。

.bashrc文件失败,您可以暂时导出变量,但每次登录时都必须输入。

答案 2 :(得分:1)

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

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

register_argc_argv=On

现在所有人似乎都在和我合作。