Panduan cara install Nginx, MariaDB, PHP atau LEMP stack di Linux Ubuntu 18.04 LTS. Selaku bonus, di panduan ini dilengkapi dengan instalasi Redis server dan OPCache bagi meningkatkan performa web server serta konfigurasi dan optimasi Nginx.
Diawali dengan update program Linux
apt update
Langkah 1 – Install MariaDB
Secara default di Linux 18.04 LTS paket sistem MariaDB telah menggunakan versi mutakhir, yaitu MariaDB versi 10. begitupun dengan PHP telah versi 7.2.
apt install mariadb-server -y
Kemudian tingkatkan kemanan instalasi MariaDB, seperti setup password bagi akun root, disable remote akses MySQL dan menghapus database yang tak terpakai, (test), jalankan petunjuk berikut
mysql_secure_installation
Jawab pertanyaan berikut ini dengan yang saya tandai warna merah, lalu tekan Enter.
Enter current password for root (enter for none): Tekan Enter
Set root password? [Y/n] y
Remove anonymous users? [Y/n] y
Disallow root login remotely? [Y/n] y
Remove test database and access to it? [Y/n] y
Reload privilege tables now? [Y/n] y
Langkah 2 – Install PHP dan modul
Baris petunjuk dibawah ini akan meng-install modul-modul urgen agar Nginx, MySQL dan PHP dapat berfungsi dan terintegrasi dengan bagus, diantaranya: php-fpm
dan php-mysql
.
apt install php-fpm php-mysql php-cli php-gd php-ldap php-odbc php-pdo php-pear php-mbstring php-xml php-xmlrpc php-mbstring php-snmp php-soap -y
Install OPCache dan Redis
Langkah ini optional, Kamu dapat melewatinya kalau sedang terburu-buru atau seketika ke langkah 3 – install Nginx.
OPCache bermanfaat bagi meningkatkan performa PHP dengan cara menyimpan skrip precompiled bytecode pada shared memori, sehingga tak perlu mengandung dan mem-parsing skrip di setiap request.
apt install php-opcache
Menej php.ini
nano /etc/php.ini
Cari baris berikut, sesuaikan
cgi.fix_pathinfo=0
upload_max_filesize = 32M
post_max_size = 128M
max_execution_time = 90
Dilanjut dengan pemasangan redis-server dan ekstensi php-redis
Selain OPCache, Redis (REmote DIctionary Server) akan melengkapi kesempurnaan performa web server digunakan bagi caching, message broker dan database agar dapat mengurangi pemakaian bandwith dan server load, betul-betul cocok bagi situs yang sibuk.
apt install redis server apt install php-redis -y
Aktifkan redis
systemctl start redis-server
systemctl enable redis-server.service
Setelah selesai proses instalasi, cek apakah Redis telah aktif
redis-cli
Ketik ping
dan Enter
, hasilnya harusnya seperti ini
127.0.0.1:6379> ping
PONG
127.0.0.1:6379>
Pengguna WordPress, silahkan ikuti panduan cara install dan konfigurasi Redis.
Langkah 3 – Install Nginx
Di Linux Ubuntu 18.04 paket sistem Nginx web server versi terbaru telah ada di repository, jadi seketika saja
apt install nginx -y
Kemudian start service Nginx dan aktifkan dikala program booting
systemctl start nginx systemctl enable nginx
Langkah 4 – Konfigurasi dan optimasi Nginx
Menej konfigurasi virtual host Nginx pakai nano teks editor.
echo > /etc/nginx/sites-available/default nano /etc/nginx/sites-available/default
Kemudian copy-paste theme berikut
server {
listen 80;
listen [::]:80;
server_name _;
location /error/ {
alias /usr/share/nginx/html/errors/;
}
root /var/www/html/;
index index.htm index.html index.php;
location / {
try_files $uri $uri/ /index.php?$args;
}
access_log /var/log/nginx/access_log;
access_log off;
error_log /var/log/nginx/error_log error;
# security
error_page 403 = 404;
location /. { access_log off; log_not_found off; deny all; }
location $ { access_log off; log_not_found off; deny all; }
location = /robots.txt { access_log off; log_not_found off; }
location = /favicon.ico { access_log off; log_not_found off; }
# compress
gzip on;
gzip_comp_level 5;
gzip_min_length 256;
gzip_proxied any;
gzip_vary on;
gzip_types application/atom+xml application/javascript application/json application/ld+json application/manifest+json application/rss+xml application/vnd.geo+json application/vnd.ms-fontobject application/x-font-ttf application/x-web-app-manifest+json application/xhtml+xml application/xml font/opentype image/bmp image/svg+xml image/x-icon image/png image/gif image/jpeg text/cache-manifest text/css text/plain text/vcard text/vnd.rim.location.xloc text/xml
text/vtt text/x-component text/x-cross-domain-policy;
# text/html telah dikompres oleh gzip module
# caches
location * .(jpg|jpeg|gif|css|png|js|ico|html)$ { access_log off; expires max; }
location * .(woff|svg)$ { access_log off; log_not_found off; expires 30d; }
location * .(js)$ { access_log off; log_not_found off; expires 7d; add_header Cache-Control public, no-transform; }
# php block
location .php?$ {
try_files $uri = 404;
include fastcgi_params;
fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_intercept_errors on;
fastcgi_split_path_info ^(.+.php)(.*)$;
# Cegah kebocoran informasi versi
fastcgi_hide_header X-Powered-By;
}
}
Restart service php-fpm
dan nginx
systemctl restart php-fpm systemctl restart nginx
Kemudian bikin file informasi.php
bagi memeriksa apakah Nginx, PHP-FPM serta modul-modul PHP lain telah bekerja dengan bagus. Jalankan petunjuk berikut:
echo <?php phpinfo(); ?> | sudo tee /var/www/html/informasi.php
Ubah hak kepemilikan (chown) www-data
dan chmod file (644) dan folder (755) yang terdapat di direktori web root /var/www/html
chown -R www-data:www-data /var/www/html
find /var/www/html -type d -exec chmod 755 {} ;
find /var/www/html -type f -exec chmod 644 {} ;
Akses menggunakan browser http://ip-server, pastikan kolom Server API yaitu FPM/FastCGI dan ada ekstensi Redis disana.
Langkah 5 – Troubleshooting
Sekiranya IP tak dapat diakses lewat browser, cek apakah firewall aktif, kalau iya tambahkan service http (buka port 80) dengan petunjuk berikut:
ufw allow http
ufw allow https
Selamat mencoba ?
Catatan:
Sebelum dipublikasikan panduan ini telah dites di Linux Ubuntu 18.04.2 LTS dan bekerja dengan betul-betul bagus. Di panduan berikutnya akan dibahas cara install LEMP di CentOS 7.
Referensi:
Sumber https://idnetter.com