Headlines News :
Home » , » Instalasi Nginx, dan php di Slackware

Instalasi Nginx, dan php di Slackware

Written By Unknown on Monday, March 18, 2013 | 7:48 PM

Mungkin diantara teman-teman yang baru memakai Slackware agak bingung juga dengan cara penginstalan Nginx (engine x) di Slackware, karena selain tutorialnya yang sedikit, dan caranya pun tak 100% berhasil, gak segampang distro lainnya yang tinggal apt-get atau yum aja. Lalu apa si nginx itu?
Menurut pengetahuan saya, nginx (engine x) itu adalah sebuah web server seperti apache atau lighttpd, akan tetapi nginx itu mempunyai kelebihan disisi pemakaian resource memorinya. Untuk penjelasan lebih lanjut, mungkin om Google bisa membantu.
Nah sekarang disini saya akan menjelaskan cara penginstalan nginx pada Slackware (dalam contoh ini saya menggunakan Slackware 13.37).
Pertama yang harus kita butuhkan disini adalah nginx-nya itu sendiri yang bisa di download di www.slackbuilds.org dan paket pendukungnya yaitu Zlib yang bisa didapatkan di situs www.pkgs.org, atau bisa mendapatkannya di repository Slackware
Sudah pada tahu kan untuk penginstalan melalui Slackbuilds? Kalau belum maka ini caranya:
Setelah di Download buat direktori nginx di Desktop anda dan simpan file-nya. Setelah di simpan saatnya melakukan penginstalan. Pertama yang harus di lakukan adalah buka terminal dan menuju direktory nginx anda yang sudah di save tadi di desktop dengan cara:
# cd /home/user-anda/Desktop/nginx
Lalu ketik ls pada terminal:
# ls

README nginx-1.0.9.tar.gz nginx.info nginx.tar.gz.asc slack-desc
doinst.sh nginx.SlackBuild nginx.logrotate rc.nginx
Kira-kira punya saya tampilan list dari folder nginx itu seperti di atas.
Setelah itu maka saatnya membuat file tgz/txz-nya dengan cara:
# ./nginx.SlackBuild
Nah maka dengan perintah di atas, maka akan terbuat sebuah file nginx berekstensi tgz/txz yang terletak pada direktory /tmp. Sekarang install file nginx itu:
# installpkg /tmp/nginx*
Maka dari perintah-perintah di atas itu, kita telah selesai menginstall nginx pada Slackware kita. Langkah selanjutnya adalah dengan mengedit file nginx.conf yang terletak di direktory /etc/nginx/nginx.conf
# nano /etc/nginx/nginx.conf
Lalu ubah isinya menjadi seperti ini:
user nobody;
worker_processes 1;

error_log  /var/log/nginx/error.log;


pid        /var/log/nginx/nginx.pid;
events {
worker_connections 768;
http {
include mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';


access_log /var/log/nginx/access.log;

sendfile on;

keepalive_timeout 65;

gzip on;
gzip_disable "msie6";

map $scheme $server_https {
default off;
https on;
}

server {
listen 80;
server_name localhost;
autoindex on;

location / {
root /srv/httpd/htdocs;
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 html;
}

# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
root /srv/httpd/htdocs;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME script$fastcgi_script_name;
include fastcgi_params;
fastcgi_intercept_errors on;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}

# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
location ~ /\.ht {
deny all;
}
}
}
Tapi apabila ada yang mempunyai settingan nginx.conf lain, silahkan aja pake yang punya anda itu, yang di atas adalah contoh punya saya.
Setelah itu sekarang kita coba jalankan nginx-nya.
# chmod 755 /etc/rc.d/rc.nginx
# chmod /etc/rc.d/rc.nginx start
Apabila ada error, maka coba cek kembali setting dari nginx.conf tersebut. Oya apabila yang belum ada rc.nginx-nya, maka ini isi script rc.nginx punya saya:
#!/bin/sh
#
# Nginx daemon control script.
# Written for Slackware Linux by Cherife Li .

