最近我碰到了一个问题:我需要触发一个php脚本来定时给我发邮件。可是,这个脚本是另一个脚本的一部份,用到了很多includes命令,同时也有很多库文件使用了includes命令。
/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,这些是其它的文本模型浏览器。这些浏览器将会运行你的脚本。
然后你需要创建一个sh文件,用它来调用php文件,通过lynx。假设你的服务器已经安装了lynx,sh路径为 /bin/sh,lynx路径为 /usr/local/bin/lynx
#!/bin/sh
/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文件都正确无误。
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
相关专题
- 系统优化大全 (19237篇文章)
- 系统安全设置 (25080篇文章)
- 系统安装手册 (22090篇文章)
- 系统备份专题 (18643篇文章)
- Linux集群技术 (9427篇文章)
- 体验Linux的音影世界 (9082篇文章)
- Linux驱动大全 (9919篇文章)
- Linux下的路由的配置与应用 (13070篇文章)
- PHP开发应用手册 (3011篇文章)
- Linux命令简介 (11024篇文章)
- (498次浏览)Ubuntu 8.04 中开启3D桌面特效与设置方法
- (130次浏览)七大操作系统一季度漏洞比拼
- (115次浏览)用 Wubi 安装 Ubuntu 8.04 只需五步
- (106次浏览)实用技巧 从硬盘安装Fedora-9-i386-DVD
- (75次浏览)Ubuntu 8.04 中的彩蛋(图)
- (56次浏览)U盘及硬盘安装、配置、中文化 Puppy linux 4.
- (48次浏览)Fedora Linux系统Samba服务器架设全攻略
- (45次浏览)苹果演示Android新功能 可使用谷歌街景
- (44次浏览)OpenSolaris 2008.05版 初体验
- (38次浏览)Ubuntu Linux Apache虚拟主机的安装配置



