Autor | Zpráva | ||
---|---|---|---|
luma64 Profil |
#1 · Zasláno: 20. 7. 2020, 19:41:52
Pozdravujem ! Spúšťam cronom php script s parametrom. Script , keď spustím z prehliadača samozrejme zafunguje. Viem, že spúšťanie scriptu a z crontabu má rozdielne nastavenia. Problém je, keď sa ten istý script spúšťa (raz za hodinu). Vtedy sa script nevykoná, takto vyzerá príkaz:
Could not open input file: /adr1/adr2/nejaky_kod.php/?parameter=hodnota Ďakujem za radu ! |
||
mckay Profil |
#2 · Zasláno: 20. 7. 2020, 20:09:33
luma64:
Uživatel pod kterým se CRON spouští nemá (nejspíš execute/x) práva na ten soubor, co chcete spouštět. A nebo ta cesta, co uvádíte neexistuje z pohledu uživatele pod kterým je crontab nastavenej. |
||
luma64 Profil |
#3 · Zasláno: 20. 7. 2020, 20:20:41
Do nedávna sa spúšťal script pod tým istým užívateľom , pridal som iba:
/?parameter=hodnota |
||
mckay Profil |
#4 · Zasláno: 20. 7. 2020, 20:49:13
luma64:
Potom mě napadá jestli náhodou nejde o to, že se to snaží najít složku /adr1/adr2/nejaky_kod.php/ , a v ní soubor index.php . Když tu volanou adresu přeformulujete na /adr1/adr2/nejaky_kod.php?parameter=hodnota nezačne Vám to náhodou fungovat?
|
||
Davex Profil |
#5 · Zasláno: 20. 7. 2020, 21:33:52
luma64:
Podle chyby se skript spouští přímo pomocí programu PHP, kde se musí parametry používat jinak než při volání skriptu skrz webserver. Viz www.php.net/manual/en/features.commandline.usage.php |
||
luma64 Profil |
Vďaka všetkým ! Takže správne to má byť na strane cronu, bez parametra s otáznikom, teda nie ako zvyčajne v php :
/adr1/adr2/nejaky_kod.php "nejaka_hodnota" $_GET['vstup'] = $argv[1];
a potom už môžem s dodanou hodnotou pracovať. |
||
mckay Profil |
#7 · Zasláno: 21. 7. 2020, 18:20:09
To je jedna možnost. Pokud ale stále budete chtít mít možnost pouštět skript i přes web adresu, tak by dávalo smysl přes
isset() kontrolovat přítomnost toho $_GET['vstup'] a v závislosti na tom, jestli je to nastavené buď vracet tu hodnotu, nebo argv pokud ne. Použil bych tam pro tu kontrolu asi tzv. Ternární operátor.
|
||
Keeehi Profil |
<?php if (PHP_SAPI === 'cli') { // konzole (neboli cron), tudíž $vstup = $argv[1]; } else { // browser, tudíž $vstup = $_GET['vstup']; } |
||
Časová prodleva: 4 roky
|
0