Instalasi LEMP pada Debian 8

Melanjutkan tutorial selanjutnya yang juga (mungkin) permintaan dari mas Niko. Kali ini tujuannya kita berhasil setting LEMP (Linux, Nginx, MariaDB dan PHP) pada Debian 8 Jessie. Batasan saya adalah sebisa mungkin menggunakan apa yang ada di repository defaultnya supaya tidak menambah rumit prosesnya dan kalau pas troubleshooting kedepannya tidak sulit juga. 🙂 Tapi kekurangannya yang digunakan bukanlah versi terbaru.

Persiapan awal

Seperti biasa, sebelum melakukan instalasi stacknya maka wajib kita perbarui semua paket aplikasi yang ada dalam Debian 8:

apt-get update && apt-get upgrade

Instalasi Nginx

Bukanlah hal yang sulit untuk menginstall Nginx di Debian 8, tinggal anda ketikkan perintah:

apt-get install nginx

Tapi jangan lupa untuk menghidupkan mesinnya:

systemctl start nginx

Dan menambahkannya dalam startup Linux, jadi setiap kali booting otomatis aktif juga:

systemctl enable nginx

Instalasi MySQL/MariaDB

Untuk menginstall MySQL Server tinggal eksekusi:

apt-get install mysql-server

Terus terang dibandingkan MySQL saya lebih suka MariaDB karena lebih aktif pengembangan softwarenya dan jangan khawatir karena ini masih kompatibel kok.

apt-get install mariadb-server mariadb-client

Ingat pilih salah satu saja apa database server yang dipasangkan. Selanjutnya anda wajib mengamankan instalasi database server ini, eksekusi saja:

mysql_secure_installation

Kemudian ikuti instruksinya.

Pastikan service MySQL/MariaDB akan aktif saat startup:

systemctl enable mysql

atau

systemctl enable mariadb

Instalasi PHP

Ini juga tidak kalah mudahnya, tinggal anda jalankan perintah berikut:

apt-get install php5 php5-fpm php5-mysql php5-opcache

Selesai sudah proses instalasi PHP 5 di Debian 8. Gampang kan? Haha. 😀

Dan jangan lupa tambahkan daemon PHP-FPM ikut hidup saat booting:

systemctl enable php-fpm

Konfigurasi PHP

Ini baru agak sulit tahapannya. Kita perlu menyetel PHP-FPM baru bisa digunakan oleh Nginx:

nano /etc/php5/fpm/php.ini

Kemudian cari dan hilangkan tanda titik koma (;) di awal kode dibawah:

cgi.fix_pathinfo=0

Akhirnya restart prosesnya:

systemctl restart php5-fpm

Konfigurasi Nginx

Target selanjutnya adalah agar Nginx bisa memproses file PHP, mari kita edit konfigurasi virtual hostnya dulu:

nano /etc/nginx/sites-available/default

Dan kemudian tambahkan kode berikut dalam blok server{}:

server {
    listen       80;
    server_name  nama_domain.com;
    root /var/www/html;
    index index.php index.html index.htm index.nginx-debian.html;
    
    location / {
        try_files $uri $uri/ =404;
        }
        error_page 404 /404.html;
        error_page 500 502 503 504 /50x.html;

    location = /50x.html {
        root /var/www/html;
        }

    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
            }
}

Setelah itu silahkan restart Nginx:

systemctl restart nginx

Setting Virtual Host Nginx

Kalau semua sudah selesai terus kita ngapain? Haha. 😀 Mudah kok, silahkan buat direktori untuk website yang akan dihosting, istilahnya sih virtual hosting:

mkdir /var/www/nama_domain.com

Upload file – filenya kesana ya. Misal ingin WordPress bisa mengikuti tutorial instalasinya di VPS sebelumnya.

Dan kemudian kita buat file konfigurasi baru yang nanti isinya adaptasi dari defaultnya:

cp /etc/nginx/sites-available/default /etc/nginx/sites-available/nama_domain.com

