我一直在努力让我的 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(使用前将#替换为@)