crontab不执行php怎么办

藏色散人
풀어 주다: 2023-03-03 11:32:01
원래의
2651명이 탐색했습니다.

crontab不执行php的解决办法:1、在php程序里面写log;2、在crontab里面,将执行的结果输出一个文件当中;3、用crontab来执行php;4、在php代码中用绝对路径。

crontab不执行php怎么办

推荐:《PHP教程

crontab无法执行php的解决方法

用crontab跑php程序时,如何去调试,各人有各人的方法。我也有套方法,看一下,我是如何解决crontab执行不了php程序这个问题的。

一、php文件有没有执行权限

代码如下:

[root@linux cron]# ls -al |grep del
 -rwxr-xr-x  1 zwh  ftpgroup  494 10-20 16:42 del_redis.php
로그인 후 복사

如果没有X,说明没有执行权限,当然也执行不了。如果你不知道你登录的用户所在的组是不是有权限,直接给所有组都加上权限就行了。方法如下:

代码如下:

[root@linux cron]# chmod +x ./del_redis.php
로그인 후 복사

二、如果有执行权限了,还是执行不了

解决方法如下:

1. 在php程序里面写log(例如:error_log()这个函数),这也是必须的,因为crontab定时执行,要是没有log,你怎么知道程序执行的结果怎么样。这样我们可以通过log来查看crontab执行的情况。

2. 也可以直接在crontab里面,将执行的结果输出一个文件当中。然后在这个文件当中查看执行情况。例如:

代码如下:

*/10 * * * * /usr/local/php/bin/php /var/www/cron/del_redis.php >> /home/zhangy/cron.txt
로그인 후 복사

3. 用crontab来执行php,是不走apache,nginx,所以$_SERVER,$_ENV这类变量根本用不了。所以检查一下php代码中有没有这类变量,如果有拿掉。

4. php的相对路径问题

因为有思维定势在做怪,这个问题也是最容易忽视的。

代码如下:

include_once'./mysql.php';
로그인 후 복사

当php代码中,用的是相对路径时,只有进入到那个目录下执行/usr/local/php/bin/php /var/www/cron/level_rank.php才能生效。这个问题我遇到过至少二次,但是再遇到时还是想不起来。

解决方法如下:

代码如下:

*/10 * * * * cd /var/www/cron && /usr/local/php/bin/php /var/www/cron/level_rank.php
로그인 후 복사

或者 在php代码中用绝对路径

위 내용은 crontab不执行php怎么办의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!