Menjalankan Script PHP lewat Cron CPanel

Dalam pembuatan aplikasi web, kadang ada bagian program yang harus berjalan rutin setiap periode tertentu. Contoh realnya misalkan script yang mengirimkan email produk terbaru ke customer setiap harinya. Contoh lainnya misalkan mengirimkan status resource server ke email admin, melakukan backup otomatis, menghapus transaksi penjualan yang tidak dibayar (seperti tiket pesawat atau kereta api) dan sejenisnya.

Cron adalah service di Cpanel webhosting yang fungsinya mengeksekusi script secara periodik. Periodik bisa permenit, per 5 menit, perjam, perhari dan seterusnya. Cron pada dasarnya adalah perintah command line di Linux dan UNIX. Mengingat Webhosting PHP  menggunakan Linux dengan Kontrol Panel CPanel, maka pihak CPanel memudahkan kita dalam mengotomatisasi proses di webhosting dan menjalankan logic bisnis website tanpa campur tangan manusia.

Langsung saja, kasus berikut ini saya berikan contoh sederhana. Setiap 5 menit script akan memasukan data mahasiswa kedalam tabel mahasiswa. Yah, contohnya kurang realistis memang, namun yang saya targetkan anda paham dengan ide dan implementasi cron itu sendiri.

Contoh script PHP

	define('db_host','localhost');
	define('db_user','usernamedb');
	define('db_pass','passworddb');
	define('db_name','namadb');
	
	mysql_connect(db_host,db_user,db_pass);
	mysql_select_db(db_name);
$sql="insert into mahasiswa(nim,nama,ipk,jurusan,waktu) values('1234','candra','3.00','TI',now())";
mysql_query($sql) or die(mysql_error());	

 

Langkah langkah

1. Buka CPanel dan klik icon Cron Job di bagian Advanced

lalu pilihlah periode script dijalankan setiap berapa ? Lihat screenshoot

cronjob

Setelah menseting periodenya (dalam contoh script php akan di eksekusi setiap 5 menit ), perhatikan bagian Command

Command

/usr/bin/php -q /home/namauser/public_html/demo.php>/home/namauser/cronlog.txt

note:

/user/bin/php  adalah letak file biner PHP. ada kemungkinan lokasi PHP di server anda berbeda, jika tidak tahu lokasinya, silahkan hubungi pihak webhosting

-q  merupakan parameter php yang artinya quite (tidak cerewet) artinya kalo ada error tidak akan kesimpan di log. parameter -q opsional

/home/namauser/public_html/demo.php 

letak script yang akan di eksekusi.  namauser adalah nama login cpnanel anda. Script disini tidak perlu harus php, sembarang script bisa dijalankan asal server mendukung. Contohnya adalah shellcript, Perl atau Python bisa di eksekusi oleh cron. Bahkan mysqldump untuk membackup database pun bisa dieksekusi disini

>/home/namauser/cronlog.txt

 tanda lebih dari artinya output dari script (jika ada) simpan di file cronlog.txt . Log ini sangat bermanfaat jikalau ada error di script atau untuk memastikan script berjalan sebagaimana mestinya.