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?
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
Setelah itu maka saatnya membuat file tgz/txz-nya dengan cara:
Setelah itu sekarang kita coba jalankan nginx-nya.
Buat dulu sebuah file index.html dengan isinya misal:
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
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:
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
nginxdi 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/nginxLalu ketik ls pada terminal:
# lsKira-kira punya saya tampilan list dari folder nginx itu seperti di atas.
README nginx-1.0.9.tar.gz nginx.info nginx.tar.gz.asc slack-desc
doinst.sh nginx.SlackBuild nginx.logrotate rc.nginx
Setelah itu maka saatnya membuat file tgz/txz-nya dengan cara:
# ./nginx.SlackBuildNah 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.confLalu 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 {Tapi apabila ada yang mempunyai settingan nginx.conf lain, silahkan aja pake yang punya anda itu, yang di atas adalah contoh punya saya.
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;
}
}
}
Setelah itu sekarang kita coba jalankan nginx-nya.
# chmod 755 /etc/rc.d/rc.nginxApabila 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:
# chmod /etc/rc.d/rc.nginx start
#!/bin/shOke setelah nginx berhasil di jalankan, maka langkah selanjutnya adalah menguji cobanya.Hehe
#
# 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
Buat dulu sebuah file index.html dengan isinya misal:
# nano /srv/httpd/htdocs/index.htmlSetelah itu jangan lupa disimpan.
Dan isi seperti ini:
Welcome to Nginx
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.confLalu 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;
}
bash-4.1# locate php | grep php-cgiDari 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.
/usr/bin/php-cgi
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-cgiLalu isi dengan:
#!/bin/shSebenarnya skrip di atas saya boleh utak-atik sendiri selama 4jam dan ketemulah skrip itu.Hehe maklum nubi banget..
#
# /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
Selanjutnya beri akses file itu dengan chmod 755:
# chmod 755 /etc/rc.d/rc.php-cgiOke setelah di beri hak akse, maka jalankan php-cgi itu dengan perintah:
# /etc/rc.d/rc.php-cgi startSetelah 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.phpSetelah 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..
Lalu isi dengan:
phpinfo();
?>
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;Lalu simpan..
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