2013-03-23 25 views
0

我需要具有CakePHP 2.x MVC邏輯的PHP文件,這是無法從瀏覽器(URL)訪問的。 但我不能使用控制檯/ shell becouse我沒有一個適當的託管(我不能運行一個蛋糕bash文件) 我需要這個與PHP腳本的cronjob(例如test.php - 我可以運行一個PHP腳本,但我不能運行bash文件)。CakePHP 2.x非公開.php腳本,用於沒有CLI的CRON

+0

這裏不是一個非常喜歡的人(「請烤我..」)。到目前爲止,你究竟做了什麼? – mark 2013-03-23 21:43:26

+0

@mark你不明白我,我不想要任何東西烤,我只需要在哪裏我可以把一些代碼與cakePHP邏輯並保存爲.php文件並從cron運行它 - 但不能通過URL訪問 – petkopalko 2013-03-23 21:47:02

+0

調用控制器/來自外部的行動。甚至有免費的服務來做到這一點。或者更好:升級你的服務器。 – mark 2013-03-23 21:50:57

回答

1

原生沒有辦法做到這一點。控制檯命令將在控制檯中運行。如果您無法訪問控制檯,則無法立即運行cron。但是,有一種方法可以強制控制器/操作執行控制檯腳本。那麼你需要做的是運行一個cron來獲取控制器的行爲。

有人已經提供了示例代碼來做到這一點:https://stackoverflow.com/a/9000052/372875

如果他aco_sync()動作是在一個ConsoleFuncs控制器,你可以取http://yoursite.com/console_funcs/aco_sync運行shell腳本。在想要設置cron作業的機器上,該腳本將簡單地對該URL進行卷曲操作,從而執行該控制檯腳本。

祝你好運!

0

如果我正確地閱讀這篇文章,您需要一種方法來在CakePHP應用程序上運行cron作業,而您無法通過瀏覽器或命令行訪問該應用程序?那麼,希望你的意思是你不能通過瀏覽器訪問它,但它仍然存在於某種類型的網絡中。創建一個腳本,向Controller/Action發出請求,然後爲該腳本創建一個cronjob。您可能想要使用Cake的Json或XML視圖。另外,如果您需要保護控制器/操作在用戶名/密碼後面,請考慮閱讀Creating stateless authentication system

+0

不完全。我需要運行腳本,不能通過URL訪問。它是一個公共網絡,因此它不能成爲一個帶有操作的控制器,您可以從瀏覽器觸發該操作。問題是我的主機不允許我運行蛋糕控制檯shell任務,因爲我必須運行bash蛋糕腳本。我需要執行.php腳本而不是shell任務。 – petkopalko 2013-03-25 08:09:15

+0

你說這是在CakePHP MVC?我不知道這怎麼可能。我可能只是不瞭解你的問題。劇本在哪裏生活?這聽起來對我來說如果它不是一個動作,那麼你可能沒有正確使用CakePHP。 – 2013-03-25 08:51:22

+0

@ angel-s-moreno在蛋糕是控制檯/ shell任務http://book.cakephp.org/2.0/en/console-and-shells.html和我需要完全相同的東西,但我想運行.php腳本不是蛋糕控制檯程序 – petkopalko 2013-03-25 13:03:00