用crontab执行php

Ste*_*nno 20 php crontab

我正在尝试按计划运行php脚本.所以我认为crontab是个好主意.我正在使用的服务器是在Linux上,我并不熟悉.所以我遇到的问题是,我不知道如何使脚本可以从PHP执行.我需要引用脚本,或将其放入可以从命令行运行php的文件夹中.所以我不知道给我的crontab提供什么路径,例如:

5  * * * * var/www/some/path/script.php
Run Code Online (Sandbox Code Playgroud)

我发现了一些关于这个php可执行文件的模糊信息

/usr/bin/php
Run Code Online (Sandbox Code Playgroud)

但我在那里找不到任何php文件,也许我没有安装它?我的php5和apache安装在:

/etc/php5
Run Code Online (Sandbox Code Playgroud)

所以我的问题变成了,无论如何在任何其他文件夹中执行带有crontab的php脚本,或者我只是缺少usr/bin/php中的php可执行文件?

ric*_*age 30

首先在命令行输入:

whereis php

执行此操作作为将运行cron作业的用户.这将显示可执行文件的路径.然后,您可以在cron条目中使用该路径(如果它不在您的PATH变量中):

5 * * * * /your/path/to/php /var/www/some/path/script.php

编辑:如果安装php5-cli了Apache PHP模块,则可能需要安装(Ubuntu软件包名称)软件包.这将为您提供可以从命令行运行的二进制可执行文件.

  • 您还可以在命令行中使用"which php" (5认同)

Eti*_*tin 6

您可以在本地使用 wget 命令:

5  * * * * wget http://localhost/some/path/script.php
Run Code Online (Sandbox Code Playgroud)


rub*_*ots 5

这是一个Linux系统吗?

在较新的Linux发行版中,
实际上有一个方便的crontab-setup系统
,用户不需要在crontab中输入任何内容.例如,在SuSE Linux中,您有目录

/etc/cron.hourly/
/etc/cron.daily/
/etc/cron.monthly/
/etc/cron.weekly/
Run Code Online (Sandbox Code Playgroud)

只需将调用脚本(konno_php_start)放在任何这些目录中,例如

/etc/cron.hourly/konno_php_start
Run Code Online (Sandbox Code Playgroud)

这是可执行的(chmod 755左右)并包含:

#!/bin/sh
cd /var/www/some/path/
php  script.php >> logfile.txt 2>&1
Run Code Online (Sandbox Code Playgroud)

并重新启动cron守护程序.而已.

从日志文件中,您将看到是否
可以在PATH中找到您的php解释器.如果没有,请将/etc/cron.hourly/konno_php_start中的行更改为

/full/path/to/php  script.php >> logfile.txt 2>&1
Run Code Online (Sandbox Code Playgroud)

问候

RBO


tec*_*ker 5

我必须找到跟踪路径才能找到可执行文件:

andy@ararat:~$ type php
php is /usr/bin/php

andy@ararat:~$ file /usr/bin/php
/usr/bin/php: symbolic link to `/etc/alternatives/php'

andy@ararat:~$ file /etc/alternatives/php
/etc/alternatives/php: symbolic link to `/usr/bin/php5'

andy@ararat:~$ file /usr/bin/php5
/usr/bin/php5: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.15, stripped
Run Code Online (Sandbox Code Playgroud)

所以你需要包含/ usr/bin/php5作为php可执行文件的路径,如下所示:

andy@ararat:~$crontab -e
#*/1 * * * * /usr/bin/php5 /home/andy/www/dev.com/corp_rewards_cron.php
Run Code Online (Sandbox Code Playgroud)