BIN=/usr/sbin/nginx
CONF=/etc/nginx/nginx.conf
PID=/var/run/nginx.pid
nginx_start() {
# Sanity checks.
if [ ! -r $CONF ]; then # no config file, exit:
echo "$CONF does not appear to exist. Abort."
exit 1
fi

if [ -s $PID ]; then
echo "Nginx appears to already be running?"
exit 1
fi

echo "Starting Nginx server daemon..."
if [ -x $BIN ]; then
$BIN -c $CONF
fi
}

nginx_test_conf() {
echo "Checking configuration for correct syntax and"
echo "then trying to open files referenced in configuration..."
$BIN -t -c $CONF
}

nginx_term() {
echo "Shutdown Nginx quickly..."
kill -TERM $(cat $PID)
}

nginx_stop() {
echo "Shutdown Nginx gracefully..."
kill -QUIT $(cat $PID)
}

nginx_reload() {
echo "Reloading Nginx configuration..."
kill -HUP $(cat $PID)
}

nginx_upgrade() {
echo "Upgrading to the new Nginx binary."
echo "Make sure the Nginx binary has been replaced with new one"
echo "or Nginx server modules were added/removed."
kill -USR2 $(cat $PID)
sleep 3
kill -QUIT $(cat $PID.oldbin)
}

nginx_rotate() {
echo "Rotating Nginx logs..."
kill -USR1 $(cat $PID)
}

nginx_restart() {
nginx_stop
sleep 3
nginx_start
}

case "$1" in
check)
nginx_test_conf
;;
start)
nginx_start
;;
term)
nginx_term
;;
stop)
nginx_stop
;;
reload)
nginx_reload
;;
restart)
nginx_restart
;;
upgrade)
nginx_upgrade
;;
rotate)
nginx_rotate
;;
*)
echo "usage: `basename $0` {check|start|term|stop|reload|restart|upgrade|rotate}"
esac
Oke setelah nginx berhasil di jalankan, maka langkah selanjutnya adalah menguji cobanya.Hehe
Buat dulu sebuah file index.html dengan isinya misal:
# nano /srv/httpd/htdocs/index.html

Dan isi seperti ini:


Welcome to Nginx



Setelah itu jangan lupa disimpan.
Setelah disimpan, sekarang saatnya membuka browser anda (misal chrome) dan buka alamat ini "http://localhost/index.html"
Apabila tampilannya seperti di bawah ini, maka penginstalan nginx anda telah berhasil:

