welcome to nginx

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.