统一服务器 cron 不执行 php 脚本

统一服务器 cron 不执行 php 脚本

我正在运行 Uniform Server Zero XIV,并尝试使用 cron 每 15 分钟运行一次 php 脚本。手动运行时,脚本会执行其应执行的操作,即更新数据库中的值。但是,cron 似乎从未真正执行过该脚本。

cron日志表明crontab具有正确的路径并且正在执行。

10/06/2021 12:53:08  - Run OK --- C:\Users\myuser\Zero\UniServerZ\www\database\cronUpdate.php

cron 配置使用绝对路径。

[update]
start = 2021-05-14 8:00:00
period = 300
path = \www\database\cronUpdate.php
ref    = 1623329287

这是我尝试执行的 php 文件。本质上,它提取 mysql 数据库中的所有主机名并将它们发送到更新函数。更新函数提取有关单元的 API 信息并相应地更新 mysql 数据库,但不返回。

    include_once '../database/dbh.php';
    
    # Get all hostnames
    $sql = "SELECT hostname FROM units;";
        
    $result = mysqli_query($conn, $sql);
    
    
    while($row = mysqli_fetch_array($result)) {
                        
        # Add all units to formdata to be submitted
        $data['formData'][] = $row['hostname'];
                    
    }
    
    $fields = http_build_query($data);
    
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, "http://localhost/database/dbUpdate.php");
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $fields);
    $cResult = curl_exec($ch);
    
    curl_close($ch);

我尝试在配置中使用 URL,但同样不起作用。我还尝试将更新文件写入执行日志,但什么都没写出来,这说明 cron 无法执行此脚本。您知道 cron 无法执行此脚本的原因吗?用其他语言编写此脚本是否值得?

据记录,服务器正在运行 php 8.0.3 和 mysql 8.0.23

答案1

尝试将路径更改为:

路径 = http://www/database/cronUpdate.php

相关内容