Saat ini VPS semakin murah, dan dengan bertambahnya traffic dan makin bervariasi bahasa pemrograman membuat VPS menjadi salah satu alternatif yang baik dalam memilih Hosting. Dalam tulisan ini saya akan mendeskripsikan bagaimana cara melakukan setup server anda untuk dapat digunakan sebagai webserver.  Server yang digunakan dapat berupa dedicated server (DS), virtual private server (VPS), ataupun cloud virtual private server. Pada tulisan sebelumnya kita telah membahas bagaimana melakukan Setup Server Pertama Kali, sehingga pada tulisan ini diasumsikan anda sudah menyelesaikan pengaturan awal server anda.

Tulisan ini akan terdiri dari kurang lebih 4 seri yang terdiri dari:

  1. Setup Server Pertama Kali
  2. Instalasi LAMP Stack
  3. Konfigurasi MySQL
  4. SSL Certificate

Requirement

Untuk memudahkan anda dalam memahami petunjuk ini, maka beberapa hal yang perlu diperhatikan diantaranya:

  1. Server yang digunakan dalam contoh ini adalah ubuntu server. Sehingga tutorial ini sedikit banyak berlaku pada server berbasis debian. Namun tidak menutup kemungkinan dapat digunakan juga di distro lain, terkadang anda hanya perlu mengganti apt-get menjadi yum atau dnf.
  2. Stack yang digunakan adalah LAMP Stack (Linux Apache 2.2, MySQL, PHP 7).
  3. Ubuntu yang digunakan adalah Ubuntu 16.04
  4. Root direktori apache2 yang digunakan adalah /home/ubuntu/html/

Go Ahead and Start!

Server VPS

LAMP Stack

LAMP Stack merupakan paket instalasi yang banyak digunakan pada server Linux. Dengan LAMP Stack maka instalasi apache, MySQL, dan PHP menjadi lebih mudah dan cepat.

Instalasi

Hal pertama yang harus anda lakukan adalah melakukan instalasi LAMP. Untuk instalasi silahkan ikuti langkah berikut.

Awali dengan update repositori

$ sudo apt-get update

Kemudian lakukan instalasi LAMP

$ sudo apt-get install lamp-server^

Dengan hal tersebut anda sudah melakukan instalasi LAMP dengan konfigurasi dasarnya, tentunya kita akan banyak memberikan perubahan konfigurasi untuk LAMP server kita. Apabila anda ingin melakukan un-install LAMP maka anda dapat memasukkan perintah berikut

$ apache2 apache2-mpm-prefork apache2-utils apache2.2-common libapache2-mod-php5 libapr1 libaprutil1 libdbd-mysql-perl libdbi-perl libnet-daemon-perl libplrpc-perl libpq5 mysql-client-5.5 mysql-common mysql-server mysql-server-5.5 php5-common php5-mysql

Untuk dapat bekerja maka kita dapat melakukan restart Service dari apache2 terlebih dahulu dengan 

$ sudo /etc/init.d/apache2 restart

atau dapat juga dengan 

$ sudo service apache2 restart

Anda dapat memeriksa apakah instalasi sudah berjalan dengan mengakses http://localhost/ atau http://ip_server_anda/.

Mengubah Root Direktori Apache2

Secara default direktori robot apache2 akan berada di /var/www/html. Namun tentunya lebih mudah dan berguna untuk pengembanan apabila kita ubah ke /home/[nama_user]/html. Untuk itu pertama kita akan melakukan grep untuk melakukan duplikasi Ike di folder awal ke direktori baru tujuan kita.

$ grep -R "DocumentRoot" /etc/apache2/sites-enabled

Kode diatas akan menunjukkan DocumenRoot apache2 kita, dalam contoh ini berada di 

Output

sites-enabled/000-default.conf   DocumentRoot /var/www/html

Pastikan direktori anda sudah dibuat. Kemudian kita akan melakukan sync data pada DocumentRoot lama ke DocumentRoot kita yang baru.

$ sudo rsync -av /var/www/html /home/ubuntu

Setelah itu anda akan melihat file index.php pada DocumenRoot baru kita.

Update Configuration Files

Sebelumnya kita telah membuat dan memindahkan files pada DocumenRoot lama ke DocumenRoot baru. Sekarang kita akan mengubah konfigurasi apache2 agar DocumenRoot berubah. Apache2 melakukan konfigurasi pada setiap virtual host yang dimiliki pada server. Pada saat ini kita akan mengkonfigurasi server localhost dengan port 80. Buka konfigurasi dengan 

$ sudo nano /etc/apache2/sites-enabled/000-default.conf

Anda dapat menggunakan editor apapun pada fase ini, salah satunya yaitu nano. Namun anda yang sudah biasa menggunakan vim dapat menggunakan vim atau editor lain. Namun untuk menghindari kesulitan exit vim maka saya mencontohkan dengan menggunakan nano. Dengan perintah di atas terminal akan menampilkan file 000-default.conf. Ubah DocumenRoot anda dan tambahkan <Directory > untuk membuat DocumenRoot kita dapat diakses dari jaringan lain. File 000-default.conf anda akan terlihat seperti berikut

/etc/apache2/sites-enabled/000-default.conf

 

<VirtualHost *:80>

        ServerAdmin webmaster@localhost

       DocumentRoot /mnt/volume-nyc1-01/html

        <Directory />

                Options FollowSymLinks

                AllowOverride None

       </Directory>

      <Directory /mnt/volume-nyc1-01/html/>

                Options Indexes FollowSymLinks MultiViews

                AllowOverride None

                Require all granted

        </Directory>

Kemudian akhiri dengan melakukan restart Service apache2.

$ sudo service apache2 restart

Selanjutnya anda dapat mengakses http://localhost/ dan memanfaatkan DocumenRoot baru sebagai website anda.

Beberapa Modul dan Ekstensi Penting

Website saat ini pada umumnya menggunakan modul apache2 dan ekstensi php secara default. Namun ternyata dalam lampstack kita modul/ekstensi tersebut terkadang belum terinstall. Dalam tulisan ini saya akan menampilkan beberapa modul/ekstensi yang penting untuk website anda.

Modul Rewrite Apache2

Modul rewrite digunakan untuk mengkonfigurasi url kita agar lebih mudah, enak dilihat, dan tentunya aman. Untuk mengaktifkan modul rewrite maka dapat dilakukan dengan

$ a2enmod rewrite

Kemudian restart apache2 agar konfigurasi berlaku.

$ sudo service apache2 restart

Selanjutnya anda sudah dapat menggunakan .htaccess pada website anda.

Ekstensi mbstring, mycrypt dan PHP-ZIP

Pada LAMP dengan PHP 7 yang saya gunakan ternyata tidak memuat ekstensi mbstring dam mcrypt secara default. Begitu juga ekstensi zip sehingga ini agak mengganggu ketika menggunakan composer. Untuk mengaktifkan ekstensi tersebut dapat dilakukan dengan 

$ sudo apt-get update
$ sudo apt-get install php7-mcrypt php7-mbstring php7-zip

Jika anda menggunakan php 5 anda dapat mengganti 7 dengan 5. Apabila anda menggunakan PHP 7.0.0 maka anda menggunakan 7.0.


Baiklah itu tadi hal-hal penting mengenai instalasi LAMP Stack dan hal-hal penting yang sangat mungkin anda lakukan pada LAMP Stack. Semoga membantu dan Happy Coding!

Sumber:

https://www.digitalocean.com/community/tutorials/how-to-move-an-apache-web-root-to-a-new-location-on-ubuntu-16-04 

https://help.ubuntu.com/community/ApacheMySQLPHP