crontab執行不了php的解決方法

1、php文件有沒有執行權限,條件容許能夠把文件權限設爲777php

2、若是有了執行權限仍是執行不了,解決方法以下:mysql

 

1,在php程序裏面寫log(例如:error_log()這個函數),這也是必須的,由於crontab定時執行,要是沒有log,你怎麼知道程序執行的結果怎麼樣。這樣咱們能夠經過log來查看crontab執行的狀況。nginx

2,也能夠直接在crontab裏面,將執行的結果輸出一個文件當中。而後在這個文件當中查看執行狀況。例如:redis

[plain] view plain copysql

 

  1. */10 * * * * /usr/local/php/bin/php /var/www/cron/del_redis.php >> /home/zhangy/cron.txt  

 

3,用crontab來執行php,是不走apache,nginx,因此$_SERVER,$_ENV這類變量根本用不了。因此檢查一下php代碼中有沒有這類變量,若是有拿掉。apache

4,php的相對路徑問題app

由於有思惟定勢在作怪,這個問題也是最容易忽視的。函數

[plain] view plain copyspa

 

  1. include_once'./mysql.php';  

 

當php代碼中,用的是相對路徑時,只有進入到那個目錄下執行/usr/local/php/bin/php /var/www/cron/level_rank.php才能生效。這個問題我遇到過至少二次,可是再遇到時仍是想不起來。.net

解決方法以下:

[plain] view plain copy

 

  1. */10 * * * * cd /var/www/cron && /usr/local/php/bin/php /var/www/cron/level_rank.php  

 

或者

在php代碼中用絕對路徑

相關文章
相關標籤/搜索