Det finns vissa saker du behöver förstå i detta avseende.
Den första är att PHP kan köras antingen som en web server module
eller som en standalone executable
. När du kör den som en webbservermodul öppnar du den från webbläsaren, alla relaterade webbteknologier (html/css/js)
etc bli analyserad och arbeta unisont.
När du kör det från kommandoraden med cron som säg /usr/bin/php mywebpage.php
då tolkar/förstår INTE den körbara php-filen de andra webbteknologierna och din sida kommer att misslyckas.
Det finns två lösningar för detta:
-
Skriv bara om de webbaktiverade delarna så att ajax/js-grejer hanteras av PHP. En tumregel är att om du kör ett CLI php-skript, bör det ENDAST innehålla PHP-kärnan. Detta är det föredragna sättet. Du måste flytta ajax-anropen till samma fil och bara göra det till ett enda exekveringsflöde som vilket vanligt program som helst.
-
Om du av någon anledning inte kan göra ovanstående kan du prova något i stil med detta:
/path/to/browser http://mysite/mywebpage.php
. Här är vad du gör är att du kör en webbläsare och sedan anropar webbsidans URL. På detta sätt exekveras sidan i webbläsarens miljö och den kommer att kunna analysera och förstå ajax/js-anropen.