Latar Belakang

Menggunakan Nginx sebagai web server memiliki keunggulan tersendiri dibandingkan dengan menggunakan Apache. Salah satu keunggulan yang paling menonjol adalah ada pada performa dan kecepatan yang diberikan, dan sangat cocok bagi pengguna server dengan resource yang kecil seperti kapasitas RAM kurang dari 1 GB.

Meskipun Nginx cepat bukan berarti tidak bagus dibandingkan Apache, malahan hampir bisa disejajarkan dengannya. Seperti yang kita tahu, bahwa Apache memiliki keunggulan yang terletak pada banyaknya module yang ia didukung, dan Apache juga sudah lebih dahulu ada dibandingkan dengan Nginx.

Tidak dipungkiri lagi setiap kelebihan pasti ada kekurangan, begitu juga dengan Nginx. Salah satu kekurangan yang dimiliki Nginx adalah tidak ada dukungan .htaccess (baca: Konversi .htaccess ke Nginx), dengan demikian kita akan kesulitan dalam hal pembuatan pretty URL seperti menghilangkan index.php dan menghilangkan GET URL Paramenter.

Tulisan kali ini kita akan membahas mengenai cara pemasangan Wordpress di Nginx yang disertai dukungan pretty URL pada postingan di Wordpress tersebut, seperti menghilangkan index.php pada URL.

Daftar Isi

Apa itu Wordpress

Wordpress adalah aplikasi sumber terbuka (open source) yang dibangun menggunakan bahasa pemerograman PHP. Ia merupakan salah satu CMS (Content Management System) yang cukup populer dipakai sebagai pembuatan website.

Pada awalnya Wordpress digunakan untuk media blog, kini Wordpress telah berkembang tak hanya sekadar untuk situs pembuatan blog, melainkan juga untuk berbagai macam situs seperti company profile, e-commerce, dan forum.

Persyaratan

Untuk memulai melakukan tutorial ini, ada beberapa persyaratan yang harus Anda miliki.

  1. Memasang Nginx, PHP dan MariaDB/MySQL. Bisa Anda lihat pada tulisan saya sebelumnya yakni: Memasang Nginx, PHP dan Mariadb di Arch Linux.
  2. Server atau VPS setidaknya memiliki kapasitas RAM paling kecil 128 MB, akan tetapi saya menyarankan untuk lebih dari itu. Saya sendiri menggunakan VPS dengan RAM 512 MB.
  3. Masang Wget.

Tahap Unduhan

Pertama-tama kita unduh terlebih dahulu Wordpress-nya:

$ wget https://wordpress.org/latest.tar.gz

Kemudian ekstrak:

$ tar xvzf latest.tar.gz

Lalu langsung saja kita pindahkan misalnya di direktori default Nginx yakni di:

/usr/share/nginx/html

Direktori tersebut berlaku untuk berbagai distro GNU/Linux.

$ sudo mv wordpress /usr/share/nginx/html

Tahap Konfigurasi

Karena sebelumnya kita memindahkan satu direktori Wordpress ke /usr/share/nginx/html. Jadi kita perlu mengkonfigurasi virtual host dari berkas yang bernama default yakni:

Pengguna Debian/Ubuntu

$ sudo vim /etc/nginx/sites-available/default

Pengguna Centos/Fedora/RHEL dan Arch Linux

Kebanyakan pengguna distro Non Debian/Ubuntu konfigurasi virtual host terletak pada:

$ sudo vim /etc/nginx/nginx.conf

Ganti root direktori dengan /usr/share/nginx/html/wordpress; Juga index tambahkan index.php. Seperti berikut:

...

root /usr/share/nginx/html/wordpress;
index index.php index.html index.htm;

...

Kemudian location / {} tambahkan ini:

...

location / {
  try_files $uri /index.php$is_args$args;
}

...

Skrip di atas agar Wordpress Anda dapat menggunakan pretty URL.