Oke setelah penginstalan nginx berhasil, sekarang saatnya mengkonfigurasi php, agar php itu dapat di baca oleh nginx maka kita perlu mengkonfigurasi nginx-nya. Sebelum saya menjelaskan caranya, saya akan bercerita dulu sedikit.Hehe
Sebenarnya rata-rata para pengguna Linux untuk menjalankan php pada nginx itu, mereka menambahkan php-fpm. Akan tetapi pada pengalaman saya selama 2 hari ini berkuting dengan nginx, sampai Slackware 13.37 saya error dengan php-fpm itu membawa masalah sampai-sampai beberapa perintah command di Slackware error semua. Misal seperti ls, installpkg, removepkg, dan masih banya perintah-perintah lainnya. Dan cara untuk mengatasi itu adalah install ulang. Tapi tenang dulu.He saya punya cara lain, dan nanti di lain posting akan saya bahas. Oya balik lagi ke php-fpm, karena php-fpm ini membuat error pada slackware saya, maka untuk mengatasi itu saya menggunakan php-cgi langsung.
Sekarang saatnya mengkonfigurasi nginx.conf agar bisa mengeksekusi file dengan ekstensi .php
# nano /etc/nginx/nginx.conf
Lalu ubah di bagian php menjadi seperti ini:
location ~ \.php$ {
root /srv/httpd/htdocs;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME script$fastcgi_script_name;
include fastcgi_params;
fastcgi_intercept_errors on;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
Oke setelah itu saatnya menjalankan php-cgi dengan address 127.0.0.1 dengan port 9000. Tapi sebelum itu kita cek dulu php-cgi-nya di Slackware kita, sebenarnya php-cgi ini di Slakcware saya sudah tersedia sebelumnya pas saat pertama kali install Slackware, jadi tinggal pake saja. Coba cek dengan perintah ini:
bash-4.1# locate php | grep php-cgi
/usr/bin/php-cgi
Dari perintah di atas, maka php-cgi telah ada dan terletak di direktory /usr/bin/php-cgi. Oya sebenarnya untuk pengganti php-cgi, yaitu php-fpm juga bisa digunakan untuk mengeksekusi file php. Tapi ada kebingungan tersendiri buat saya karena php-fpm tidak bisa mengeksekusi file yang menyangkut ke mysql. Entah saya harus ubah dimananya agar php-fpm itu bisa mengeksekusi mysql itu. Maka dari itu, kita langsung aja menggunakan php-cgi dan gak usah pake php-fpm.
Setelah di ketahui php-cgi ada dimana, sekarang saatnya membuat skrip untuk menjalankan php-cgi pada port yang saya sebutkan di atas dan menyimpannya di /etc/rc.d/ dengan nama rc.php-cgi.
# nano /etc/rc.d/rc.php-cgi
Lalu isi dengan:
#!/bin/sh
#
# /etc/rc.d/rc.php-cgi
#
# Start/stop/restart
#
# To make php-cgi start automatically at boot, make this
# file executable:  chmod 755 /etc/rc.d/rc.php-cgi
#
#created by Imron Rosdiana
case "$1" in
  'start')
   echo "Starting php-cgi"
   /usr/bin/php-cgi -b 127.0.0.1:9000 &
  ;;
'stop')
    echo "Shutdown php-cgi"
    killall php-cgi
  ;;
  'restart')
    echo "Shutdown php-cgi....."
    killall php-cgi
    sleep 3
    echo "Starting php-cgi..."
    /usr/bin/php-cgi -b 127.0.0.1:9000 &
  ;;
  *)
    echo "Usage: $0 {start|stop|restart}"
  ;;
esac
Sebenarnya skrip di atas saya boleh utak-atik sendiri selama 4jam dan ketemulah skrip itu.Hehe maklum nubi banget..
Selanjutnya beri akses file itu dengan chmod 755:
# chmod 755 /etc/rc.d/rc.php-cgi
Oke setelah di beri hak akse, maka jalankan php-cgi itu dengan perintah:
# /etc/rc.d/rc.php-cgi start
Setelah php-cgi berhasil berjalan pada alamat 127.0.0.1 port 9000, sekarang coba kita buat file info.php dan disimpan di /srv/httpd/htdocs yang isinya:
# nano /srv/httpd/htdocs/info.php

Lalu isi dengan:
phpinfo();
?>
Setelah itu sekarang coba buka browser anda dan ketik url berikut ini: http://localhost/info.php. Apabila tampilannya seperti di bawah ini, maka anda telah berhasil..


Oya ada sedikit tambahan dari saya, agar si nginx dan php-cgi itu terkesekusi otomatis saat kita menghidupkan komputer besok-besoknya.. Maka tambahkan skrip di bawah ini pada /etc/rc.d/rc.M:
# Start Nginx Web server;
if [ -x /etc/rc.d/rc.nginx ]; then
  . /etc/rc.d/rc.nginx start
fi

# Start php-cgi;
if [ -x /usr/bin/php-cgi ]; then
  . /etc/rc.d/rc.php-cgi start
fi
Lalu simpan..
Share this post :

Post a Comment

 
Copyright © 2011. COMASTNET - All Rights Reserved