如何設定 CRON 在公共 html 資料夾之外執行 php 檔案?

如何設定 CRON 在公共 html 資料夾之外執行 php 檔案?

例如,我有一個 php 檔案位於:

/data/web/process.php

該檔案不是公開可用的(該資料夾中沒有運行虛擬主機,但安裝了 apache)。我需要每天每分鐘執行這個文件。

我知道我可以使用 開啟 crontab crontab -e,但我不確定我到底該在檔案中寫入什麼內容,以便我需要做的事情運作。

有什麼幫助嗎?

答案1

運行crontab -e並添加行:

* * * * * /usr/bin/php -f /data/web/process.php 2>&1 >> /path/to/output/file.log

在執行此操作之前,請確保它/usr/bin/php -f /data/web/process.php符合您的要求。另請注意,該 cron 將以調用 的相同用戶身份運行它crontab -e,因此,如果您以用戶 rimmer 身份運行它,它將以 rimmer 身份運行,如果以 root 身份運行,它將以 root 身份運行。

如果您希望它以 apache 使用者身分執行,請執行以下操作:

sudo -u www-data crontab -e

假設 www-data 是您的 apache 使用者。您也可以建立一個文件/etc/cron.d/my-php-job

確保沒有壞人可以編輯 /data/web/process.php 檔案並仔細檢查該檔案。我會將這個檔案設為 root 擁有並擁有 644 權限。不要將其設定為 apache 使用者擁有且可寫入。

答案2

請嘗試以下操作:

/path/to/php -f /data/web/process.php

相關內容