Php

linux crond 不工作

  • January 21, 2012

我有一個用於創建縮略圖的 cronjob。該文件夾/var/www/html/work/有權限744(我認為744比777更安全)

crontabs

* * * * * /usr/bin/php /var/www/html/work/images.php

腳本

$newstore = dirname(__FILE__) . '/images/.$data->name.'jpg';
$width = (int)($data->width);
$height = (int)($data->height);
$desired_width = round((300*$width)/$height);
$desired_height = 300;
$virtual_image = imagecreatetruecolor($desired_width, $desired_height);
imagecopyresized($virtual_image,$source_image,0,0,0,0,$desired_width,$desired_height,$width,$height);
imagejpeg($virtual_image,$newstore);

編輯

在瀏覽器部分。我已經登錄了phpmyadminwith root,所以當我嘗試時localhost/work/images.php,它執行良好。, and works in/usr/bin/php /var/www/html/work/images.php inPuTTY SSH`。

但工作失敗了crond。我已經重啟service crond restart了所有的事情

$$ OK $$,然後嘗試/etc/cron.allow,返回-bash: /etc/cron.allow: No such file or directory,執行/etc/cron.deny,返回-bash: /etc/cron.deny: Permission denied。 BTY:vi /var/log/httpd/error_log沒有錯誤提示。

哪裡有問題?crond setting? 還是folder permission

哦,天哪,停止 chmoding 基本系統二進製文件。不會有什麼好處。

如果您能夠以 root 身份從命令行執行腳本,但它在 cron 中失敗,那麼最可能的問題是:

1)權限問題(特別是基本權限問題,而不是系統範圍的問題,這是您嘗試使用 chmod 語句修復的問題)。

  1. 路徑問題。

對於 #1,您是否查看過 /var/www/html/images 目錄的所有權和權限?此目錄的所有權和權限是否允許執行 cron 的使用者修改文件?

實際上,就使用者而言,您是如何執行 cron 的?你有它在 /etc/cron.d 目錄嗎?如果您將 cronjob 文件放在 /etc/cron.d 中,則格式會略有不同,因為您必須將執行 cron 的使用者放在日期/時間欄位和命令之間。

對於#2,我認為這不太可能,因為您指定了執行檔的絕對路徑名(/usr/bin/php),並且您的腳本不包含任何額外的庫。

引用自:https://serverfault.com/questions/352206