Ci sono alcune cose che devi capire a questo proposito.
La prima è che PHP può essere eseguito sia come web server module
o come standalone executable
. Quando lo esegui come modulo server web, lo apri dal browser, tutte le tecnologie web correlate (html/css/js)
ecc vengono analizzati e lavorano all'unisono.
Quando lo esegui dalla riga di comando usando cron come dire /usr/bin/php mywebpage.php
quindi l'eseguibile php NON analizza/comprende le altre tecnologie web e quindi la tua pagina fallirà.
Ci sono due soluzioni alternative per questo:
-
Riscrivi solo quelle parti abilitate al Web in modo che le cose ajax/js vengano gestite da PHP. Fondamentalmente la regola pratica è che se stai eseguendo uno script php CLI, dovrebbe contenere SOLO PHP di base. Questo è il modo preferito. Dovrai spostare le chiamate ajax all'interno dello stesso file e renderlo un unico flusso di esecuzione come qualsiasi programma normale.
-
Se per qualche motivo non riesci a fare quanto sopra, puoi provare qualcosa come questo:
/path/to/browser http://mysite/mywebpage.php
. Qui quello che stai facendo è eseguire un eseguibile del browser e quindi chiamare l'URL della pagina web. In questo modo la pagina viene eseguita nell'ambiente del browser e sarà in grado di analizzare e comprendere le chiamate ajax/js.