Cara Install Nginx Web Server di Debian 9 Server

Sebelumnya saya sudah pernah membahas tentang Apache web server di Debian 9 server yang dibutuhkan untuk menjalankan website. Kali ini masih tentang web server yaitu Nginx, web server yang menjadi pesaing dari Apache. Selain menjadi web server, Nginx juga bisa menjadi load balancer dan reverse proxy.

*0. Install Nginx di Debian*

Jika sebelumnya sudah pernah install web server lain seperti Apache, nonaktifkan terlebih dahulu karena keduanya memakai nomor port yang sama yaitu 80 untuk protokol HTTP.

[INPUT]

1 2 3 systemctl stop apache2 systemctl disable apache2 systemctl status apache2

Install Nginx.

[INPUT]

1 apt install nginx -y

Uji hasil install Nginx dengan mengakses IP address server di web browser.

Halaman default Nginx

Kalau sebelumnya pernah install Apache web server, maka yang tampil adalah halaman default Apache. Hal ini terjadi karena direktori document root (direktori penyimpanan website) Nginx hasil install sama dengan document root Apache sebelumnya di direktori */var/www/html*. Sementara document root default untuk Nginx berada di direktori */usr/share/nginx/html*.

Halaman default Apache

*1. Setting Nginx Server Block (VirtualHost)*

Selanjutnya setting Nginx server block, kalau di Apache web server digunakan istilah virtualhost, dalam satu server bisa memasang banyak nama domain/subdomain. Di sini saya akan membuat server block *linux.oke* dan *debian.oke*.

Membuat direktori document root di */var/www/linux.oke* untuk linux.oke beserta file index.html untuk testing.

[INPUT]

1 2 3 mkdir -p /var/www/linux.oke cd /var/www/linux.oke nano index.html

Isi file index.html untuk linux.oke.

[INPUT]

1

selamat datang di linux.oke.

Selanjutnya document root untuk debian.oke.

[INPUT]

1 2 3 mkdir -p /var/www/debian.oke cd /var/www/debian.oke nano index.html

Isi file index.html untuk debian.oke.

[INPUT]

1

selamat datang di debian.oke.

Selanjutnya ke direktori */etc/nginx/sites-available* dan membuat file setting untuk server block linux.oke.

[INPUT]

1 2 cd /etc/nginx/sites-available nano linux.oke.conf

Isi dengan file setting server block.

[INPUT]

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 server { listen 80; listen [::]:80;   server_name www.linux.oke; root /var/www/linux.oke/;   access_log /var/log/nginx/linux.oke.access.log; error_log /var/log/nginx/linux.oke.error.log warn; }   # redirect dari non-www ke www. server { listen 80; listen [::]:80;   server_name .linux.oke;   return 301 http://www.linux.oke$request_uri; }

Selanjutnya server block untuk debian.oke.

[INPUT]

1 nano debian.oke.conf

Isinya.

[INPUT]

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 server {         listen 80;         listen [::]:80;           server_name www.debian.oke;         root /var/www/debian.oke/;           access_log /var/log/nginx/debian.oke.access.log;         error_log /var/log/nginx/debian.oke.error.log warn; }   # redirect dari non-www ke www. server {         listen 80;         listen [::]:80;           server_name .debian.oke;           return 301 http://www.debian.oke$request_uri; }

Aktifkan file setting server block yang telah dibuat dengan membuat link ke direktori */etc/nginx/sites-enabled*.

[INPUT]

1 2 ln -s /etc/nginx/sites-available/linux.oke.conf /etc/nginx/sites-enabled/ ln -s /etc/nginx/sites-available/debian.oke.conf /etc/nginx/sites-enabled/

Testing file setting nginx.

[INPUT]

1 2 3 nginx -t nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful

Restart service Nginx.

[INPUT]

1 2 systemctl restart nginx systemctl status nginx

*Pengujian Server Block* Sebelum melakukan pengujian server block di PC client, terlebih dahulu memasukkan IP address server beserta nama domainnya ke dalam file hosts. Di Linux file hosts berada di */etc/hosts* dan Windows berada di *c:\windows\system32\drivers\etc\hosts*.

[INPUT]

1 nano /etc/hosts

IP address server yang saya gunakan *192.168.100.1*.

[INPUT]

1 2 192.168.100.1 www.linux.oke linux.oke 192.168.100.1 www.debian.oke debian.oke

Selanjutnya akses nama domain di web browser. Masing-masing domain harus menampilkan halaman index.html yang berbeda dan bukan juga halaman default dari Nginx atau Apache seperti pada gambar di atas.

Halaman index.html linux.oke

Halaman index.html debian.oke

*3. Install Nginx + PHP*

Sekarang setting Nginx agar bisa menjalankan aplikasi website berbasis bahasa pemrograman PHP. Sama seperti pada pembahasan Cara Install PHP di Debian 9 Server, PHP yang digunakan yaitu versi PHP 7.2.

Pasang repository untuk PHP 7.2.

[INPUT]

1 2 3 apt install ca-certificates apt-transport-https wget -q https://packages.sury.org/php/apt.gpg -O- | sudo apt-key add – echo “deb https://packages.sury.org/php/ stretch main” | sudo tee /etc/apt/sources.list.d/php.list

Update repository dan install PHP-FPM 7.2 beserta extension (module) yang umumnya dibutuhkan.

[INPUT]

1 2 3 apt update apt upgrade apt install php7.2 php7.2-fpm php7.2-cli php7.2-common php7.2-opcache php7.2-curl php7.2-mbstring php7.2-mysql php7.2-zip php7.2-xml php-imagick

Buka file setting php.ini untuk PHP-FPM dan cari *cgi.fix_pathinfo* aktifkan (hapus tanda 😉 dan ubah nilainya menjadi 0.

[INPUT]

1 nano /etc/php/7.2/fpm/php.ini

[INPUT]

1 cgi.fix_pathinfo=

Restart service PHP-FPM.

[INPUT]

1 systemctl restart php7.2-fpm

Setting salah satu server block misalnya linux.oke agar bisa menjalankan PHP.

[INPUT]

1 nano /etc/nginx/sites-available/linux.oke.conf

Ubah menjadi.

[INPUT]

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 server {         listen 80;         listen [::]:80;           server_name www.linux.oke;         root /var/www/linux.oke/;           index index.php index.html index.htm;           location / {                 try_files $uri $uri/ /index.php?$query_string;         }           location ~ \.php$ {                 try_files $fastcgi_script_name =404;                 include fastcgi_params;                 fastcgi_pass                    unix:/var/run/php/php7.2-fpm.sock;                 fastcgi_index                   index.php;                 fastcgi_param DOCUMENT_ROOT     $realpath_root;                 fastcgi_param SCRIPT_FILENAME   $realpath_root$fastcgi_script_name;         }           access_log /var/log/nginx/linux.oke.access.log;         error_log /var/log/nginx/linux.oke.error.log warn; }   # redirect dari non-www ke www. server {         listen 80;         listen [::]:80;           server_name .linux.oke;           return 301 http://www.linux.oke$request_uri; }

Restart service Nginx.

[INPUT]

1 systemctl restart nginx

Buat file info.php yang berisi pemanggilan fungsi phpinfo() untuk menampilkan informasi PHP.

[INPUT]

1 nano /var/www/linux.oke/info.php

Isinya.

[INPUT]

1

Terakhir akses *http://linux.oke/info.php*, hasilnya seperti pada gambar di bawah ini.

Halaman PHP Info

Selamat mencoba 🙂

Leave a Reply

Your email address will not be published.