linux下使用crontab实现定时PHP计划任务失败的原因分析

yipeiwu_com7年前PHP代码库

很多人在linux下使用crontab实现PHP执行定时任务却未能成功,不能生成缓存。本文就linux下使用crontab实现定时PHP计划任务失败的原因做一分析。

一般我们linux定时执行php代码例如:

*/5 * * * * /usr/local/php/bin/php /home/wwwroot/1.php

其实这样是可以执行php代码的。

但是为什么很多朋友在1.php写的生成一个缓存文件没有生成呢?

这个要涉及到crontab执行php的相对路径问题.

注意在执行文件中,有包含文件的,如:

include_once'./mysql.php'; 

当php代码中,用的是相对路径时,只有进入到那个目录下,

然后执行/usr/local/php/bin/php /home/wwwroot/1.php 才能引用mysql.php生效。

解决方法如下:

*/10 * * * * cd /home/wwwroot && /usr/local/php/bin/php /home/wwwroot/1.php

同时也这样缓存才能生成在 /home/wwwroot。此处需要特别注意!

这是大部分写的所谓linux定时执行php没有提到的,也最容易产生误区的。

当然方法还有很多,还可以设置环境变量之类的。这个只是一个简单的方法。

相关文章

浅谈PHP安全防护之Web攻击

SQL注入攻击(SQL Injection) 攻击者把SQL命令插入到Web表单的输入域或页面请求的字符串,欺骗服务器执行恶意的SQL命令。在某些表单中,用户输入的内容直接用来构造(或者...

Eclipse中php插件安装及Xdebug配置的使用详解

Eclipse中php插件安装及Xdebug配置的使用详解

由于在android开发团队,又迷上了android自动化测试,所有一直使用Eclipse做为开发工具。以前使用Zend Studio 9.0.1做为PHP的开发工具,现在放弃使用Zen...

PHP延迟静态绑定示例分享

没怎么用过这个新特性,其实也不算新啦,试试吧,现在静态类的继承很方便了 <?php class A { protected static $def = '123456...

PHP使用socket发送HTTP请求的方法

本文实例讲述了PHP使用socket发送HTTP请求的方法。分享给大家供大家参考,具体如下: socket方式: $socket = socket_create(AF_INET, S...

PHP整合PayPal支付

简单整理一下PHP项目整合PayPal支付功能。 一、表单的构建: <form method="post" name="form" action="https://www.pa...