Tutorial Debian 10 : Cara Instalasi & Konfigurasi Nginx dan PHP 7
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.
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
.
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