Penggunaan fungsi BZ2 pada PHP

Bismillah.

Bagi pengguna non windows, file berekstensi .tar dan .tar.gz pasti sangat familiar. Terutama ketika mendownload file-file besar, kita akan jarang jumpai file berekstensi .zip apa lagi .rar. Tapi ada yang unik dari file-file tersebut. Apa perbedaan .tar dan .tar.gz?

Berbeda dengan kebanyak aplikasi lain, di mana archiver (tool untuk mengarsip file alias menjadikan file yang banyak menjadi satu file saja) sudah sepaket dengan compressor (tool untuk mengecilkan ukuran file). Akan tetapi, dalam dunia linux, archiver dan compressor adalah aplikasi yang berbeda.

Tar adalah sebuah ekstensi, dan juga sekaligus nama aplikasi dari tool archiver. Tar berfungsi untuk mengumpulkan file yang sangat banyak menjadi satu file saja. Akan tetapi ukurannya tetap sama, tidak berkurang dengan ukuran file aslinya. Ada pun Gz, adalah ekstensi dari aplikasi Gzip yang bertugas untuk mengompress ukuran file yang besar, menjadi jauh lebih kecil. Oleh karena itu, gabungan antara tar dan gzip, biasanya diberi ekstensi dengan: .tar.gz.

Berbeda dengan windows bukan? Di mana aplikasi archiver sudah sepaket dengan compressor. Contoh aplikasi-aplikasi yang melakukan hal tersebut adalah: winrar, winzip, 7zip. Tapi di keluarga UNIX atau Linux, hal seperti ini tidak populer. Tarball adalah sebuah nama untuk mengidentifikasikan file-file yang sudah dijadikan satu oleh aplikasi tar, entah sudah dikompres atau belum. Sedangkan tugas mengkompresnya, biasa dilakukan dengan aplikasi Gzip dan Bzip2.

Cara Membuat Arsip File .tar

# membuat file bernama .tar berisi folder directory
tar cf archive.tar directory

Cara Membuat Arsip File .tar + Kompres

# membuat arsip dan sekaligus mengkompres dengan gzip
tar czf archive.tar.gz directory

# membuat tar file sekaligus mengkompres dengan bzip2
tar cjf archive.tar.bz2 directory

Cara Mengekstrak Arsip File .tar

# mengekstrak isi dari archive.tar
tar xf archive.tar

Cara Mengkestrak Arsip File .tar yang Dikompres

# mengekstrak isi dari archive.tar.gz
tar xzf archive.tar.gz

# mengekstrak isi dari archive.tar.bz2
tar xjf archive.tar.bz2

PHP: Hypertext Preprocessor (PHP) merupakan sebuah scripting language yang sangat populer digunakan, utamanya untuk membangun aplikasi berbasis web. PHP pertama kali diluncurkan pada tahun 1994. Versi terakhir PHP saat artikel ini ditulis adalah PHP versi 7.2. Walau PHP penuh dengan berbagai kontroversi karena berbagai kelemahan dan celah keamanan, namun nyatanya saat ini PHP masih dominan digunakan di berbagai aplikasi berbasis web. Anda dapat mempelajari pendapat pro dan kontra penggunaan PHP dari beberapa PHP expert pada artikel berikut

1. Instalasi PHP Apache Module

PHP dapat dipasang sebagai bagian dari Apache module. Cara ini adalah cara yang paling mudah dalam mengkombinasikan web server Apache dan PHP. Namun konsekuensinya adalah PHP akan mewarisi permission dari proses Apache. Hal ini tentunya akan berdampak pada aspek keamanan pada server anda. Lebih lanjut tentang aspek keamanan ini dapat anda baca pada PHP manual berikut

Langkah pertama dalam melakukan instalasi PHP sebagai bagian dari Apache module adalah dengan menjalankan perintah

$ sudo apt update
$ sudo apt install php libapache2-mod-php

Untuk mengecek apakah PHP telah berjalan di server anda, anda dapat membuat sebuah file dengan isi

<?php
phpinfo();
?>

di root directory server yang secara default berada di /var/www/html/, misalkan dengan nama file /var/www/html/info.php.

Default owner directory /var/www/html/ adalah root, sehingga anda memerlukan hak akses root untuk membuat atau memodifikasi file dalam directory tersebut.

