【发布时间】:2011-04-02 08:11:58
【问题描述】:
我一直在努力让我的 CakePHP 网站在 Godaddy“网格托管”帐户上运行。我的蛋糕应用程序设置在帐户的子目录中,并且可以通过子域访问。我必须调整我的 .htaccess 文件才能让它工作,现在我需要让 CakePHP 控制台在这个环境中工作。
我在托管在 Amazon 的 EC2 服务上的 Ubuntu 服务器上设置了相同的蛋糕应用程序。基本上是开箱即用的 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;
我在想修改这个脚本可能会解决问题。
【问题讨论】:
-
命令行参数没有被传入...我不确定这是什么原因...并且在 cake.php 的顶部有一条到 /usr/bin/ 的路径php 但它位于 Godaddy 上的 /usr/local/bin/php。我可能可以解决这个问题。
-
好吧,register_argc_argv 设置为 Off,这可能是没有传入 cmd 行参数的原因。