当前位置: 首页 > 图文教程 > 服务器 > Linux服务器 > linux系统下cron运行php程序

Linux服务器
apache urlrewrite防盗链功能配置
实战 LAMP 服务器配置 完整篇
tomcat 5.5连接池配置,如何让工程为默认工程
搭建一个大型网站架构的实验环境(Squid缓存服务器篇)
Windows 配置Apache以便在浏览器中运行Python script的CGI模式
Apache 网站速度更快
ubuntu lighttpd+webpy (fastcgi)配置方法
linux 入侵常用命令汇编
Linux 快速定位web路径方法
winxp apache用php建本地虚拟主机的方法
Apache 多站点虚拟主机配置方法
redhat Server release 5.2 安装配置简明教程
Ubuntu Linux系统下轻松架设nginx+php服务器应用
Linux Apache+Proftpd构建虚拟主机时要注意的几个安全问题
Linux 服务器同步 Rsync同步服务器文件
APACHE 多站点配置方法
基于Apache的支持.NET2.0的Web服务器搭建
Ubuntu 下配置Rsync服务的方法
利用rsync自动备份 完全配置方法 增加了ip限制
Linux 每天自动备份mysql数据库的方法

Linux服务器 中的 linux系统下cron运行php程序


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-18   浏览: 108 ::
收藏到网摘: n/a

最近我碰到了一个问题:我需要触发一个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程序的路径:
whereissh
whereislynx
or
whichsh
whichlynx
随便输入一个,其中便会返回你要的路径。如果你的系统里没有lynx,试试links,w3m,或者links2,这些是其它的文本模型浏览器。这些浏览器将会运行你的脚本。
然后你需要创建一个sh文件,用它来调用php文件,通过lynx。假设你的服务器已经安装了lynx,sh路径为/bin/sh,lynx路径为/usr/local/bin/lynx
#!/bin/sh

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