1 votes

Uniform Server cron n'exécute pas le php script

J'utilise Uniform Server Zero XIV et j'essaie d'utiliser le cron pour exécuter un script php script toutes les 15 minutes. Lorsqu'il est exécuté manuellement, le script fait ce qu'il est censé faire, c'est-à-dire mettre à jour les valeurs dans une base de données. Cependant, le cron ne semble jamais exécuter réellement le script.

Le journal cron indique que la crontab a le bon chemin et s'exécute.

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

La configuration du cron utilise un chemin absolu.

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

Voici le fichier php que j'essaie d'exécuter. Essentiellement, il récupère tous les noms d'hôtes dans la base de données mysql et les envoie à une fonction de mise à jour. La fonction de mise à jour tire des informations API sur les unités et met à jour la base de données mysql en conséquence, sans retour.

    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);

J'ai essayé d'utiliser une url dans la configuration, mais cela ne fonctionne pas non plus. J'ai également essayé que le fichier de mise à jour écrive dans un journal à l'exécution et rien n'est jamais écrit, ce qui me dit que le cron ne peut pas exécuter ce script. Une idée sur la raison pour laquelle le cron ne peut pas exécuter ce script ? Cela vaudrait-il la peine d'écrire ce script dans un autre langage ?

Pour mémoire, le serveur fonctionne avec php 8.0.3 et mysql 8.0.23.

-2voto

Reza Points 564

Essayez de changer le chemin pour :

chemin = http://www/database/cronUpdate.php

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X