Friday, February 3, 2017

Instalasi LAMP Stack (Linux, Apache2, MariaDB, PHP7.0, phpMyAdmin) Debian 8 Jessie

  No comments
Assalamu'alaikum Wr.Wb.
LAMP Stack - Source Image

a. Pengertian

L.A.M.P Software Bundle (Stack), merupakan sebuah paket Aplikasi Server untuk keperluan menjalankan Aplikasi berbasis Web. LAMP merupakan singkatan dari Linux, Apache2, MariaDB / MySQL, dan Hypertext Preprocessor (PHP), Perl, atau Python. Linux merupakan OS yang digunakan, Apache2 sebagai Webservernya, MariaDB sebagai Sistem Database, dan PHP, Perl, atau Python adalah Bahasa Pemrogramannya.

b. Latar Belakang
Instalasi Paket Program LAMP adalah instalasi yang sudah umum yang biasa dilakukan oleh para System Administrator. Karena Apache2 adalah Web Server yang sudah umum digunakan serta MariaDB dan PHP adalah Database System dan Programming Language yang umum digunakan oleh Web Programmer.

c. Maksud & Tujuan
Dengan melakukan Instalasi Paket Program yang memang sudah 'diakui' oleh kedua belah pihak yaitu System Administrator dan Web Programmer maka akan membuat kedua belah pihak saling diuntungkan. Yaitu sama-sama tidak perlu repot-repot untuk melakukan penyesuaian yang ekstrim untuk keduanya saling mendukung dan berjalan.

d. Jangka Waktu
Instalasi ini memerlukan waktu kira-kira 10-20 menit. Bisa lebih cepat atau lebih lama tergantung dari sibuk atau tidaknya Traffic jaringan.

e. Alat & Bahan
- Koneksi Internet (Apabila menggunakan Repository Luar Jaringan)
- Repository Debian (Bisa menggunakan Ketiga DVD Debian, atau yang sudah disediakan oleh Administrator Jaringan masing-masing).
- OS Debian 8 Jessie

f. Langkah Kerja
1. Saya mengasumsikan Debian sudah diinstall dengan benar dan sudah dilakukan Initial Setting sampai dapat terkoneksi ke Jaringan. Apabila sudah, silahkan teman-teman remote Debian melalui SSH/Telnet.

2. Edit Repository List Debian dengan melakukan perintah Shortcut:
~# apt edit-repository
lalu pilih Editor yang teman-teman sukai. atau dengan versi yang panjang...
~# nano /etc/apt/sources.list
3. Tambahkan Repository berikut:
Repo DotDeb untuk PHP7, karena Official Repo Jessie hanya memiliki PHP sampai PHP5.6
deb http://packages.dotdeb.org jessie all
deb-src http://packages.dotdeb.org jessie all
wget https://www.dotdeb.org/dotdeb.gpg && apt-key add dotdeb.gpg
Mirror Repo terdekat dengan channel main dan non-free, cth Kartolo.
deb http://kartolo.sby.datautama.net.id/debian jessie main non-free
deb-src http://kartolo.sby.datautama.net.id/debian jessie main non-free
4. Setelah ditambahkan, silahkan perbarui Cache Aptitude nya dengan melakukan:
~# apt update
5. Apabila tidak ada Error, mari mulai Instalasinya.

- Apache2
~# apt install apache2
Setelah instalasi selesai, teman-teman dapat mencoba membuka IP atau Domain yang mengarah ke PC/Server untuk melihat apakah instalasinya berhasil atau tidak. Instalasi berhasil apabila ketika dibuka menampilkan Default Page dari Apache2 beserta logo Distro yang digunakan.

- MariaDB
~# apt install mariadb-server
Terkadang ketika Instalasi, teman-teman akan diminta untuk memasukkan Password untuk akun Root MariaDB. Apabila tidak diminta, tidak apa-apa kita bisa membuat passwordnya setelah instalasi.

