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 :

  1. Download file source openssl-0.9.8k.tar.gz DI SINI.
  2. Extrak file source OpenSSL : # tar xvfz openssl-0.9.8k.tar.gz
  3. Masuk ke direktori hasil ekstraksi : # cd xvfz openssl-0.9.8k
  4. Proses instalasi, konfigurasi : # ./configure
  5. Lakukan kompilasi : # make
  6. Test make : # make test
  7. Install : # make install
  8. Hapus sampah instalasi : # make clean
  9. Hapus sampah konfigurasi : # make distclean
  10. Download file source libssh2-1.1.tar.gz DI SINI.
  11. Ekstrak libssh2-1.1.tar.gz : # tar xvfz libssh2-1.1.tar.gz
  12. Masuk ke dirktori source : # cd libssh2-1.1
  13. Konfigurasi : # ./configure
  14. Compile source : # make
  15. Checking paket : # make check
  16. Instalasi file-file program dan dokumentasi : # make install
  17. Bersih-bersih sampah instalasi : # make clean
  18. Bersih-bersih sampah konfigurasi : # make distclean
  19. Download PECL/ssh2 DI SINI.
  20. Masuk ke diretori source : #cd ssh2-0.11.0
  21. Kompilasi PECL/ssh2 : # phpize && ./configure –with-ssh2 && make
  22. Maka akan dihasilkan file library ssh2.so di direktori modules
  23. 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
  24. Restart web server untuk menjalankan kofigurasi baru php.ini : # /usr/local/sbin/apachectl restart

Preparasi selesai, waktunya coding :

  1. 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. 
  2. 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’)

        ?>

  3. 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