Der er visse ting, du skal forstå i denne forbindelse.
Den første er, at PHP kan køres som enten et web server module
eller som en standalone executable
. Når du kører det som et webservermodul, åbner du det fra browseren, alle relaterede webteknologier (html/css/js)
osv. blive analyseret og arbejde sammen.
Når du kører det fra kommandolinjen ved hjælp af cron, f.eks. siger /usr/bin/php mywebpage.php
så parser/forstår den eksekverbare php IKKE de andre webteknologier, og din side vil derfor fejle.
Der er to løsninger til dette:
-
Omskriv kun de web-aktiverede dele, så ajax/js-tingene bliver håndteret af PHP. Grundlæggende er tommelfingerreglen, at hvis du kører et CLI php-script, skal det KUN indeholde kerne-PHP. Dette er den foretrukne måde. Du bliver nødt til at flytte ajax-kaldene til den samme fil og bare gøre det til et enkelt eksekveringsflow som ethvert almindeligt program.
-
Hvis du af en eller anden grund ikke kan gøre ovenstående, kan du prøve noget som dette:
/path/to/browser http://mysite/mywebpage.php
. Her er, hvad du gør, at du kører en browser eksekverbar og derefter kalder websidens URL. På denne måde udføres siden i browserens miljø, og den vil være i stand til at parse og forstå ajax/js-kaldene.