Dan isinya sesuaikan dengan situs anda.

Jangan lupa restart Nginx lagi setelahnya agar dikenali konfigurasi barunya. Selesai sudah. 🙂

18 Comments

  1. Oh iya mas, sebelumnya terima kasih sudah dibuatkan tutorialnya ^_^

    Saya mau tanya mas, kenapa konfigurasi PHP nya kita ga setting listen nya jadi php-fpm.sock, seperti yang mas kasih caranya di https://servernesia.com/995/instalasi-lemp-centos-7/

    Terus, saya mau tanya lagi mas, saya kemaren nyoba install LEMP stack, tapi bukan pake php5, saya installnya PHP aja (jadi yg terinstal PHP 7.0), cuman waktu saya ganti use owner dan grup nya di www.conf dari www-data jadi nginx kenapa ga bisa ya mas?

    Terus satu lagi mas, biar domain.com otomatis direct ke www.domain.com gimana ya mas? ngaturnya di vanity nameserver DO atau di VPS nya?

    Terima kasih mas. Aseli saya pemula mas.

    1. Oh, cuma beda saluran sih mas kalau masalah listen. Yang defaultnya pakai port dan yang biasanya saya ganti ke socket. Katanya sih memiliki performa lebih baik, tapi baru terasa kalau trafiknya per hari sudah puluhan ribu. Dan memang saya belum merasakan perbedaan berarti untuk ini. Mungkin karena sudah pakai cache dari sisi Nginx dan PHP.

      Mas pakai tutorial yang mana untuk PHP 7.0-nya? Walau mudah tapi kalau alurnya beda dan distronya lain ya saya bingung juga mas. Oh ya, pesan errornya ada mas?

      Pertama buat dulu A recordnya www.domain.com ke alamat IP VPS misal 192.168.1.1. Kemudian buat CNAME record domain.com menuju www.domain.com. Ini redirect dari sisi DNS, jadi web server tidak perlu memprosesnya.

  2. nice tp terlalu simple (kurang detail) >> gak cocok untuk nyubie seperti saya 😀
    btw hatur nuwun ilmunya mas Chandra 🙂

    1. Nah… itu saya butuh masukan butuh detailnya pada bagian mana mas. Dari sisi saya mungkin terlalu biasa jadi ada yang tidak terpikirkan untuk ditulis.

      Silahkan diajukan mas kesulitannya dimana. 🙂

  3. link install wordpress di lemp di debian 8 nya mana gan:D
    boleh donk di share install wordpress+nginx di webuzo, coz sekarang webuzo yg free dah ga bisa install nginx 🙁 thanks.

  4. tanya mas… sebelum menambahkan script ke block server harus punya domain dulu kah??? atau gimana???

    1. Betul mas, kalau tidak tahu darimana domainnya sukses dihosting? 😀 Kan harus diarahkan (A record) ke alamat IP VPSnya.

  5. trims… maaf banyak nanya… sudah sukses overAll… tetapi yang terbuka hanya homepage saja …. saya pakai CI mas… kenapa yaa??? trimakasih atas seluruh bantuan yang selama ini SUHU CHANDRA berikan… heeeee

  6. Trims Suhu…. ternyata masalah Case Sensitiv…. 4hari sya cari masalah log errornya….. sampek nangis gan….. sekarang tersenyum …. Trims yaaaa …. atas bantuannya …. Blog ini memang mantap….. 2 jempol untuk Abang Chandra….

    1. Ahaha. Sep mas bisa solved. 🙂

      Kalau boleh tahu solusi spesifiknya seperti apa ya? Cuma ganti huruf besar kecilnya? Apanya dan dimana? Konfigurasi Nginx atau CI?

      Saya yang penasaran. 😀

      1. di CI nya mas untuk controllers….. kalo d localhost windows… lancar jaya mas… di linux? sangat sensitive….

Tinggalkan Balasan ke Ahmad Fatah Batalkan balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *