Sunday, February 17, 2013

Install NGINX dan WordPress di CentOS xx

Corat Coret lagi ah.. mumpung masih anget :)

Gw pribadi mungkin ga akan nulis kalo ga ada triggernya, awalnya dikarenakan server VPS yang gw kelola RAM nya tidak besar..( karena untuk layanan VPS dengan ram yang besar cukup memakan biaya…dan forum atau blog yang berdomisili di situ pun tidak selalu dalam keadaan high traffic..) tapi bila dalam keadaan high traffic, ini baru timbul masalah..

Selama ini gw lebih familiar dengan apache, yup karena dia sudah otomatis terinstall pada saat gw install linux full option ( install linux full option itu sama kaya beli mobil full package, dashboard from wood, pake sun roof, pake TV 8″ di setiap headrest.. ga dipake selalu tapi makan ruang.. :) ). Apache memang terkenal sebagai web server yang bagus dengan tingkat kompabilitas yang baik. tesalah satu kelemahannya adalah doi rakus ram, dan dengan RAM yang terbatas <1GB dengan menggunakan Apache, akan memaksa cpu menggunakan memori swap untuk memproses. Dan seperti yang kita tau, memproses sesuatu dengan menggunakan memori swap itu berkali2 lipat lamanya dibanding menggunakan RAM.

Salah satu admin VPS ( dony sebut saja namanya :P ) akhirnya install nginx..dan wow, nyata..si server jarang ngehang dan konsumsi ramnya sangat berubah drastis. Akhirnya saya juga tertarik untuk menggunakan NGINX.. ( Oiya, baca NGINX bukan engginks yaa…tapi Engine-X :) ) )
untuk install NGINX pertama-tama kita input alamat repository nya terlebih dahulu ( karena default repo CentOS tidak ada nginx.. )

[root@MimiZu /]# cd etc/yum.repos.d/
[root@MimiZu yum.repos.d]# nano nginx.repo
isikan file dibawah ini :
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/5/$basearch/
gpgcheck=0
enabled=1
dan SAVE.
lalu lakukan :
[root@MimiZu yum.repos.d]# yum update
[root@MimiZu yum.repos.d]# yum install nginx
Ini akan menginstall NGINX nya, dan setelah prosesnya selesai..langsung jalankan
[root@MimiZu yum.repos.d]# /etec/init/nginx start

Test browse dengan pointing ip address server anda menggunakan browser favorit anda. seharusnya hasilnya seperti ini

Sekarang kita install wordpress nya. perlu diketahui sebelumnya, WordPress membutuhkan mod rewrite dsb. inilah beberapa tricky nya..
secara default, direktory2 yang tersedia di nginx adalah sebagai berikut :
[root@MimiZu nginx]# ls -al
total 64
drwxr-xr-x   5 root root  4096 Feb 15 19:47 .
drwxr-xr-x 120 root root 12288 Feb 15 13:59 ..
drwxr-xr-x   2 root root  4096 Jan 18 16:40 conf.d
-rw-r–r–   1 root root   909 Dec 15 22:19 fastcgi_params
-rw-r–r–   1 root root  2837 Dec 15 22:19 koi-utf
-rw-r–r–   1 root root  2223 Dec 15 22:19 koi-win
-rw-r–r–   1 root root  3463 Dec 15 22:19 mime.types
-rw-r–r–   1 root root   680 Feb 15 19:47 nginx.conf
-rw-r–r–   1 root root   544 Dec 15 22:19 scgi_params
drwxr-xr-x   2 root root  4096 Feb 15 19:40 sites-available
-rw-r–r–   1 root root   570 Dec 15 22:19 uwsgi_params
-rw-r–r–   1 root root  3610 Dec 15 22:19 win-utf
saya membuat sebuah direktory untuk sites yang bakal saya launch. dengan nama Vhost
[root@MimiZu nginx]#mkdir vhosts
di dalam nginx.conf nya saya include direktory vhostnya. jadi semua direktori web yang akan dipanggi semua terletak di vhost. berikut potngan nginx.conf saya
==== Cut ====
http {
    include       /etc/nginx/mime.types;
    access_log  /var/log/nginx/access.log;
    sendfile        on;
    #tcp_nopush     on;
    #keepalive_timeout  0;
    keepalive_timeout  65;
    tcp_nodelay        on;
    gzip  on;
    gzip_disable “MSIE [1-6]\.(?!.*SV1)”;
    include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/vhosts/*;
}
===== Cut =====
di direktory site available ganti default.conf menjadi default
[root@MimiZu /]#cp /etc/nginx/sites-available/default.conf default
[root@MimiZu /]# nano default
isikan dengan ini
=================================================================================
server {
listen 80;
server_name http://www.riverson09.com riverson09.com;
root /home/whoosah/sites/blog;
if ($http_host != “www.riverson09.com”) {
rewrite ^ http://www.riverson09.com$request_uri permanent;
}
index index.php index.html;
location = /favicon.ico {
log_not_found off;
access_log off;
}
location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}
# Deny all attempts to access hidden files such as .htaccess, .htpasswd, .DS_Store (Mac).
location ~ /\. {
deny all;
access_log off;
log_not_found off;
}
location / {
try_files $uri $uri/ /index.php?$args;
}
# Add trailing slash to */wp-admin requests.
rewrite /wp-admin$ $scheme://$host$uri/ permanent;
location ~*  \.(jpg|jpeg|png|gif|css|js|ico)$ {
expires max;
log_not_found off;
}
location ~ \.php$ {
include /etc/nginx/fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
=================================================================================
mounting ke browser anda deh ( dalam contoh saya http://www.riverson09.com..sebenernya saya ga punya domain itu :D hanya untuk simulasi saja.. :) )
dan wordpress siap untuk diinstall…
Alhamdulillah….
Regards
Ari
Source

0 comments: