My Little Daemon™

Middle, FreeBSD, PHP, AJAXJanuary 13, 2008 11:08 am

Terkadang suatu perintah di UNIX [baca FreeBSD] memiliki opsi gabungan dan bahkan beruntun. Misalnya perintah ps pada posting sebelum ini, menggunakan opsi -a lalu dilanjutkan dengan opsi -x. Untuk melihat hasil setiap opsi suatu perintah UNIX [baca FreeBSD] yang diberikan secara langsung [bahkan tatkala opsi diketikkan] dan lebih interaktif karena tidak harus bolak-balik antara form HTML dengan halaman server-side PHP, kita bisa menggunakan AJAX-PHP.

Baiklah, kita hanya perlu membuat file my_first_ajax_shell.html yang merupakan modifikasi file my_form_shell.html :

my_first_ajax_shell.html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Contoh shell_exec diakses via AJAX-PHP</title>

</head>
<body>

<script language="javascript" type="text/javascript">
<!–

function getHTTPObject(){
if (window.ActiveXObject) return new ActiveXObject("Microsoft.XMLHTTP");
else if (window.XMLHttpRequest) return new XMLHttpRequest();
else {
alert("Browser Anda tidak support AJAX.");
return null;
}
}

function setOutput(){
if(httpObject.readyState == 4){
document.getElementById(’outputText’).value = httpObject.responseText;
}
}

function ajaxKU(){
httpObject = getHTTPObject();
if (httpObject != null) {
httpObject.open("GET", "my_first_shell.php?x="
+document.getElementById(’inputText’).value, true);
httpObject.send(null);
httpObject.onreadystatechange = setOutput;
}
}

var httpObject = null;
//–>
</script>

<form name="shellForm">
Parameter perintah : <input type="text" onkeyup="ajaxKU();" name="inputText" id="inputText" /><br>
Hasilnya :<br><TEXTAREA NAME="outputText" COLS=120 ROWS=32 id="outputText"></TEXTAREA>
</form>

</body>
</html>

Di sini, file akan tetap mengakses file my_first_shell.php. Baiklah, berikut adalah beberapa screenshot-nya :

 

 

 

FreeBSD…nyaman, kan ? 

Dedicated for Light Intermutimedia
Perusahaan Software Pulsa

Simple, FreeBSD, PHPJanuary 11, 2008 11:08 am

Baiklah, sekarang kita akan membuat eksekusi shell_exec di PHP lebih interaktif. Misalnya kita gunakan form HTML berikut untuk memasukkan parameter command shell-nya :

my_form_shell.html

<form action="my_first_shell.php" method="POST">
Parameter perintah :
<input type="text" name="x">
<input type="submit" value="send">
</form>

Untuk dikirimkan ke file my_first_shell.php yang sedikit kita modifikasi :

my_first_shell.php

<?php
$output = shell_exec("ps $x");
echo "<pre>$output</pre>";
?>

Hasilnya akan sama dengan yang di sini.

