网管联盟 | 网管论坛 | 网管u家 | 网管博客 | 网管软件 | 网管求职 | 小游戏 | 网管搜索 | 网管原创 | 网管聚合 | 网管读摘 | 网管焦点 | 世界素材 | 会员投稿 | 会员中心 
中国网管联盟
Windows Linux Cisco 网络技术 数据库 黑客攻防 DotNet Java PHP 认证 新闻资讯 服务器 存储资讯 网络设备 网管学堂 技术专题 焦点 网吧频道
 当前位置: > bitsCN.com > linux > 网络管理 > Linux服务器 > linux系统下cron运行php程序  

linux系统下cron运行php程序

2008-07-13  作者:bitsCN整理  来源:中国网管联盟  点评 投稿 收藏

    最近我碰到了一个问题:我需要触发一个php脚本来定时给我发邮件。可是,这个脚本是另一个脚本的一部份,用到了很多includes命令,同时也有很多库文件使用了includes命令。
    一般情况下,触发一个php脚本无话可说,你需要做的便是在服务器上设置一个如下的crontab
    /bin/local/php /path/to/your/php/script.php
    这就是了,无论你是否愿意,script.php这个脚本文件将由crontab自动运行
    可是,问题就来了:当bash运行一个cron的时候,不会通过Apache,当然了,还有它的参数,include_paths等等。所以呢,php将会在/bin/local/php目录下找文件,当然找不到。
    所以,遇见这种情况,按照下面的方法做:
    在终端上输入如下命令得到sh 和 lynx 程序的路径:
    whereis sh
    whereis lynx
    or
    which sh
    which lynx
    随便输入一个,其中便会返回你要的路径。如果你的系统里没有lynx,试试links,w3m,或者 links2,这些是其它的文本模型浏览器。这些浏览器将会运行你的脚本。

网管u家u.bitsCN.com

    然后你需要创建一个sh文件,用它来调用php文件,通过lynx。假设你的服务器已经安装了lynx,sh路径为 /bin/sh,lynx路径为 /usr/local/bin/lynx
    #!/bin/sh

网管联盟bitsCN@com

    /usr/local/bin/lynx -source http://www.yoursite.com/folder/script.php
    注意感叹号
    把这个脚本保存为cron-lynx.sh
    保存到一个你找得到的地方,比如:
    /usr/www/yourdirectory/sh_scripts/
    我个人比较喜欢放在网站根目录。
    然后再创建一个script.php的文件。当cron运行的时候,将会通过lynx来调用它。这个文件可以通过浏览器来访问。我的这个很简单:
    // I'm assuming you've already set your include path
    include( 'includes/stuff/another_script.inc' );
    another_program();
    ?>
    然后我编辑主机的crontab,像下面这样。
    /bin/sh /usr/www/yourdirectory/sh_scripts/cron-lynx.sh
    在/bin/sh 和 /usr 间有空格。就这样就设好了,还有一点要注意的是,你的sh文件和php文件都正确无误。

网管有家www.bitscn.net

TAGs
 上一篇:Apache下的目录共享访问和认证   下一篇:Ubuntu8.04快速搭建nginx+php系统
linux系统下cron运行php程序 评论:
loading.. 评论加载中…
评论:请自觉遵守互联网相关政策法规,评论不得超过250字。

验证码: 注册用户
本类热门排行:
最新推荐文章:
网管论坛交流: