[英]CakePHP Console on Godaddy Hosting
我一直在努力讓我的CakePHP網站在Godaddy“網格托管”帳戶上工作。 我的蛋糕應用程序設置是從帳戶的子目錄托管,可以通過子域訪問。 我不得不調整我的.htaccess文件以使其工作,現在我需要讓CakePHP控制台在這種環境中工作。
我在Ubuntu服務器上擁有相同的蛋糕應用程序設置,該服務器托管在Amazon的EC2服務上。 基本上是開箱即用的Ubuntu LAMP設置。 CakePHP控制台在此環境中按預期工作。
當我嘗試在Godaddy上運行控制台時,我收到以下消息:
CakePHP控制台:此文件已正確加載且無法繼續。請確保/ cake / console位於系統路徑中,並檢查手冊以了解此命令的正確用法。( 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;
我在想修改這個腳本可以解決問題。
在蛋糕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可執行文件。
我不認為在lib / cake中編輯任何東西是可以的,因為它會隨着你的第一次蛋糕更新而消失。
相反,我通過添加以下行來更改php.ini中的register_argc_argv
設置:
register_argc_argv=On
現在一切似乎都和我一起工作了。
“請確保/ cake / console在您的系統路徑中。”
這是網格托管,所以我假設你有一個.bashrc文件,你可以編輯。 首先,您需要知道cake子目錄的絕對路徑,然后使用vim或nano編輯.bashrc
PATH = $ PATH:/絕對/路徑/到/蛋糕/控制台
然后你可以注銷並重新登錄,你應該可以從任何地方輸入蛋糕烘焙,它應該修復你得到的錯誤(從你的app目錄運行它,這樣它就可以找到你的database.php)。
如果您的.bashrc文件失敗,您可以暫時導出該變量,但每次登錄時都必須輸入該變量。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.