当前位置: 首页 > 图文教程 > 网络编程 > PHP > php cli 方式 在crotab中运行解决

PHP
PHP新手上路(九)
来自PHP.NET的入门教程
PHP新手上路(十)
Apache, PHP在Windows 9x/NT下的安装与配置 (二)
别人整理的服务器变量:$_SERVER
APMServ使用说明
《APMServ 5.1.2》使用图解
一个可以找出源代码中所有中文的工具
php.ini 中文版
MYSQL数据库初学者使用指南
第一节--面向对象编程
第二节--PHP5 的对象模型
第三节--定义一个类
第四节--构造函数和析构函数
第五节--克隆
第六节--访问属性和方法
第七节--类的静态成员
第八节--访问方式
第九节--绑定
第十节--抽象方法和抽象类

PHP 中的 php cli 方式 在crotab中运行解决


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2010-02-27   浏览: 235 ::
收藏到网摘: n/a

使用php脚本写了一个脚本,需要在crontab中定期运行,但是出现如下错误
复制代码 代码如下:

/var/www/html/bt/e/BtSys:.:/usr/share/pear:/usr/share/phpPHP Warning: require(../class/connect.php): failed to open stream: No such file or directory in /var/www/html/bt/e/BtSys/torrents-scrape.php on line 17
PHP Fatal error: require(): Failed opening required '../class/connect.php' (include_path='/var/www/html/bt/e/BtSys:.:/usr/share/pear:/usr/share/php') in /var/www/html/bt/e/BtSys/torrents-scrape.php on line 17

尝试解决方法1 加入如下代码
代码
复制代码 代码如下:

// setting include path
$cur_dir=getcwd();
$cur_dir=$basedir = dirname(__FILE__);
$path = ini_get('include_path');
ini_set("include_path", "$cur_dir:$path");
$path = ini_get('include_path');
//echo $path;
require(../class/a.php)
require(../class/b.php)
...............

运行失败
尝试解决方法2 加入如下代码
复制代码 代码如下:

$cur_dir = dirname(__FILE__);
chdir($cur_dir);
require(../class/a.php)
require(../class/b.php)

运行成功
总结: 在require 时,如果是相对目录,在crontab 中运行php脚本,要进入到脚本所在目录才可以