How to install and configure Nginx, PHP-FPM and APC on Debian

Update packages:

apt-get update

Install all components:

 apt-get install nginx php-fpm mysql-server php5-gd php5-mysql php5-apc

Configuring Nginx

This is our Nginx configuration file:

# Redirect from www.howtounix.info to howtounix.info
server {
  server_name www.howtounix.info;
  rewrite (.*) http://howtounix.info$1;
}

server {
  listen 80;
  server_name howtounix.info;

  access_log /home/webmaster/domains/howtounix.info/logs/access.log;
  error_log /home/webmaster/domains/howtounix.info/logs/error.log;

  root /home/webmaster/domains/howtounix.info/html;
  
  location / {
	try_files $uri @drupal;
  }

  location ~ \.php$ {
     fastcgi_pass   127.0.0.1:9000;
     fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
     include        fastcgi_params;
  }

  location @drupal {
	fastcgi_pass 127.0.0.1:9000;
        fastcgi_index  index.php;
	fastcgi_read_timeout 600;
        fastcgi_param  SCRIPT_FILENAME      $document_root/index.php;
        fastcgi_param  QUERY_STRING         q=$uri&$args;
        fastcgi_param  REQUEST_METHOD       $request_method;
        fastcgi_param  CONTENT_TYPE         $content_type;
        fastcgi_param  CONTENT_LENGTH       $content_length;
        fastcgi_param  REDIRECT_STATUS      200;
        fastcgi_param  SCRIPT_NAME          /index.php;
        fastcgi_param  REQUEST_URI          $request_uri;
        fastcgi_param  DOCUMENT_URI         $document_uri;
        fastcgi_param  DOCUMENT_ROOT        $document_root;
        fastcgi_param  SERVER_PROTOCOL      $server_protocol;
        fastcgi_param  GATEWAY_INTERFACE    CGI/1.1;
        fastcgi_param  SERVER_SOFTWARE      nginx/$nginx_version;
        fastcgi_param  REMOTE_ADDR          $remote_addr;
        fastcgi_param  REMOTE_PORT          $remote_port;
        fastcgi_param  SERVER_ADDR          $server_addr;
        fastcgi_param  SERVER_PORT          $server_port;
        fastcgi_param  SERVER_NAME          $server_name;  
  } 	
}

This is our fastcgi configuration file (/etc/nginx/fastcgi_params):

fastcgi_param  QUERY_STRING       $query_string;
fastcgi_param  REQUEST_METHOD     $request_method;
fastcgi_param  CONTENT_TYPE       $content_type;
fastcgi_param  CONTENT_LENGTH     $content_length;

fastcgi_param  SCRIPT_NAME        $fastcgi_script_name;
fastcgi_param  REQUEST_URI        $request_uri;
fastcgi_param  DOCUMENT_URI       $document_uri;
fastcgi_param  DOCUMENT_ROOT      $document_root;
fastcgi_param  SERVER_PROTOCOL    $server_protocol;

fastcgi_param  GATEWAY_INTERFACE  CGI/1.1;
fastcgi_param  SERVER_SOFTWARE    nginx/$nginx_version;

fastcgi_param  REMOTE_ADDR        $remote_addr;
fastcgi_param  REMOTE_PORT        $remote_port;
fastcgi_param  SERVER_ADDR        $server_addr;
fastcgi_param  SERVER_PORT        $server_port;
fastcgi_param  SERVER_NAME        $server_name;

# PHP only, required if PHP was built with --enable-force-cgi-redirect
fastcgi_param  REDIRECT_STATUS    200;

Configuring PHP-FPM

It's OK to use default configuration file /etc/php5/fpm/php-fpm.conf.

Configuring APC

Parameters required for APC configuration (/etc/php5/conf.d/apc.ini file):

extension=apc.so
; enable APC
apc.enabled=1    
; The number of shared memory segments
apc.shm_segments=1      
; The size of each shared memory segment
apc.shm_size=64    
; The number of seconds a cache entry is allowed to idle in a slot in case this
; cache entry slot is needed by another entry.
apc.ttl=7200






  1. genzo
    2013-04-16 10:39:43
    Where find php5-fpm?
  1. seb
    2013-04-30 11:14:11
    In the upcoming Wheezy Debian, it's in the official repositories.
    
    I've written two blog-post on how setting it up under Wheezy: http://knzl.de/setting-up-chrooted-php-fpm-with-apache-under-debian-wheezy/
    
    Although it's for Apache, all the chroot'ing stuff still applies.

Got a comment?

captcha =

Categories

  1. System (20)
    1. FreeBSD (5)
    2. Linux (9)
  2. Email (2)
  3. DNS (2)
  4. Databases (1)
  5. WebServer (27)
 
Copyright © 2012-2015 HowToUnix - *nix Howtos and Tutorials
All Rights Reserved.