În mybox, managerul de sarcini CRON nu acceptă transmiterea directă a parametrilor către scripturile PHP. Aceasta înseamnă că nu puteți defini argumente de linie de comandă într-o intrare CRON standard.
Pentru a obține același rezultat, puteți folosi o soluție simplă, creând un fișier PHP intermediar care setează parametrii înainte de a include scriptul țintă.
Cuprins
De ce parametrii nu sunt acceptați în CRON
Sarcinile CRON execută comenzi predefinite la intervale programate. În acest mediu, managerul CRON nu interpretează argumente suplimentare ale scripturilor, ceea ce limitează transmiterea directă a parametrilor către scripturile PHP.
Pentru a ocoli această limitare, parametrii pot fi simulați în interiorul PHP.
Soluție: utilizarea unui fișier PHP de înveliș
În loc să apelați direct scriptul țintă, creați un al doilea fișier PHP care definește parametrii și apoi încarcă scriptul principal.
Pasul 1: Creați un fișier wrapper
Creați un fișier PHP nou, de exemplu:
cron-wrapper.php
Adăugați următorul conținut:
<?php
$_SERVER["argv"][1] = "13"; // exemplu de primul parametru
$_SERVER["argv"][2] = "13"; // exemplu de al doilea parametru
// adăugați mai mulți parametri dacă este necesar
// $_SERVER["argv"][3] = "valoare";
include "script.php"; // scriptul țintă
Acest fișier simulează argumente de tip CLI în mediul PHP.
Pasul 2: Modificați scriptul principal
Scriptul dvs. principal (script.php) poate acum accesa aceste valori folosind:
$_SERVER["argv"]
Acest lucru permite scriptului să se comporte ca și cum ar fi fost executat cu parametri.
Pasul 3: Adăugați fișierul wrapper la CRON
În panoul mybox:
- Deschideți managerul CRON
- Creați o nouă sarcină CRON
- Selectați sau specificați fișierul wrapper (
cron-wrapper.php) - Setați programul de execuție dorit
- Salvați sarcina
Sistemul CRON va executa acum fișierul wrapper, care transmite parametrii către scriptul principal.
Implicații practice
Această abordare:
- permite transmiterea simulată a parametrilor în CRON
- menține configurația CRON simplă
- centralizează logica în fișierele PHP
Cu toate acestea, parametrii trebuie definiți manual în fișierul wrapper, deoarece CRON în sine nu transmite argumente dinamice.
Rezumat
Deoarece CRON din mybox nu acceptă transmiterea directă a parametrilor către scripturile PHP, se poate utiliza un fișier PHP de înveliș pentru a defini parametrii și a include scriptul principal. Acest lucru permite executarea controlată a scripturilor cu valori personalizate.