authoryanuarakhid - 19 Mar 2020 • Baca 5 Menit

Tutorial Debian 10 : Cara Instalasi & Konfigurasi Nginx dan PHP 7


Cara Instalasi Nginx dan PHP 7 serta Konfigurasi pada Debian 10 (Buster)

Nginx merupakan salah satu webserver terpopuler dan sangat powerfull pada saat ini. Ini karena performa dan kehandalanya dalam melayani berbagai request besar serta kemudahan dalam konfigurasinya. Selain itu dukungan terhadap web server ini sangat baik, komunitasnya pun sangat banyak diluar sana. Pembaruan dan patch kemanan terbaru pun selalu rutin dilakukan oleh pihak pengembangnya. Nginx pun Sudah banyak digunakan dalam Microservice, Cloud Computing, Web & Aplikasi Mobile, API Gateway dan Load Balancing. Pada Kesempatan ini saya akan berbagi tutorial mengenai cara instalasinya pada sistem operasi Debian 10. Selain itu kita juga akan menginstal PHP juga perlu diketahui Nginx ini menggunakan PHP-FPM untuk membaca dan memproses PHP.

# lsb_release -a
No LSB modules are available.
Distributor ID:	Debian
Description:	Debian GNU/Linux 10 (buster)
Release:	10
Codename:	buster

1. Cek Koneksi Internet

Karena kita akan menginstall menggunakan repository online maka hal pertama yang harus disiapkan adalah koneksi internet kita.

# ping -c 3 zonabiner.com
PING zonabiner.com (157.230.43.191) 56(84) bytes of data.
64 bytes from 157.230.43.191 (157.230.43.191): icmp_seq=1 ttl=50 time=101 ms
64 bytes from 157.230.43.191 (157.230.43.191): icmp_seq=2 ttl=50 time=58.2 ms
64 bytes from 157.230.43.191 (157.230.43.191): icmp_seq=3 ttl=50 time=59.3 ms

--- zonabiner.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 22ms
rtt min/avg/max/mdev = 58.184/72.739/100.765/19.822 ms

2. Update dan Upgrade

Hal kedua yang harus dilakukan adalah dengan mengupdate dan mengupgrade repository kita dengan perintah apt update && apt upgrade -y untuk yang masih kebingungan melakukan update dan upgrade serta mengkonfigurasi repository dapat membaca tutorial sebelumnya.

# apt update && apt upgrade -y
Hit:1 http://repo.ugm.ac.id/debian buster InRelease
Hit:2 http://repo.ugm.ac.id/debian-security buster/updates InRelease
Reading package lists... Done
Building dependency tree       
Reading state information... Done
All packages are up to date.
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Calculating upgrade... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

3. Instalasi Nginx

Untuk instalsi nginx sangat mudah yaitu dengan cukup mengetikan perintah apt install nginx. Maka proses instalasi akan berjalan.

# apt install nginx
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following additional packages will be installed:
  libgd3 libnginx-mod-http-auth-pam libnginx-mod-http-dav-ext libnginx-mod-http-echo
  libnginx-mod-http-geoip libnginx-mod-http-image-filter libnginx-mod-http-subs-filter
  libnginx-mod-http-upstream-fair libnginx-mod-http-xslt-filter libnginx-mod-mail
  libnginx-mod-stream libxpm4 libxslt1.1 nginx-common nginx-full
Suggested packages:
  libgd-tools fcgiwrap nginx-doc ssl-cert
The following NEW packages will be installed:
  libgd3 libnginx-mod-http-auth-pam libnginx-mod-http-dav-ext libnginx-mod-http-echo
  libnginx-mod-http-geoip libnginx-mod-http-image-filter libnginx-mod-http-subs-filter
  libnginx-mod-http-upstream-fair libnginx-mod-http-xslt-filter libnginx-mod-mail
  libnginx-mod-stream libxpm4 libxslt1.1 nginx nginx-common nginx-full
0 upgraded, 16 newly installed, 0 to remove and 0 not upgraded.
Need to get 2,179 kB of archives.
After this operation, 4,376 kB of additional disk space will be used.
Do you want to continue? [Y/n] [Tekan y untuk melanjutkan]

4. Cek Service

Cek service nginx apakah sudah running atau belum menggunakan perintah systemctl status nginx atau dengan perintah /etc/init.d/nginx status. Jika ada keterangan yang menyatakan running apa service nginx sudah berjalan dengan baik.

