2015-01-20 199 views
0

我在我的應用程序 - book.php和weather.php中有2個.php文件。我在/.openshift/cron/minutely中創建一個名爲「runscript」的文件。此文件內容:Openshift cron不運行php文件

#!/bin/bash 

php -f $OPENSHIFT_REPO_DIR/weather.php 

此腳本每分鐘都會向我發送消息給我,但沒關係。 然後我更換到:

php -f $OPENSHIFT_REPO_DIR/book.php 

此腳本必須給我留言過,但沒有什麼是happing。但是,如果我只是通過網頁瀏覽器運行此腳本(請轉至http://xxx-xxxxxxx.rhcloud.com/book.php),以便收到我的消息。這怎麼可能?魔法?

+0

你確定你已經安裝了cron墨盒嗎? – ptrk 2015-01-21 07:57:13

+0

好吧,謝謝你的回答。我在book.php代碼的最後添加了寫日誌文件的代碼,它工作正常。但是第一部分代碼不起作用。這部分必須在一些網站上寫一些文字。如果我用瀏覽器運行它 - 寫道。如果它與cron運行 - 不寫。爲什麼? – tadiuzzz 2015-01-21 13:16:08

回答

0

你錯過了#!/bin/bash部分?這需要運行shell腳本。

0

爲什麼你的cron作業沒有執行,請檢查OpenShift上的cron日誌。當你進入你的裝備時,你可以在~/app-root/logs/cron_*.log找到它們。

確保您的cron作業可以使用chmod執行,並具有@gnaanaa所說的shebang行。另外檢查你是否有.openshift/cron/minutely/jobs.{allow,deny}文件之一,因爲它們可能會導致cron跳過你的工作。 (有關詳細信息,請參見cron README。)

而且你的cron作業工作後,你可以擺脫包裝腳本runscript,並有直接的cron調用book.php。要做到這一點,直接將book.php.openshift/cron/minutely,使其可執行,這家當添加到它:

#!/usr/bin/env php 

希望這有助於。

0

我使用openshift aswell並執行一個cron的php文件以及。

#!/bin/bash 
php ${OPENSHIFT_REPO_DIR}index.php 

這會在一見鍾情的情況下正常執行腳本。然而沒有產出。問題是,所有必需的php文件無法加載,因爲工作目錄與Web服務器加載時不同。在php腳本中設置工作的directoy可以防止這個錯誤,並使腳本完全可以由cron執行。

這應該會幫助一些人獲得腳本運行。