Godaddy Hosting上的CakePHP控制台

the*_*her 7 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网站上,当我print_r($this->args)在第183行回应时,我发现数组是空的.当我在我的Ubuntu EC2实例上执行此操作时,我得到了:

Array
(
    [0] => /var/www/www.directory.sdcweb.org/htdocs/cake/console/cake.php
)
Run Code Online (Sandbox Code Playgroud)

看起来godaddy的命令行PHP没有通过bash shell命令行参数.有没有人对如何让CakePHP控制台在Godaddy上工作有一些建议?

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

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

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

exit;
Run Code Online (Sandbox Code Playgroud)

我在想修改这个脚本可以解决问题.

the*_*her 12

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

exec php -q ${LIB}cake.php -working "${APP}" "$@"
Run Code Online (Sandbox Code Playgroud)

exec php -q -d register_argc_argv=1 ${LIB}cake.php -working "${APP}" "$@"
Run Code Online (Sandbox Code Playgroud)

在此之后,我发现像这样调用php恰好运行PHP 4 CLI.解决这个问题是我用来在我的共享Godaddy托管上调用PHP 5的最终bash脚本

exec /web/cgi-bin/php5 -q -d register_argc_argv=1 ${LIB}cake.php -working "${APP}" "$@"
Run Code Online (Sandbox Code Playgroud)

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