php - Godaddy 主机上的 CakePHP 控制台

标签 php linux bash cakephp

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

我在托管在亚马逊 EC2 服务上的 Ubuntu 服务器上安装了相同的蛋糕应用程序。基本上是一个开箱即用的 Ubuntu LAMP 设置。 CakePHP 控制台在此环境中按预期工作。

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

CakePHP Console: This file has been loaded incorrectly and cannot continue.Please make sure that /cake/console is in your system path,and check the manual for the correct usage of this command.(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 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 可执行文件的。

关于php - Godaddy 主机上的 CakePHP 控制台,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3542649/

相关文章:

php - 如何重写根目录中的目录

c - getenv ("cc") 返回 NULL ,为什么?

javascript - 使用 MySQL、PHP 和 AngularJS 的服务器端分页

php - 我的 echo 语句不会显示在 html 行中

php - 使用 curl 将所有环境变量发布到端点

c++ - 没有这样的文件或目录,但存在文件

c - 如何在 Ubuntu 中使用特定字体,例如 Verdana 和 libharu

c++ - 在 bash 中捕获线程转储

macos - 非常简单的 OSX bash 脚本 : echo gives no output

php - Mysql 对具有不同值的表进行分组