Ada beberapa hal yang perlu Anda pahami dalam hal ini.
Yang pertama adalah PHP dapat dijalankan sebagai web server module
atau sebagai standalone executable
. Saat Anda menjalankannya sebagai modul server web, Anda membukanya dari browser, semua teknologi web terkait (html/css/js)
dll diurai dan bekerja bersama.
Ketika Anda menjalankannya dari baris perintah menggunakan cron seperti katakan /usr/bin/php mywebpage.php
maka php yang dapat dieksekusi TIDAK mengurai/memahami teknologi web lain sehingga halaman Anda akan gagal.
Ada dua solusi untuk ini:
-
Tulis ulang hanya bagian-bagian yang mendukung web sehingga hal-hal ajax/js ditangani oleh PHP. Pada dasarnya aturan praktisnya adalah jika Anda menjalankan skrip php CLI, skrip tersebut harus berisi HANYA inti PHP. Ini adalah cara yang disukai. Anda perlu memindahkan panggilan ajax ke dalam file yang sama dan membuatnya menjadi satu aliran eksekusi seperti program biasa.
-
Jika karena alasan tertentu Anda tidak dapat melakukan hal di atas, Anda dapat mencoba sesuatu seperti ini:
/path/to/browser http://mysite/mywebpage.php
. Di sini yang Anda lakukan adalah, Anda menjalankan browser yang dapat dieksekusi dan kemudian memanggil URL halaman web. Dengan cara ini halaman dijalankan dalam lingkungan browser dan akan dapat menguraikan dan memahami panggilan ajax/js.