Godaddy 托管上的 CakePHP 控制台

2024-05-16

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

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

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

CakePHP 控制台:此文件加载不正确,无法加载 继续。请确保 /cake/console 在您的系统中 路径,并查看手册以了解该命令的正确用法 命令。(http://manual.cakephp.org/ 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
)

看起来 godaddy 的命令行 PHP 没有传递 bash shell 命令行参数。有人对如何让 CakePHP 控制台在 Godaddy 上运行有一些建议吗?

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

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

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

exit;

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


在蛋糕外壳脚本(蛋糕/控制台/蛋糕)中更改

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

to

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

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

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

如果您通过其托管控制面板设置基于 php 的 cron 作业,您会发现调用的 php 命令实际上是针对此 php5 可执行文件。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Godaddy 托管上的 CakePHP 控制台 的相关文章

随机推荐