Thursday, January 14, 2010

Menjalankan PHP dari perintah baris

Karena alasan-alasan tertentu, saya perlu menjalankan skrip PHP dari perintah baris pada Terminal Fedora 11. Nantinya skrip PHP ini akan dijalankan secara periodik, katakan setiap 5 menit. Tentunya melalui bantuan crontab. Skrip PHP pada dasarnya sudah bisa dijalankan dari web browser. Namun output web browser tidak bisa disimpan dalam sebuah file ASCII atau TXT. Sementara saya maunya, outputnya bisa langsung disimpan (redirect output) ke dalam sebuah file text. Dan kalau bisa secara APPEND.

Contoh file atau skrip PHP yang telah dicoba. Nama filenya adalah online.php.

<?php // ---- online.php ----

session_start();
include "online.inc.php";

$waktu=date("H:i:s d-m-Y");

$sqlLimit="select distinct ou_user from onlineusers order by ou_user asc";
$dbconnect=mysql_query($sqlLimit);
$rec_num=mysql_num_rows($dbconnect);

echo "$waktu";

for($RekRows=0;$RekRows<$rec_num;$RekRows++){
$getval=mysql_fetch_array($dbconnect);

$_ou_timestamp=$getval[ou_timestamp];
$_ou_user=$getval[ou_user];
$_ou_right_main=$getval[ou_right_main];
$id=$getval[id];

echo "
$_ou_user";


}

echo "Total user: ";
echo "$rec_num";
echo "";

?>

Ketika dijalankan di terminal, dihasilkan keluaran sbb :

[root@serpong4] ~ # php -f online.php

khairul
mantho
sugi@batan.go.id
Total user: 3
[root@serpong4] ~ #
Jika ingin agar hasil perintah ini disimpan di suatu file, misal file online.out. Sehingga perintahnya menjadi :

[root@serpong4] ~ # php -f online.php >>
online.out
Jika ingin dijalankan sebagai perintah shell, maka isi file shell online.sh adalah :

#/bin/sh
php -f /home/msmunir/public_html/webmail/online.php >> /home/msmunir/public_html/webmail/online.out

Jika sudah dibuat file shell-nya, tinggal diletakkan di crontab.

Edit crontab di /etc/crontab :

#minute hour mday month wday who command
#
*/5 * * * * root /home/msmunir/public_html/webmail/online.sh
#

Restart Crontab :
[root@serpong4] /etc/rc.d # ./cron restart
Stopping cron.
Waiting for PIDS: 757.
Starting cron.
[root@serpong4] /etc/rc.d #

Ubah Owner (user root, group wheel) dan attribute (777) file online.sh, online.php dan online.out

[root@serpong4] /etc # chown root:wheel /home/msmunir/public_html/webmail/online.sh
[root@serpong4] /etc # chown root:wheel /home/msmunir/public_html/webmail/online.php
[root@serpong4] /etc # chown root:wheel /home/msmunir/public_html/webmail/online.out


Sumber :
http://php.net/http://www.rumahweb.com/

No comments:

Post a Comment