Kemudian tambahkan ini, agar Nginx dapat menjalankan PHP:

location ~ \.php$ {
	fastcgi_split_path_info ^(.+\.php)(/.+)$;
	
	# Pengguna Ubuntu 14.04
	# fastcgi_pass unix:/var/run/php5-fpm.sock;
	
	# Pengguna Ubuntu 16.04
	# fastcgi_pass unix:/var/run/php7.0-fpm.sock;
	
	# Pengguna Arch Linux
	# fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
	
	# Jika Anda tidak tahu, coba cek di direktori /var/run/
	# ls -l /var/run/
	# fastcgi_pass unix:/var/run/ ...
	
	fastcgi_index index.php;
	include fastcgi_params;
}

Perhatikan kode di atas untuk kode fastcgi_pass, saya tulis untuk berbagai distro. Sengaja saya beri comment (tanda pagar #) karena di sesuaikan dengan distro yang Anda gunakan. Ada sedikit perbedaan letak socket dari php-fpm ini. Sesuaikan dengan distro yang Anda gunakan. Umumnya semua berada pada direktori /var/run. Jika sudah benar, maka uncomment salah satu dari kode di atas.

Kemudian ubah semua permission direktori 755 sedangkan berkas 644, yakni dengan cara berikut:

$ cd /usr/share/nginx/html/wordpress
$ sudo find . -type d -exec chmod 0755 {} \;
$ sudo find . -type f -exec chmod 0644 {} \;

Kemudian jangan lupa pula owner nya ubah ke www-data (bagi pengguna Debian/Ubuntu) dan http (bagi pengguna Arch Linux/RHEL/Fedora/Centos ). Saya asumsikan Anda hanya pengguna Wordpress sendiri. Dalam artian lain, tidak ada user lain selain Anda yang menggunakan Wordpress.

$ sudo chown http:http -R /usr/share/nginx/html/wordpress/*

Tahap Pembuatan Database

Sebelum beralih ke tahap instalasi Anda harus membuat databasesnya terlebih dahulu, kita gunakan Mariadb/MySQL. Pertama-tama login dahulu MariaDB/MySQL:

$ sudo mysql -u root -p'Password Anda'

Dan kita buat databasenya:

mysql > create database wordpress_db;

Kita buatkan username juga:

mysql > create user wp_user_admin@localhost identified by 'PasswordAnda';
mysql > grant all privileges on wordpress_db.* to wp_user_admin@localhost;
mysql > flush privileges;

Lalu keluar dengan mengetik perintah:

mysql > \q

Tahap Instalasi Wordpress

Sekarang baru kita memasuki tahap pamasangan WP. Langsung saja buka domain atau IP address Anda di peramban (browser):

wordpress

Klik Let's Go. Kemdian,

wordpress

Masukan nama database, username, dan password yang telah kita buat sebelumnya. Kemudian masalah table prefix, bebas Anda isi apa saja asalkan tambahkan underscore (garis bawah) setelahnya. Lalu Klik Submit. Dan,

wordpress

Langsung saja, klik Run the Install.

wordpress

Masukan informasi yang dibutuhkan di atas. Jika sudah, langsung klik Install Wordpress.

wordpress

Jika sudah seperti gambar di atas, Anda bisa langsung log In. Dan hasilnya akan seperti gambar di bawah ini:

wordpress

Jika berhasil Anda akan diarahkan ke halaman administrasi.

Tambahan

Untuk mempercantik WP kita, bisa buat prety URL dari Settings -> Permalink dan pilih:

wordpress

Disesuaikan dengan situs Anda. Penulis lebih memilih post name, karena menurut penulis ini pilihan yang baik untuk situs yang tidak terlalu sering di-_update_. Jika situs Anda seperti situs berita baiknya pilih day and name. Karena dengan demikian terlihat artikel Anda apakah sudah lama atau belum.

wordpress

Semoga bermanfaat 😄