IPTEK

Rewrite Joomla dan WordPress pada Nginx Web Server + PHP-FPM

Ilustrasi: Nginx Web Server

Hari gini masih pake Apache Server..sudah ketinggalan zaman. Pakai Nginx dong, apalagi kalau satu paket dengan PHP-FPM untuk PHP Handler-nya dijamin maknyus. Web akan terasa enteng, meskipun pengunjung ribuan tidak akan berasa apa-apa. Ditambah dengan module memchache + cloudflare makin ngacir lagi.

Nginx banyak digunakan oleh web-web besar yang memiliki pengunjung ribuan. Kehandalannya tidak diragukan. Nginx mampu bekerja dengan dukungan memori RAM rendah dan tidak memakan daya CPU yang tinggi. Namun, permasalahan Nginx yang sering dijumpai adalah tidak bekerja pada module Rewrite. Itu karena Nginx tidak membaca .htaccess, tidak seperti Apache yang memiliki fasilitas Rewrite melalui .htaccess. Nginx memiliki kode khusus agar bisa rewrite. 

Joomla dan WordPress akan gagal loading di saat membaca kode rewrite pada nginx. Akan muncul pesan "Error 502". Nah, bagaimana caranya agar Joomla dan WordPress berjalan di Nginx? Saya akan berbagi di sini jurusnya.

Di sini saya menggunakan Nginx Web Server dari Centmin Mod, yang developmentnya aktif dan dukungan forumnya luas. Banyak juga module-module lain, seperti VPSSIM, atau LEMP Stack, yang menyediakan fasilitas instalasi Nginx. Tapi, saya sudah coba semuanya, dan akhirnya menjatuhkan pilihan pada Centmin Mod.

OS yang saya pakai adalah Linux Centos 6 64 bit. Untuk instalasi Centmin Mod  (Nginx Stack) adalah sebagai berikut:

1. Login ke root dengan Putty atau Bitvise SSH.

2. Masukkan command untuk instal Centmin:

cd /usr/local/src

curl -sL http://centminmod.com/installer.sh | bash

