2010-08-22 169 views
7

我一直在努力讓我的CakePHP網站在Godaddy「網格託管」帳戶上工作。我的蛋糕應用程序安裝在帳戶的子目錄中,可以通過子域訪問。我必須調整我的.htaccess文件才能使其工作,現在我需要讓CakePHP控制檯在此環境中工作。Godaddy主機上的CakePHP控制檯

我在託管在Amazon EC2服務上的Ubuntu服務器上安裝了相同的應用程序安裝程序。基本上,一個普通的Ubuntu LAMP安裝程序。 CakePHP控制檯在此環境中按預期工作。

當我嘗試運行Godaddy的控制檯我得到以下信息:

CakePHP的控制檯:此文件已加載錯誤,不能 continue.Please確保/蛋糕/控制檯是你係統 路徑,並檢查手冊此 命令的正確用法。(http://manual.cakephp.org/

我已經開始在蛋糕/控制檯/ 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命令行參數。有人對我如何獲得在Godaddy上工作的CakePHP控制檯有一些建議嗎?

的bash腳本調用它們蛋糕殼包含以下

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

exec php -q ${LIB}cake.php -working "${APP}" "[email protected]" 

exit; 

我想,修改此腳本可能會解決問題。

+1

命令行參數沒有被傳入......我不確定這是什麼原因......並在cake.php的頂部有一個/ usr/bin/php的路徑,但這是位於在Godaddy的/ usr/local/bin/php上。我可以解決這個問題。 – the0ther 2010-08-25 17:17:58

+1

好吧,register_argc_argv設置爲Off,這可能是爲什麼cmd行params沒有被傳入。 – the0ther 2010-08-25 17:39:25

回答

1

我不認爲在lib/cake中編輯任何東西都可以,因爲它會隨着你的第一次蛋糕更新而消失。

相反,我加入了改線從php.ini中register_argc_argv設置:

register_argc_argv=On 

一切似乎現在和我一起工作。

+0

這對我使用WHM php.ini編輯器。我已經更新到PHP7,並且更新了指令。 (Easy Apache 4)。 – 2016-08-24 21:49:33

1

「請確保/ cake/console在您的系統路徑中。」

這是網格託管,所以我假設你有一個.bashrc文件,你可以編輯。首先,你需要知道的絕對路徑,以你的蛋糕子目錄,然後使用vim或納米編輯您的.bashrc

PATH = $ PATH:/絕對/路徑/到/蛋糕/控制檯

然後你可以註銷並重新登錄,你應該能夠從任何地方鍵入蛋糕烘烤,並且它應該修復你得到的錯誤(從你的app目錄運行它,以便它可以找到你的database.php)。

一個失敗的.bashrc文件可將變量暫時出口,但你會在每次登錄時都鍵入密碼。

+0

好像我的PATH是正確的。當我在cmd行中回顯PATH時,它看起來是正確的,並且我可以從任何目錄運行cake命令,總是得到「該文件已加載不正確」消息。 – the0ther 2010-08-24 16:07:04

12
在蛋糕shell腳本(蛋糕/控制檯/餅)改變

exec php -q ${LIB}cake.php -working "${APP}" "[email protected]" 

exec php -q -d register_argc_argv=1 ${LIB}cake.php -working "${APP}" "[email protected]" 

在此之後我發現,像這樣調用PHP碰巧運行PHP 4 CLI。在這裏解決,這是最後的bash腳本,我使用調用PHP 5在我的共享的Godaddy主機

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

,如果你設置通過自己的主機控制面板,一個基於PHP-cron作業,你會發現PHP命令被調用的實際上是這個php5可執行文件。

+0

你能解釋一下'register_argc_argv = 1'背後的推理嗎?那太好了! – mgPePe 2014-07-21 15:51:39

+1

這是PHP聲明「我會查找傳入的命令行參數」的一種方法。請參閱:http://php.net/manual/en/ini.core.php#ini.register-argc-argv – the0ther 2014-07-21 19:35:38