[英]Running php script using crontab on Windows wont work
如果我在浏览器上设置脚本,一切正常。 来自crontab的代码
* * * * * c:\xampp\php\php.exe -q c:\xampp\htdocs\abc\sleep.php
PHP脚本
sleep.php
<?php
require_once( "./sleep2.php");
$abc = new Registration();
$abc->register();
?>
sleep2.php
<?php
require_once("./config.php");
class Registration
{
private $spojenie;
function __construct()
{
$this->spojenie = new mysqli(db_host, db_user, db_pass, db_database);
}
public function register()
{
$insertPlayer = $this->spojenie->query("insert into skuska(nick, rank) values('shock',12,12)");
return true;
}
}
?>
还有一个问题。 如果我打开php.exe(命令行窗口)并放置一些命令(-h),则什么也没有发生。 可以吗
也许您的php.exe没有使用适当的配置? 尝试c:\\ xampp \\ php \\ php.exe -c C:\\ path \\ to \\ php.ini c:\\ xampp \\ htdocs \\ abc \\ sleep.php
提示:键入php.exe --ini以获得php解释器将研究的所有配置文件的列表。
而且我不知道-q标志做什么。
php --help | egrep -e '-q'
在我的Ubuntu上什么也没产生。
就像Sarwar Erfan一样,不知道如何在Windows上运行cronjobs。 也许您应该改用Windows Schedule Manager? 它支持标志。
不确定它在Windows中如何工作,但是在Linux中cron从用户的homedir运行任务。 因此,sleep.php的当前工作目录将不是该文件的存储目录。 在这种情况下,您必须在脚本中使用绝对路径。 我认为FILE或DIR将帮助您。 看看这里http://php.net/manual/en/language.constants.predefined.php了解详细信息
通过调用chdir(dirname(__FILE__));
确保您在正确的目录中chdir(dirname(__FILE__));
在您的脚本中,然后再包含任何内容。 否则, require()
调用可能会失败。
因此1,我将crontab更改为:
c:\xampp\php\php.exe -c C:\path\to\php.ini c:\xampp\htdocs\abc\sleep.php
2,php.exe --ini
返回配置文件(php.ini)路径: C:\\Windows
加载的配置文件: C:\\xampp\\php\\php.ini
扫描(无)中的其他.ini文件
已解析其他.ini文件(无)
3,我更改了要求include(dirname(__FILE__)."....."
4,起作用:D:D:D:D
5,我正在考虑停止使用需求。
谢谢大家。 你真的帮了我
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.