System akan otomatis mendownload dan install Centmin Mod (Nginx + PHP-FPM dan berbagai module lain, seperti Memcache, APC, dan banyak lagi. Tunggu sampai selesai (lumayan lama kira-kira 30 menit).

(Setelah install centmin, untuk install wordpress, step by step-nya dapat dilihat secara lengkap di link ini. Dan, untuk phpmyadmin di link ini). 

3. Setelah selesai, buka file igbinary.ini yang ada di folder:  /etc/centminmod/php.d/ atau bisa dengan menggunakan program nano di Linux:

nano /etc/centminmod/php.d/igbinary.ini

4. Edit baris session.serialize_handler=igbinary, tambahkan tanda ; (titik koma) di depannya, menjadi seperti ini:

session.serialize_handler=igbinary

menjadi

;session.serialize_handler=igbinary

Simpan dengan perintah CTRL + O dan keluar dengan perintah CTRL + X. 

Fungsi perintah ini adalah agar Joomla dan WordPress bisa masuk ke Backed atau Administrator. Tanpa edit igbinary.ini Joomla dan WordPress tidak akan bisa login ke backend. 

5. Cari file Nginx vhost untuk domain yang dimasukkan, contohnya domain.com.conf yang ada di folder /usr/local/nginx/conf/conf.d

6. Edit dan masukkan kode berikut, sehingga kode lengkapnya akan menjadi seperti ini:

server {

  server_name domain.com;

  server_name_in_redirect off;

 

# ngx_pagespeed & ngx_pagespeed handler

#include /usr/local/nginx/conf/pagespeed.conf;

#include /usr/local/nginx/conf/pagespeedhandler.conf;

#include /usr/local/nginx/conf/pagespeedstatslog.conf;

 

  # limit_conn limit_per_ip 16;

#ssi  on;

 

  access_log /home/nginx/domains/domain.com/log/access.log combined buffer=32k;

  error_log /home/nginx/domains/domain.com/log/error.log;

 

  root /home/nginx/domains/domain.com/public;

 

  location / {

 

#block common exploits, sql injections etc

#include /usr/local/nginx/conf/block.conf;

 

  # Enables directory listings when index file not found

  #autoindex  on;

 

  # Shows file listing times as local time

  #autoindex_localtime on;

 

  # Enable for vBulletin usage WITHOUT vbSEO installed

  #try_files         / /index.php;

  try_files $uri $uri/ /index.php?q=$request_uri;

  }

  #pass php files to fastcgi

   location ~ \.php$

   {

               fastcgi_pass 127.0.0.1:9000;

               fastcgi_index index.php;

               include /usr/local/nginx/conf/fastcgi_params;

               fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

      #set expires to 0 to stop caching of php files

      expires 0;

   }

  location ~ ^/

   {

   #set expires to 30d to cache static files

   expires 30d;

   #file doesn't exist, will need to be sent to php

   if (!-e $request_filename)

   {

   rewrite ^/(.*)$ /index.php?q=$1 last;

   }

   }

        # caching of files

        location ~* \.(ico|pdf|flv)$ {

                expires 1y;

        }

        location ~* \.(js|css|png|jpg|jpeg|gif|swf|xml|txt)$ {

                expires 14d;

        }

  include /usr/local/nginx/conf/staticfiles.conf;

  include /usr/local/nginx/conf/php.conf;

  include /usr/local/nginx/conf/drop.conf;

  #include /usr/local/nginx/conf/errorpage.conf;

}

Note: ganti domain.com dengan nama domain yang Anda masukkan.

7. Terakhir, masukkan komen Chown -R, Folder Permission 755.

cd  /home/nginx/domains/domain.com/

chown -R nginx:nginx public

Sudah selesai. Joomla atau WordPress Anda akan mulus berjalan di Nginx web server dan bisa rewrite sebagaimana di Apache. Jadi untuk masalah SEO tidak akan ada masalah. 

Ini perbandingan kecepatan antara menggunakan Apache Web Server dengan Nginx berikut:

Menggunakan Apache Web Server dan Cpanel:

Setelah menggunakan Nginx tanpa Control Panel, speed menjadi di bawah 2 detik..wooow, dan tanpa error-error "Internal Server Error" yang sangat mengganggu jika menggunakan Apache Web Server:

 

Sekian, jika ada yang mau didiskusikan silahkan.**[harjasaputra]

Blogger | Serverholic | Empat Anak | Satu Istri | Kontak: [email protected]

Subscribe to our newsletter

Sign up here to get the latest articles and updates directly to your inbox.

You can unsubscribe at any time
Subscribe
Notify of
guest
6 Komentar
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
batara
batara
9 years ago

habis instal Centmin Mod mya terus instal wordpress nya gmn ?

Saputra
Saputra
9 years ago

@Batara: untuk instal wordpress di Centmin, masukkan command centmin di root. Pilih nomor 2 untuk create virtual host domain. dan ikuti perintahnya. Untuk DNS option pilih nomor 3. Dan masukkan ns1.domain.com (nama domain yang dimasukkan) ke tempat subscribe domain.
Terima kasih
Harja Saputra

marlina
marlina
8 years ago

kl untuk joomla di windows bagaimana?

Saputra
Saputra
8 years ago

@Marlina: Joomla untuk windows (localhost) bisa menggunakan software Xampp atau Appserv..
Thx
Saputra

Na Na
Na Na
8 years ago

You can try L2MP Stack (http://l2mp.ml) It support htaccess and Litespeed 6x Faster than Apache

web development
7 years ago

Thank you, I’ve just been looking for information about this topic for a long time
and yours is the greatest I have came upon till now.
But, what in regards to the bottom line? Are you
sure about the supply?