我需要具有CakePHP 2.x MVC邏輯的PHP文件,這是無法從瀏覽器(URL)訪問的。 但我不能使用控制檯/ shell becouse我沒有一個適當的託管(我不能運行一個蛋糕bash文件) 我需要這個與PHP腳本的cronjob(例如test.php - 我可以運行一個PHP腳本,但我不能運行bash文件)。CakePHP 2.x非公開.php腳本,用於沒有CLI的CRON
回答
原生沒有辦法做到這一點。控制檯命令將在控制檯中運行。如果您無法訪問控制檯,則無法立即運行cron。但是,有一種方法可以強制控制器/操作執行控制檯腳本。那麼你需要做的是運行一個cron來獲取控制器的行爲。
有人已經提供了示例代碼來做到這一點:https://stackoverflow.com/a/9000052/372875
如果他aco_sync()動作是在一個ConsoleFuncs控制器,你可以取http://yoursite.com/console_funcs/aco_sync運行shell腳本。在想要設置cron作業的機器上,該腳本將簡單地對該URL進行卷曲操作,從而執行該控制檯腳本。
祝你好運!
如果我正確地閱讀這篇文章,您需要一種方法來在CakePHP應用程序上運行cron作業,而您無法通過瀏覽器或命令行訪問該應用程序?那麼,希望你的意思是你不能通過瀏覽器訪問它,但它仍然存在於某種類型的網絡中。創建一個腳本,向Controller/Action發出請求,然後爲該腳本創建一個cronjob。您可能想要使用Cake的Json或XML視圖。另外,如果您需要保護控制器/操作在用戶名/密碼後面,請考慮閱讀Creating stateless authentication system。
不完全。我需要運行腳本,不能通過URL訪問。它是一個公共網絡,因此它不能成爲一個帶有操作的控制器,您可以從瀏覽器觸發該操作。問題是我的主機不允許我運行蛋糕控制檯shell任務,因爲我必須運行bash蛋糕腳本。我需要執行.php腳本而不是shell任務。 – petkopalko 2013-03-25 08:09:15
你說這是在CakePHP MVC?我不知道這怎麼可能。我可能只是不瞭解你的問題。劇本在哪裏生活?這聽起來對我來說如果它不是一個動作,那麼你可能沒有正確使用CakePHP。 – 2013-03-25 08:51:22
@ angel-s-moreno在蛋糕是控制檯/ shell任務http://book.cakephp.org/2.0/en/console-and-shells.html和我需要完全相同的東西,但我想運行.php腳本不是蛋糕控制檯程序 – petkopalko 2013-03-25 13:03:00
- 1. php cli腳本掛起沒有消息
- 2. PHP CLI腳本沒有超時
- 3. 有沒有用於PHP CLI的IDE?
- 4. Cron和PHP腳本?
- 5. aws-cli 1.2.10 cron腳本失敗
- 6. WordPress的:有沒有辦法從PHP腳本運行cli命令?
- 7. 沒有cron的預定的PHP腳本執行
- 8. 在CentOS上的Cron沒有正確執行一個PHP腳本
- 9. cron作業沒有運行腳本
- 10. linux cron腳本功能沒有運行
- 11. cron作業沒有運行bash腳本
- 12. Python腳本沒有在cron中運行
- 13. 腳本沒有完成執行,但cron作業再次開始
- 14. 從cron循環php腳本?
- 15. 從cron啓動PHP腳本?
- 16. Cron作業和php腳本
- 17. Cron未執行PHP腳本
- 18. 在CakePHP 2.x應用程序中使用guzzle和CakePHP 2.x
- 19. CakePHP的2.x的
- 20. Php腳本每天運行幾次而沒有CRON?
- 21. Php腳本沒有運行www-數據cron
- 22. CakePHP 2.x Acl
- 23. Cakephp 2.x REST
- 24. 由於非公開API「countOfEntities」
- 25. 用於cron作業超時的PHP腳本
- 26. 用於插入和更新xml數據的PHP cron腳本
- 27. 保護PHP CLI腳本
- 28. 的Cron沒有找到PHP
- 29. 用於CakePHP 1.3.x的Twitter Bootstrap 2.x插件
- 30. 使用cron作業執行PHP腳本
這裏不是一個非常喜歡的人(「請烤我..」)。到目前爲止,你究竟做了什麼? – mark 2013-03-23 21:43:26
@mark你不明白我,我不想要任何東西烤,我只需要在哪裏我可以把一些代碼與cakePHP邏輯並保存爲.php文件並從cron運行它 - 但不能通過URL訪問 – petkopalko 2013-03-23 21:47:02
調用控制器/來自外部的行動。甚至有免費的服務來做到這一點。或者更好:升級你的服務器。 – mark 2013-03-23 21:50:57