Nginx merupakan webserver yang saat ini sangat berkembang cepat dan juga mulai banyak digunakan baik sebagai web server ataupun proxy server. Kehandalan dan kestabilan Nginx sudah dicoba oleh situs-situs besar seperti WordPress, Hulu, RedHat dll. Penggunaan memory Nginx jauh lebih ringan dibandingkan dengan Apache. Di tutorial kali ini, distro yang digunakan adalah CentOs 6, PHP5 (PHP-FPM) dan MySQL.

Persiapan

Login ke server anda sebagai root, lalu update system anda menggunakan yum dengan perintah dibawah ini

yum clean all; yum update -y

ada baiknya anda melakukan reboot (restart) walaupun pada banyak kasus reboot tidak dibutuhkan. Sesuaikan jam di CentOs dengan timezone yang digunakan, disini saya akan menggunakan timezone Asia/jakarta (GMT+7)

rm -f /etc/localtime;cp /usr/share/zoneinfo/Asia/Jakarta /etc/localtime

satu lagi ubah /etc/sysconfig/clock sehingga isinya menjadi

ZONE="Asia/Jakarta"

Instalasi dan Konfigurasi

Ditahap ini akan dijelaskan cara instalasi dan konfigurasi Nginx, PHP-FPM dan MySQL.

PHP FPM

Install paket aplikasi PHP dengan perintah dibawah ini

yum install php-fpm php-cli php-mysql php-gd php-imap php-pear php-xml php-xmlrpc php-mbstring php-mcrypt php-snmp php-soap php-tidy -y

Edit file php.ini dan ubah baris

;cgi.fix_pathinfo=1
;date.timezone

menjadi

cgi.fix_pathinfo=0
date.timezone = Asia/Jakarta

terakhir jalankan daemon php-fpm

/etc/init.d/php-fpm start

MySQL

Install MySQL client dan MySQL server di CentOS dengan cara

yum install mysql-server mysql

jalankan MySQL server dan setting password anda

service mysqld restart; /usr/bin/mysql_secure_installation

Pada pilihan
Enter current password for root (enter for none): (tekan saja enter)
Set root password? [Y/n] (tekan enter)
New password: (buat password baru untuk root mysql anda, bukan password root linux anda)
Re-enter new password: (masukkan password seperti yang diatas sekali lagi)
Remove anonymous users? [Y/n] (tekan enter)
Disallow root login remotely? [Y/n] (tekan enter)
Remove test database and access to it? [Y/n] (tekan enter)
Reload privilege tables now? [Y/n] (tekan enter)

Nginx

Untuk installer Nginx, kita akan langsung mengambil dari repository yang disediakan oleh Nginx sendiri.

yum install http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm

lalu install nginx

yum install nginx

coba akses alamat ip anda melalui browser, tampilannya akan seperti gambar dibawah ini
welcome to nginx
file konfigurasi Nginx terletak di /etc/nginx/nginx.conf, buka file tersebut dan ubah nilai worker_processes dan keepalive_timeout menjadi seperti dibawah ini

worker_processes  5;
keepalive_timeout  3;

virtual host nginx berada di file /etc/nginx/conf.d/default.conf, karena disini kita hanya akan menggunakan 1 buah domain, maka kita akan langsung mengubahnya di default.conf. Edit default.conf hingga tampak seperti dibawah ini

server {
    listen       80;
    server_name  jaranguda.com;
 
    #charset koi8-r;
#    access_log  /var/log/nginx/log/host.access.log  main;
 
    location / {
        root   /usr/share/nginx/html;
        index  index.php index.html index.htm;
    }
 
    #error_page  404              /404.html;
 
    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
 
    # proxy the PHP scripts to Apache listening on 127.0.0.1:80
    #
    #location ~ \.php$ {
    #    proxy_pass   http://127.0.0.1;
    #}
    location ~ \.php$ {
        root           /usr/share/nginx/html;
        try_files $uri =404;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }
    # deny access to .htaccess files, if Apache's document root
    # concurs with nginx's one
    #
    #location ~ /\.ht {
    #    deny  all;
    #}
}

baris yang diubah adalah server_name, index dan location ~ \.php$.
Untuk melihat apakah Nginx, PHP dan MySQL telah terkoneksi buat sebuah file di /usr/share/nginx/html/ bernama info.php isikan script dibawah ini

<?php
phpinfo();
?>

buka di browser anda dengan format ip/info.php contoh 127.0.0.1/info.php
php fpm cgi nginx mysql

Join the Conversation

1 Comment

Your email address will not be published. Required fields are marked *

  1. Makasih banyak mas tutorialnya sangat membantu. Oh y tambahan mas, kok punya saya ketika diakses localhost gak tampil ya page seperti di atas, tapi malah tampil index file nya. Tolong bantuannya ya mas.