Setelah instalasi MariaDB selesai, kita lakukan Konfigurasi Awal setelah Instalasinya.
~# mysql_secure_installation
Enter current password for root (enter for none):
<Masukkan password ketika instalasi, apabila tidak diminta maka kosongkan saja>
Change the root password? [Y/n]:
<Apabila belum membuat password, maka ketikkan "Y" lalu Enter, apabila sudah membuat dan tidak ingin mengganti maka ketikkan "n">
Remove Anonymous User? [Y/n]:
<Ketikkan "Y" saja untuk menghapus User Anonim yang ada secara default ketika menginstall MariaDB>
Disable root login remotely? [Y/n]:
<Apabila konfigurasi ini bukan untuk diri pribadi, tentu ketikkan "Y">
Remove test database and access to it? [Y/n]:
<Ketikkan "Y" saja untuk menghapus database testing yang ada secara default>
Reload Privilege table now? [Y/n]:
<Ketikkan "Y" saja untuk mengatur ulang database agar sesuai dengan yang kita konfigurasikan lagi>
Setelah itu restart MariaDB dengan:
~# service mysql restart
- PHP7.0
~# apt install libapache2-mod-php7.0 php-pear php7.0 php7.0-cgi php7.0-cli php7.0-common php7.0-fpm php7.0-mcrypt php7.0-mbstring php7.0-gd php7.0-json php7.0-mysql 
Setelah Instalasi PHP7.0 selesai, Versi PHP7.0 ini tidak secara otomatis aktif. Teman-teman harus mengaktifkannya sendiri sesuai dengan instruksi yang diberikan ketika Instalasi selesai.

Apabila sudah diaktifkan, teman-teman dapat mencoba membuat file Test Page PHP yang ketika dibuka akan memuat semua Informasi dari PHP mulai dari Hostname, Kernel, OS, sampai dengan Modul dan Konfigurasi yang digunakan oleh PHP. Untuk membuatnya :
~# nano /var/www/html/test.php
Isi Filenya:
<?php
          phpinfo();
?>
Jika muncul seperti ini, maka dapat kita pastikan PHP sudah bisa digunakan.
- Web-based Database Management: phpMyAdmin
~# apt install phpmyadmin
Ketika Instalasi teman-teman akan diminta untuk memilih antara Apache2, dan Lighttpd, karena kita menggunakan Apache2 maka pilihlah Apache2. Kita juga akan diminta untuk memasukkan Password Root MariaDB dan Password baru untuk Akun baru yang dibuat oleh phpMyAdmin untuk manajemen databasenya.

Jika sudah, teman-teman dapat membukanya di:
http://IP_atau_Domain_Server/phpmyadmin
Tips:
- Apabila ketika masuk ke akun Root teman-teman mendapatkan pesan Access Denied (Using password: yes) meski password yang teman-teman masukkan sudah yakin benar, teman-teman dapat melakukan pengubahan Plugin Autentikasi yang digunakan oleh Root pada database. Biasanya meski teman-teman tidak bisa login melalui phpMyAdmin tapi teman-teman dapat login tanpa menggunakan password melalui Root Shell atau sudo.
~# mysql -u root -p
Apabila teman-teman dapat masuk tanpa password:
~# use mysql;
~# update user set plugin='' where User='root';
~# flush privileges;
~# quit;
Setelah instalasi paket LAMP selesai, teman-teman sudah dapat menggunakannya untuk menjalankan Aplikasi Web berbasis PHP. Namun optimasi performa disini juga diperlukan, mengingat Apache2 tanpa Tweaking akan memakan resource yang cukup besar. Mungkin tidak terasa apabila traffic masih rendah, tetapi bila traffic sudah semakin tinggi akan terasa beratnya. Sehingga sebisa mungkin lakukan tuning dan tweaking module dan config agar sesuai dengan aplikasi yang dijalankan serta mematikan atau membuang hal-hal yang tidak dibutuhkan.

g. Referensi
Wikipedia - LAMP (Software Bundle)
Dotdeb & Dotdeb - Instructions
Superuser - mysql (mariadb) ERROR 1698 (28000)

h. Kesimpulan
Dengan menginstal Paket LAMP diatas, maka kita sudah dapat menjalankan sebagian besar aplikasi berbasis Web yang dibangun dengan Bahasa Pemrograman PHP. Namun hal yang dilakukan diatas hanyalah sebatas instalasi awal, untuk diterapkan di Lingkungan Produksi haruslah disesuaikan dan dioptimasi semaksimal mungkin untuk dapat menghandle banyak Request dari banyak User serta agar Resource yang ada dapat digunakan seefisien mungkin.

Demikian yang dapat saya tulis, semoga bermanfaat bagi teman-teman semuanya.
Dan seperti biasa, Terima Kasih!
Wassalamu'alaikum Wr. Wb.

No comments :

Post a Comment