Sabtu, 18 Maret 2017

Menjalankan Perintah Terminal Dengan Fungsi PHP SHELL_EXEC

  3 komentar

Pada tutorial kali ini kita akan belajar PHP CLI ( PHP Command Line ) yaitu kita dapat menjalankan perintah linux dengan PHP ini sebagai contoh awal kita memahami fungsi dari shell_exec(). Sedikit yang membahas tentang PHP CLI ini karena Basah Pemrograman PHP sendiri berfokus kepada pemrograman web tidak berfokus pada lingkungan CLI. Bagi sobat yang menggunakan XAMMP pasti jarang bermain - main dengan ini tetapi sobat yang menggunakan Linux mungkin saja sering bermain - main dengan PHP CLI ini. PHP CLI sering digunakan untuk keperluan Bash Shell Scripting

APA ITU SHELL_EXEC ?
Shell exec adalah fungsi bawaan PHP yang berfungsi untuk menjalankan perintah melalui shell dan mengembalikan output yang lengkap sebagai string. Output dari perintah atau hasil eksekusi akan bernilai NULL / Kosong jika terjadi kesalahan atau perintah tidak menghasilkan output. Fungsi ini dinonaktifkan bila PHP berjalan dalam mode aman / safe mode .

LATAR BELAKANG
Karena sekarang banyak sekali orang yang mempelajari PHP CLI mendorong saya untuk memberikan pengetahuan kepada semuanya mengenai PHP CLI ini. Dengan adanya artikel ini dapat membuka pengetahuan kita tentang PHP CLI yaitu kita dapat menjalankan perintah terminal menggunakan PHP

MAKSUD DAN TUJUAN
Agar kita semua mengetahui bahwa PHP ini tidak hanya berfokus pada pemrograman web tetapi dia juga bisa digunakan untuk keperluan Bash Shell Scripting

ALAT DAN BAHAN
  • Laptop / PC
  • OS Linux / Ubuntu
  • Terinstall LAMPP SERVER
  • Web Browser
  • Text Editor

TAHAP PELAKSANAAN
Pertama kita sediakan terlebih dahulu terminal kita dengan menekan tombol CTRL + SHIFT + T dan masuk sebagai super user. Sebagai contoh saya membuat sebuah file bernama shell.php dan meletakkanya di /var/www/html agar bisa diakses pada web browser nantinya. Sebagai contoh saya menggunakan text editor CLI yaitu nano
nano /var/www/html/shell.php

Kita sudah masuk ke nano sekarang kita isikan perintah yang kita inginkan sebagai contoh saya ingin menampilkan isi dari file /var/www/html sekaligus permision file tersebut. Berarti syntax yang harus dituliskan adalah seperti ini
<?php
$output = shell_exec('ls -l');
echo $output;
?>

Lalu kita eksekusi file php tersebut dengan menggunakan perintah
php /var/www/html/shell.php

Kenapa dia tidak menampilkan isi dari file /var/www/html ? karena kita berada pada direktori maestro / hostname. Sementara dia mengeksekusi perintah ls -l jadi dia akan menampilkan file yang ada pada lokasi kita saat ini. Lalu bagaimana caranya agar kita dapat melihat isi file di /var/www/html ? kita harus memindahkan posisi kita ke /var/www/html dengan cara
cd /var/www/html
Kita eksekusi
php shell.php
Berhasil
Lalu bagaimana jika kita eksekusi lewat web browser bukan lewat terminal? oke kita coba


Nggak rapi ? oke kita rapikan menggunakan tag html <pre>

<?php
$output = shell_exec('ls -l');
echo "<pre>";
echo $output;
echo "</pre>";
?> 

Oke mengapa ketika kita eksekusi menggunakan web browser dia akan otomatis menampilkan file di /var/www/html ? karena letak direktori dari shell.php berada disitu berbeda dengan ketika menggunakan terminal tadi, jika menggunakan terminal dia akan membaca lokasi kita berada dimana, sementara pada web browser dia akan membaca lokasi dari file tersebut. Understand ? :v
Penjelasan
$output adalah variabel yang berfungsi untuk menyimpan perintah linux yang saya jalankan

shell_exec = adalah suatu fungsi dari php untuk menjalankan perintah linux, bisa juga di ganti dengan 'system='

echo $output = berfungsi untuk menampilkan isi variabel output
echo <pre> = berfungsi untuk menampilkan tag <pre> html agar syntax bisa lebih rapi
KESIMPULAN
Kita dapat menjalankan perintah linux menggunakan fungsi shell_exec lalu kita isikan perintah apa yang kita inginkan. Sebagai contoh disini saya menjalankan perintah ls -l yang berfungsi untuk menampilkan isi direktory dan juga melihat permission dari setiap file / folder tersebut. Ada pertanyaan ? silahkan berikan pada kolom komentar, Sekian Terima Kasih

3 komentar :