Kemudian cobalah akses file tersebut menggunakan web browser, misalnya dengan mengakses http://<domain server anda>/info.php atau http://<alamat IP server anda>/info.php. Bila anda mendapatkan output seperti pada Gambar 1 berarti proses instalasi PHP telah berhasil.

Penggunaan fungsi BZ2 pada PHP

Gambar 1. Output phpinfo()

Pada Ubuntu 16.04 versi PHP yang digunakan adalah versi 7.0. Bila anda memerlukan versi lama atau versi lebih baru, maka anda harus menggunakan cara yang berbeda yang tidak dibahas dalam artikel ini.

2. Modifikasi Konfigurasi PHP

Tanpa langkah berikut, sebenarnya instalasi PHP tersebut telah dapat digunakan, namun kadang kita perlu melakukan beberapa modifikasi untuk menyesuaikan dengan kebutuhan program PHP yang nantinya kita buat.

Instalasi MySQL module

Bila anda ingin menggunakan PHP untuk mengolah RDBMS MySQL atau MariaDB, maka anda perlu mengaktifkan PHP MySQL module dengan cara menjalankan perintah

$ sudo apt install php-mysql

kemudian anda perlu me-restart service Apache dengan perintah

$ sudo systemctl restart apache2.service

Untuk memastikan bahwa modul php-mysql telah aktif, buatlah sebuah file di root directory server, misalnya /var/www/html/mysql.php dengan isi

kemudian akses file tersebut menggunakan web browser, misalnya dengan mengakses http://<domain server anda>/mysql.php atau http://<alamat IP server anda>/mysql.php. Jangan lupa, anda perlu mengganti $servername, $username, dan $password pada script untuk disesuaikan dengan konfigurasi server anda. Bila output script tersebut adalah

Connection success.

maka instalasi anda berhasil, namun bila tidak maka berarti ada masalah dengan proses instalasi yang anda lakukan.

Pencarian dan Instalasi Berbagai Modul PHP

Untuk meningkatkan fungsionalitas dari PHP, anda dapat menambahkan beberapa modul tambahan ke dalam PHP. Untuk mencari modul-modul yang tersedia dalam repository, gunakanlah perintah

$ sudo apt-cache search php-

Bila anda ingin pencarian yang lebih spesifik, kombinasikan dengan perintah grep, misalnya anda ingin mencari modul PHP yang berkaitan dengan zip, maka anda dapat menggunakan perintah

$ sudo apt-cache search php- | grep zip

Contoh output dari perintah tersebut adalah

libphp-pclzip - transitional dummy package
php-bz2 - bzip2 module for PHP [default]
php-pclzip - ZIP archive manager class for PHP
php-zip - Zip module for PHP [default]
php-zipstreamer - Stream zip files without i/o overhead
php7.0-bz2 - bzip2 module for PHP
php7.0-zip - Zip module for PHP

Bila anda sudah memutuskan modul apa yang perlu anda install, misalnya php-zip, maka gunakan perintah apt install untuk melakukan instalasi PHP modul tersebut. Berikut adalah contoh perintah untuk melakukan instalasi modul php-zip

$ sudo apt install php-zip

Kemudian restart service Apache dengan perintah

$ sudo systemctl restart apache2.service

Menyembunyikan Versi PHP pada HTTP Header

Bila anda tidak menginginkan versi PHP anda tampil pada HTTP Header, demi alasan keamanan misalnya, maka anda dapat memodifikasi file /etc/php/7.0/apache2/php.ini dan /etc/php/7.0/cli/php.ini. Pastikan variable expose_php pada kedua file tersebut bernilai Off seperti ini.

expose_php = Off

Kemudian restart service Apache dengan perintah

$ sudo systemctl restart apache2.service

Mengganti Default Directory Index

Bila anda memiliki dua file index, misalnya index.html dan index.php, dalam satu directory yang sama, maka yang dieksekusi oleh Apache adalah file index.html. Bila anda ingin mengubah urutan prioritas file index, maka anda dapat mengaturnya melalui file /etc/apache2/mods-available/dir.conf.

Ubahlah urutan index.php pada DirectoryIndex yang semula pada urutan keempat seperti ini

<IfModule mod_dir.c>
DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm
</IfModule>

menjadi urutan pertama seperti ini

<IfModule mod_dir.c>
DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm
</IfModule>

Kemudian restart service Apache dengan perintah

sudo systemctl restart apache2.service

Demikianlah cara melakukan instalasi PHP Apache Module pada Ubuntu 16.04. Selamat mencoba.