# systemctl status nginx
● nginx.service - A high performance web server and a reverse proxy server
   Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
   Active: active (running) since Thu 2020-03-19 17:52:26 WIB; 1h 17min ago
     Docs: man:nginx(8)
 Main PID: 911 (nginx)
    Tasks: 3 (limit: 1149)
   Memory: 10.3M
   CGroup: /system.slice/nginx.service

5. Cek dengan Web Browser

Cek apakah web server kita sudah bisa terbuka dengan mengetikan http://ip-address atau jika menginstall nginx di local pc kalian gunakan http://localhost/ . Jika sudah muncul seperti gambar dibawah ini maka kita sudah berhasil melakukan instalasi nginx.

Pilih versi

6. Instalasi PHP

Untuk melakukan instalasi PHP sangatlah mudah yaitu dengan menggunakan perintah apt install php7.3-fpm dan tunggulah hingga proses selesai.

# apt install php7.3-fpm 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following additional packages will be installed:
  libsodium23 php-common php7.3-cli php7.3-common php7.3-json php7.3-opcache php7.3-readline
  psmisc
Suggested packages:
  php-pear
The following NEW packages will be installed:
  libsodium23 php-common php7.3-cli php7.3-common php7.3-fpm php7.3-json php7.3-opcache
  php7.3-readline psmisc
0 upgraded, 9 newly installed, 0 to remove and 0 not upgraded.
Need to get 4,304 kB of archives.
After this operation, 18.6 MB of additional disk space will be used.
Do you want to continue? [Y/n] [Tekan y untuk melanjutkan]

6. Konfigurasi Nginx dan PHP

Konfigurasi bertujuan agar nginx bisa membaca dan meproses php. Konfigurasinya pun sangat muda kita hanya cukup mengedit file /etc/nginx/sites-available/default dan cari konfigurasi berikut ini.

# nano /etc/nginx/sites-available/default
# Add index.php to the list if you are using PHP
index index.html index.htm index.nginx-debian.html;

server_name _;

location / {
        # First attempt to serve request as file, then
        # as directory, then fall back to displaying a 404.
        try_files $uri $uri/ =404;
}

# pass PHP scripts to FastCGI server
#
#location ~ \.php$ {
#       include snippets/fastcgi-php.conf;
#
#       # With php-fpm (or other unix sockets):
#       fastcgi_pass unix:/run/php/php7.3-fpm.sock;
#       # With php-cgi (or other tcp sockets):
#       fastcgi_pass 127.0.0.1:9000;
#}

Edit agar menjadi seperti ini. Kemudian save dan keluar dengan mengunakan ctrl+x lalu y dan enter.

nginx
# Add index.php to the list if you are using PHP
index index.php index.html index.htm index.nginx-debian.html;

server_name _;

location / {
        # First attempt to serve request as file, then
        # as directory, then fall back to displaying a 404.
        try_files $uri $uri/ =404;
}

# pass PHP scripts to FastCGI server
#
location ~ \.php$ {
       include snippets/fastcgi-php.conf;
#
#       # With php-fpm (or other unix sockets):
       fastcgi_pass unix:/run/php/php7.3-fpm.sock;
#       # With php-cgi (or other tcp sockets):
#       fastcgi_pass 127.0.0.1:9000;
}

Setelah itu kita cek dahulu apakah ada konfigurasi yang salah atau tidak menggunakan perintah nginx -t.

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

Jangan lupa untuk merestart service nginx.

# systemctl restart nginx

7. Membuat File PHP

Kita buat file php sederhana untuk melakukan tes apakah webserver nginx sudah bisa untuk mebaca dan memproses file php.

# cat > /var/www/html/tes.php

ketikan code PHP dibawah ini, jika sudah ketik ctrl+d.

<?php
phpinfo();
?>

8. Pengetesan pada Web Browser

Setelah kalian selesai melakukan penginstalan dan konfigurasi nginx dan php maka sekarang saatnya kita tes dengan membuka url http://ip-address/tes.php atau http://localhost/tes.php.

Pilih versi

Dengan begitu kita telah selesai melakukan tahap penginstalan, konfigurasi, dan pengetesan web server nginx pada server kita selanjutnya kita bisa memcoba untuk menginstall database server maupun cms. Sekian dari saya semoga berguna dan bermanfaat.

Zona Biner

Tentang Penulis‎ ‏‏

author

Akhid Yanuar A.F

Linux System Administration | Computer Network | Operating System | Cloud Computing | IT Security | Linux Enthusiast 🐧

Find Me