16 Ekim 2012 Salı

Ubuntu nginx uzerine php fastcgi kurulumu (php-fcgi)

Daha önceden bu yazımızda nginx kurulumunu anlatmıştık. (sadece kurmak, ayarlamak değil.) Şimdi ise, nginx üzerine php fastcgi kurma işlemini yapalım. Aşağıdaki komut ile sistemimize gerekli paketleri kuralım.
apt-get install php5-cli php5-cgi spawn-fcgi psmisc
Artık sistemimizde php fcgi ile ilgili paketler yüklendi. Ancak bunu dürtecek bir mekanizmamız henüz yok. Bu yüzden nginx ayarlarında henüz bunu çağıramıyoruz. Şimdi bunu dürtebilir hale getirelim. Aşağıdaki içerikler ile /usr/bin/php-fcgi adında bir dosya üretelim. Bu dosyaya göre php 9000 nolu portta çalışacak, ve 127.0.0.1 (localhost) için hizmet verecektir. Bu hizmet www-data adlı kullanıcı ve www-data adlı grup ile ilgili oluşacaktır. /usr/bin/php-fcgi dosyası
#!/bin/bash    FASTCGI_USER=www-data  FASTCGI_GROUP=www-data  ADDRESS=127.0.0.1  PORT=9000  PIDFILE=/var/run/php-fcgi/php-fcgi.pid  CHILDREN=6  PHP5=/usr/bin/php5-cgi    /usr/bin/spawn-fcgi -a $ADDRESS -p $PORT -P $PIDFILE -C $CHILDREN -u $FASTCGI_USER -g $FASTCGI_GROUP -f $PHP5
Chmod vererek de çalıştırabilir hale getirelim. Bunun için de aşağıdaki kodu çalıştıralım :
chmod +x /usr/bin/php-fcgi
Her şey yolunda gidiyor gibi gözüküyor. Ancak bu bir hizmet ve başlatma durdurma gibi özellikleri olması gerekiyor. yani özetle, /etc/init.d/ içerisine bir şeyler yapmamız gerekiyor.   /etc/init.d/php-fcgi adlı bir dosya üretiniz. /etc/init.d/php-fcgi dosyası : 
#!/bin/bash    PHP_SCRIPT=/usr/bin/php-fcgi  FASTCGI_USER=www-data  FASTCGI_GROUP=www-data  PID_DIR=/var/run/php-fcgi  PID_FILE=/var/run/php-fcgi/php-fcgi.pid  RET_VAL=0    case "$1" in      start)        if [[ ! -d $PID_DIR ]]        then          mkdir $PID_DIR          chown $FASTCGI_USER:$FASTCGI_GROUP $PID_DIR          chmod 0770 $PID_DIR        fi        if [[ -r $PID_FILE ]]        then          echo "php-fcgi already running with PID `cat $PID_FILE`"          RET_VAL=1        else          $PHP_SCRIPT          RET_VAL=$?        fi    ;;      stop)        if [[ -r $PID_FILE ]]        then          kill `cat $PID_FILE`          rm $PID_FILE          RET_VAL=$?        else          echo "Could not find PID file $PID_FILE"          RET_VAL=1        fi    ;;      restart)        if [[ -r $PID_FILE ]]        then          kill `cat $PID_FILE`          rm $PID_FILE          RET_VAL=$?        else          echo "Could not find PID file $PID_FILE"        fi        $PHP_SCRIPT        RET_VAL=$?    ;;      status)        if [[ -r $PID_FILE ]]        then          echo "php-fcgi running with PID `cat $PID_FILE`"          RET_VAL=$?        else          echo "Could not find PID file $PID_FILE, php-fcgi does not appear to be running"        fi    ;;      *)        echo "Usage: php-fcgi {start|stop|restart|status}"        RET_VAL=1    ;;  esac  exit $RET_VAL
Neredeyse geldik. Aşağıdaki komutlarla da php-fcgi yı başlatabilirsiniz.
chmod +x /etc/init.d/php-fcgi  update-rc.d php-fcgi defaults  /etc/init.d/php-fcgi start
Tabi bu noktada nginx imizi de artık ayarlamamız gerekiyor. /etc/nginx/sites-available/www.deneme.com dosyası oluşturalım. 
server {      server_name www.deneme.com deneme.com;      access_log /srv/www/www.deneme.com/logs/access.log;      error_log /srv/www/www.deneme.com/logs/error.log;      root /srv/www/www.deneme.com/public_html;        location / {          index  index.html index.htm;      }        location ~ \.php$ {          include /etc/nginx/fastcgi_params;          fastcgi_pass 127.0.0.1:9000;          fastcgi_index index.php;          fastcgi_param SCRIPT_FILENAME /srv/www/www.deneme.com/public_html$fastcgi_script_name;      }  }
Artık /srv/www/www.deneme.com/public_html/index.php dosyamızı ve içerisine phpinfo(); komutunu yazıp çalıştırabilir hale geldik. hemen bir nginx i başlatalım, veya çalışıyorsa yeniden başlatalım.  
service nginx restart
Devamı için : Ubuntu nginx uzerine php fastcgi kurulumu (php-fcgi)

Hiç yorum yok:

Yorum Gönder

Yorumunuzu esirgemeyiniz..