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 (.*) $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
See also:
- How to install Nginx, PHP 5.3.10 and PHP-FPM on CentOS 5.7 — 6.2
- How to fix "upstream timed out (110: Connection timed out) while reading" error in Nginx and PHP-FPM
- How to fix "readv() failed (104: Connection reset by peer)" error in Nginx
- How to set up LEMP Server on Ubuntu 11.04
- Installing PHP accelerator APC on Linux
- How to install Nginx on CentOS
|
genzo
2013-04-16 08:39:43
|
Where find php5-fpm? |
|
seb
2013-04-30 09: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?