Mediovski Technology

nginx, PHP5, rewrite dla Zend Framework

Data: 30 Październik 2009 16:55 Autor: Mariusz Miłejko | Kategoria: PHP,Serwer

Metoda instalacji i konfiguracji serwera nginx na maszynie wyposażonej w Debiana, lub Ubuntu (sama konfiguracja zadziała na dowolnej innej).

1). Pobranie i instalacja pakietów

sudo apt-get install nginx php5-cgi

2). Konfiguracja ogólna nginx (/etc/nginx/nginx.conf)

user www-data;
worker_processes  1;
 
error_log  /var/log/nginx/error.log;
pid        /var/run/nginx.pid;
 
events {
 worker_connections	1024;
}
 
http {
 include       /etc/nginx/mime.types;
 default_type  application/octet-stream;
 
 access_log	/var/log/nginx/access.log;
 
 sendfile        on;
 #tcp_nopush     on;
 
 #keepalive_timeout  0;
 keepalive_timeout  65;
 tcp_nodelay        on;
 
 gzip  on;
 client_max_body_size 256m;
 
 include /etc/nginx/conf.d/*.conf;
 include /etc/nginx/sites-enabled/*;
}

3). konfiguracja virtual-hostów (skonfigurujemy jednego o nazwie: default)

server {
 listen 80;
 
 server_name localhost;
 access_log /var/log/nginx/localhost/access.log;
 error_log /var/log/nginx/localhost/error.log error;
 
 autoindex on;
 
 location / {
   root /var/www;
   index index.php;
 }
 
 location /My_Zend_Project/public {
   root /var/www/My_Zend_Project/public;
   index index.php;
   if (!-f $request_filename) {
   rewrite  ^(.*)$  /My_Zend_Project/public/index.php  last;
   break;
 }
 
 location ~ .php$ {
   fastcgi_pass 127.0.0.1:9000;
   fastcgi_index index.php;
   fastcgi_param SCRIPT_FILENAME /var/www$fastcgi_script_name;
   include /etc/nginx/fastcgi_params;
 }
 
 location ~ /\.ht {
   deny  all;
 }
}

4). Uruchamiamy procesy PHP5 do obsługi żądań od nginx’a, najpierw należy utworzyć plik (o nazwie np. php-spawn) o tej zawartości:

#!/bin/sh
 
PHP_FCGI_CHILDREN=4
PHP_FCGI_MAX_REQUESTS=1000
 
DAEMON=/usr/bin/php5-cgi
DAEMON_ARGS="-q -b 127.0.0.1:9000 &"
PIDFILE=/var/run/php-fcgi-spawn.pid
EXEC_AS_USER=www-data
 
export PHP_FCGI_CHILDREN PHP_FCGI_MAX_REQUESTS
 
echo "PHP killing children."
start-stop-daemon --stop --quiet \
--chuid $EXEC_AS_USER --pidfile $PIDFILE --make-pidfile \
--exec $DAEMON -- $DAEMON_ARGS \
echo "PHP starting children."
start-stop-daemon --start --quiet --background \
--chuid $EXEC_AS_USER --pidfile $PIDFILE --make-pidfile \
--exec $DAEMON -- $DAEMON_ARGS \

5). Utworzony plik (o nazwie np. php-spawn) należy umieścić np. w /usr/bin, oraz nadać mu uprawnienia uruchomieniowe

sudo chown root:root php-spawn
sudo chmod 744 php-spawn

6). Następnie możemy zrestartować nginx’a, oraz uruchomić nasz plik uruchamiający procesy PHP

sudo /etc/init.d/nginx restart
sudo /usr/bin/php-spawn

Jeśli wszystko zadziałało mamy uruchomiony nginx z obsługą PHP5.

RSS
Get Adobe Flash player