Hay ciertas cosas que debe comprender a este respecto.
La primera es que PHP se puede ejecutar como un web server module
o como un standalone executable
. Cuando lo ejecuta como un módulo de servidor web, lo abre desde el navegador, todas las tecnologías web relacionadas (html/css/js)
etc. se analizan y funcionan al unísono.
Cuando lo ejecuta desde la línea de comando usando cron como decir /usr/bin/php mywebpage.php
entonces el ejecutable php NO analiza/entiende las otras tecnologías web y por lo tanto su página fallará.
Hay dos soluciones para esto:
-
Vuelva a escribir solo las partes habilitadas para la web para que PHP maneje las cosas de ajax/js. Básicamente, la regla empírica es que si está ejecutando un script php CLI, debe contener SÓLO el núcleo PHP. Esta es la forma preferida. Deberá mover las llamadas ajax dentro del mismo archivo y simplemente convertirlo en un flujo de ejecución único como cualquier programa normal.
-
Si por alguna razón no puede hacer lo anterior, puede intentar algo como esto:
/path/to/browser http://mysite/mywebpage.php
. Aquí lo que está haciendo es ejecutar un ejecutable del navegador y luego llamar a la URL de la página web. De esta manera, la página se ejecuta dentro del entorno del navegador y podrá analizar y comprender las llamadas ajax/js.