經過一個星期的嘗試我不知道還有什麼要做。 我有一個簡單的PHP腳本,是對我的網絡服務器稱爲getpoem.php 腳本打開了一個網站,拉它的內容,並將其保存到一下poem.txt服務器上Php腳本沒有運行www-數據cron
<?php
//File to extract the Poem of the day
$homepage = file_get_contents('http://SomeWebsite.com/today.php');
$poemALL = substr($homepage,strpos($homepage,"<p>"),strlen($homepage));
.
. // extracting the poem and saving it to $poemFinish
.
file_put_contents("poem.txt", $poemFinish); ?>
所以這是一個相當簡單的腳本(它工作正常,如果我手動執行它)。該腳本應該與它的cron中的www數據的用戶,所以我運行結束了的cron使用該命令輸入的命令來執行它應該運行
sudo crontab -u www-data -e
0 3 * * * php /var/www/html/getpoem.php
,以避免任何權限問題我給getpoem.php和詩。 TXT這樣的rwx權限(我知道什麼時候它活着,我應該改變它,但是這僅僅是測試)
-rwxrwxrwx 1 www-data www-data 1189 Aug 17 15:07 getpoem.php
-rwxrwxrwx 1 www-data www-data 1335 Aug 17 15:07 poem.txt
因此,這是設置,但它不會執行。
我做了迄今爲止改變「PHP」到/ usr/bin中/ PHP的,以確保該cron的知道什麼是PHP的。 我也正在做一個cron的是運行,所以舒爾接下來的事情我改變了對的cronjob
2 * * * */usr/bin/php /var/www/html/getpoem.php | > /var/www/html/test.txt
至極又什麼也沒做....所以我改成了
2 * * * */usr/bin/php /var/www/html/getpoem.php | > /tmp/test.txt
未運行php文件,但在我的tmp目錄中創建了一個名爲test.txt的空文件(-.-「)
所以我認爲這個問題必須是我的www-data用戶的訪問權限中的一些問題。我的所有webcontent(php文件,webapp usw.)也都歸www所有 - 數據用戶,他們順利運行。
我需要爲www-data的cron提供額外的特權嗎?
這整個問題尖叫[XY問題(http://meta.stackexchange.com/問題/ 66377 /什麼是xy問題)給我。你猜猜什麼是權限問題,你從哪裏去。也許是這樣,也許它不是一個權限錯誤,但在這一點上,它可能只是隨機猜測那些不適合SO的東西。 – PeeHaa
我相信,當你使用'file_put_content'時,你應該使用「絕對路徑」,意思是'__DIR __。'/ poem.txt'',否則不清楚工作目錄是什麼......或者你可以在腳本中設置工作目錄 – Jakumi
@PeeHaa嗯,我應該澄清一點,克朗不會運行我的PHP文件?或者我應該刪除我已經嘗試過的?導致否則我不知道爲什麼它應該是一個「XY問題」 – GEnGEr