[英]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.