Setalah kita pernah membuat script PHP yang mengeksekusi shell FreeBSD, kini saatnya kita membuat script PHP untuk mengeksekusi SSH. Dengan ini kita tidak saja melewatan perintah melalui jalur aman SSH, namun juga bisa menyesuaikan hak ases user yang melakukan eksekusi sesuai dengan user yang ada dalam sistem FreeBSD serta keleluasaan me-remote sembarang mesin via SSH. Jadi tak hanya di mesin dimana PHP ditanamkan.
Langsung saja, preparasi :
- Download file source openssl-0.9.8k.tar.gz DI SINI.
- Extrak file source OpenSSL : # tar xvfz openssl-0.9.8k.tar.gz
- Masuk ke direktori hasil ekstraksi : # cd xvfz openssl-0.9.8k
- Proses instalasi, konfigurasi : # ./configure
- Lakukan kompilasi : # make
- Test make : # make test
- Install : # make install
- Hapus sampah instalasi : # make clean
- Hapus sampah konfigurasi : # make distclean
- Download file source libssh2-1.1.tar.gz DI SINI.
- Ekstrak libssh2-1.1.tar.gz : # tar xvfz libssh2-1.1.tar.gz
- Masuk ke dirktori source : # cd libssh2-1.1
- Konfigurasi : # ./configure
- Compile source : # make
- Checking paket : # make check
- Instalasi file-file program dan dokumentasi : # make install
- Bersih-bersih sampah instalasi : # make clean
- Bersih-bersih sampah konfigurasi : # make distclean
- Download PECL/ssh2 DI SINI.
- Masuk ke diretori source : #cd ssh2-0.11.0
- Kompilasi PECL/ssh2 : # phpize && ./configure –with-ssh2 && make
- Maka akan dihasilkan file library ssh2.so di direktori modules
- Salin ke direktori ekstensi dari PHP [hal ini bisa diketahui dari file php.ini yang merupakan file konfigurasi PHP, yaitu pada baris extension_dir=""], lalu arahkan opsi ekstensi library ini, yaitu pada baris : extension=ssh2.so
- Restart web server untuk menjalankan kofigurasi baru php.ini : # /usr/local/sbin/apachectl restart
Preparasi selesai, waktunya coding :
- Misalnya kita ingin menggunakan user login dody dengan password laliaku untuk menyalin file1 menjadi file2 yang berada dalam home direktorinya [/home/dody]. Program ini juga harus bisa menunjukkan list file-file dalam direktori /home/dody sebelum dan sesudah proses penyalinan.
- Buat file php berikut lalu tempatkan ke root direktori Apache : # edit /usr/local/www/data/ssh2.php
<?php
function perintah($eksekusi)
{
$connection = ssh2_connect(’192.168.2.253′, 22);
ssh2_auth_password($connection, ‘dody’, ‘laliaku’);$stream = ssh2_exec($connection, $eksekusi);
stream_set_blocking($stream, true);
while($line = fgets($stream)) {
flush();
echo $line."<br />";
}
stream_set_blocking($stream, true);
echo stream_get_contents($stream);
}echo ‘List file di direktori /home/dody SEBELUM penyalinan :<br>’;
perintah(’ls /home/dody’);perintah(’cp /home/dody/file1 /home/dody/file2′);
echo ‘List file di direktori /home/dody SETELAH penyalinan :<br>’;
perintah(’ls /home/dody’)?>
- Jalankan via browser :

Langkah-langkah di atas menggunakan file-file source tarball, sehingga bisa dilakukan untuk semua turunan *NIX termasuk Linux, bukan hanya FreeBSD.
FreeBSD…just funtastic!
Dedicated for Light Intermutimedia
Perusahaan Software Pulsa