Catatan :

  1. Jangan lupa mengaktifkan register_globals PHP dengan mengedit file /usr/local/etc/php.ini dengan opsi register_globals = On
  2. Pada argumen untuk shell_exec gunakan petik ganda (") jangan petik tunggal ()

FreeBSD…mengatasi masalah tanpa masalah.

Dedicated for Light Intermutimedia
Perusahaan Software Pulsa

Simple, FreeBSD, PHPJanuary 9, 2008 1:06 pm

Berikut adalah inisialisasi dari langkah panjang kita ke depan untuk mengkolaborasikan bahasa pemrograman C, C++, Perl sebagai engine aplikasi [terutama untuk Administrasi Server FreeBSD] dengan PHP sebagai interface ke usernya. Kali kita hanya membuat script PHP sederhana untuk memerintahkan sistem menampilkan semua proses yang sedang berjalan dengan perintah ps ax :

File my_fisrt_shell.php 

<?php
$output = shell_exec(’ps -ax’);
echo "<pre>$output</pre>";
?>

Hasilnya :

 

FreeBSD…apalagi yang kurang ?

Dedicated for Light Intermutimedia
Perusahaan Software Pulsa

Simple, C Programming, FreeBSD, PHP, MySQLJanuary 4, 2008 2:05 pm

Karena hendak membuat tutorial PHP dan MySQL [tapi masih demi kepentingan membuat Sistem Administrasi Server], saya mengawalinya dengan instalasi tiga jagoan web base applications : Apache, MySQL dan PHP di mesin FreeBSD. Telah banyak tutorial tentang hal ini, jadi saya akan menyingkatnya saja :

Instalasi MySQL 5.0 : 

  • # cd /usr/ports/databases/mysql50-server/
  • # make install clean
  • # /usr/local/bin/mysql_install_db
  • # chown -R mysql /var/db/mysql/
  • # chgrp -R mysql /var/db/mysql/
  • edit file /etc/rc.conf lalu tambahkan baris : /usr/local/bin/mysqld_safe &

Instalasi Apache 2 :

  • # cd /usr/ports/www/apache2/
  • # make install clean
  • edit file /usr/local/etc/apache2/httpd.conf lalu aktifkan ServerName localhost
  • edit file /etc/hosts :

    ::1 localhost.localdomain localhost
    127.0.0.1 localhost.localdomain localhost
    192.168.1.252 localhost.localdomain localhost

    dimana 192.168.1.252 adalah IP Server FreeBSD

  • edit file /etc/rc.conf lalu tambahkan baris : apache2_enable="YES"

Instalasi PHP 5 : 

  • # cd /usr/ports/lang/php5/
  • # make config install clean ketika ditanyakan opsi, aktifkan opsi APACHE2
  • # cp /usr/local/etc/php.ini-dist /usr/local/etc/php.ini
  • # edit /usr/local/etc/apache2/httpd.conf lalu tambahkan baris-baris berikut :

    AddType application/x-httpd-php .php
    AddType application/x-httpd-php-source .phps
    LoadModule php5_module libexec/apache/libphp5.so

    kemudian ubah baris DirectoryIndex index.html menjadi DirectoryIndex index.php index.html

Terakhir reboot. Untuk mencobanya buat file test.php dengan isi <?php phpinfo() ?> di direktori /usr/local/www/data/. Jika tak ada aral melintang, maka ketika Anda membuka URL http://ip_server_FreeBSD/test.php akan muncul segala informasi perihal PHP, yang meliputi opsi kompilasi PHP,  ekstensi kompilasi PHP, versi PHP, indormasi server dan environment [jika di-compile sebagai modul], environment PHP, informasi versi OS, path, nilai global dan nilai lokal dari opsi-opsi konfigurasi, header-header HTTP, dan lisensi PHP. Berikut ascreenshoot-nya :

 

Tutorial PHP dan MySQL juga bertebaran di mana-mana, jadi tak perlu saya lakukan di blog ini. Ke depan kita hanya berkonsentrasi pada hal-hal yang berkenaan dengan sistem operasi UNIX [baca : FreeBSD] yang tidak lebih dari perihal dua hal : file dan proses. Yakin hanya tentang dua hal ini ? Yup, tapi turunannya itu lho yang gak ketulungan banyaknya. Tentu nantinya kita perlu juga melakukan kolaborasi dengan C, C++ dan tentu saja Perl Programming yang merupakan core-nya.  PHP kita gunakan sebagai interface dengan pengguna aplikasi yang akan kita bangun, yaitu si Admin Server. Saya lebih suka menggunakan interface web base daripada X base. Jadi untuk Tk, no teng yu ! Kalau MySQL kita gunakan jika butuh tampungan terutama untuk log dan config. Pada tahap awal kita akan kolaborasikan C [baca : gcc] dengan PHP, karena kita telah melakukan cukup preparasi teknik pemrograman dengan C di sini.     

FreeBSD…just integrated in simplify. 

Dedicated for Light Intermutimedia
Perusahaan Software Pulsa