at 6:06 AM

Setting Nginx dan PHP

Salah satu webserver yang ringan dan responsif adalah Nginx, selain Lighttpd juga tentunya, kali ini saya mau berbagi pengalaman bagaimana membuat settingan Nginx agar bisa mengeksekusi skrip PHP, saya menggunakan settingan fastcgi untuk menjalankan Php.

Hal yang pertama kali dilakukan adalah cek apakah php yang terinstall support untuk cgi atau fastcgi, yaitu dengan cara 
$php -v
atau 
$php-cgi -v
jika output dari perintah tersebut kurang lebih seperti ini ( terdapat kata cgi-fcgi )
maka PHP yang digunakan support dengan fastcgi, jika tidak ada keluar seperti yang digambar anda harus kompile ulang dengan menambahkan opsi --enable-fastcgi saat ./configure atau download php-cgi.


Setting PHP sebagai FastCGI

Pada bagian ini semua konfigurasi yang diatas harus telah benar, kalo tidak kemungkinan akan gagal ketika menjalankan Nginx atau PHP.
Buat sebuah file di /etc/init.d/php-fcgi, harus dengan akses root, kemudian ketik kode berikut didalam file tersebut.
#!/bin/bash
BIND=127.0.0.1:9000
USER=www-data
PHP_FCGI_CHILDREN=15
PHP_FCGI_MAX_REQUESTS=1000

PHP_CGI=/usr/local/bin/php-cgi
PHP_CGI_NAME=`basename $PHP_CGI`
PHP_CGI_ARGS="- USER=$USER PATH=/usr/bin PHP_FCGI_CHILDREN=$PHP_FCGI_CHILDREN PHP_FCGI_MAX_REQUESTS=$PHP_FCGI_MAX_REQUESTS $PHP_CGI -b $BIND"
RETVAL=0

start() {
      echo -n "Starting PHP FastCGI: "
      start-stop-daemon --quiet --start --background --chuid "$USER" --exec /usr/bin/env -- $PHP_CGI_ARGS
      RETVAL=$?
      echo "$PHP_CGI_NAME."
}
stop() {
      echo -n "Stopping PHP FastCGI: "
      killall -q -w -u $USER $PHP_CGI
      RETVAL=$?
      echo "$PHP_CGI_NAME."
}

case "$1" in
    start)
      start
  ;;
    stop)
      stop
  ;;
    restart)
      stop
      start
  ;;
    *)
      echo "Usage: php-fastcgi {start|stop|restart}"
      exit 1
  ;;
esac
exit $RETVAL

File ini untuk menjalankan PHP sebagai fastcgi.
Kemudian beri akses execute pada file.
#chmod +x /etc/init.d/php-fcgi


Setting pada Nginx

File konfigurasi Nginx pada system Linux ada di /etc/nginx/nginx.conf atau lebih baik edit file di /etc/nginx/sites-enabled/default.
Cari kata server pada file. kemudian didalam scope server tersebut, tambahkan konfigurasi berikut pada file.

server {
 listen   80;
 server_name  localhost;

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

 location / {
  root   /var/www/nginx-default;
  index  index.html index.htm index.php;
  if ( !-e $request_filename ) {
     rewrite ^(.+)$ /index.php?$1 last;
  }
 }
### << tambahan untuk php
 location ~ \.php$ {
   fastcgi_pass   127.0.0.1:9000;
   fastcgi_index  index.php;
   fastcgi_param  SCRIPT_FILENAME  /var/www/nginx-default$fastcgi_script_name;
   include fastcgi_params;
 }
### >> tambahan untuk php
}

Buat sebuah file dengan nama info.php isikan kode phpinfo() pada file.
Kemudian jalankan php-fcgi dan nginx, dan buka browser coba akses ke localhost/info.php jika telah keluar informasi tentang PHP, maka konfigurasi telah benar.

NOTE:

Hal yang paling penting dari semua diatas adalah pastikan php-fcgi telah dijalankan, jika tidak maka nginx akan mengeluarkan error seperti ini.

perintah untuk menjalakan php-fcgi
#service php-fcgi start
perintah untuk menjalankan nginx
#nginx
perintah untuk menghentikan nginx
#nginx -s stop


Referensi

http://wiki.nginx.org/PHPFcgiExample

Tulis Komentar dengan akun Facebook Anda.

0 comments:

Post a Comment