По установке debian`а на этот девайс написано много и подробно, поэтому этот вопрос рассматривать не будем, и предположим, что на устройстве у нас уже есть развернутый и обновлённый Debian Wheezy.
Для начала входим в режим рута, набрав в консоли
sudo su
К сожалению, в настоящее время ещё нет репозитория NginX для Debian Wheezy, только для squeeze, поэтому свежей версии 1.3.13 мы не увидим, зато не будем заниматься правкой файла /etc/apt/sources.list и получением GPG-ключа, а просто поставим имеющийся в стандартном репозитории (archive.raspbian.org) NginX версии 1.2.1 и все необходимые зависимости командой:
apt-get update && apt-get install nginx php5-fpm php5-cgi php5-cli php5-common php5-mysql php5-gd php-pear php5-mcrypt mc
Теперь создадим пользователя веб-сервера и необходимые директории:
useradd www-data
groupadd www-data
usermod -g www-data www-data
mkdir /var/www
chmod -R 775 /var/www
chown -R www-data: /var/www
Теперь в любом любимом редакторе открываем файл /etc/nginx/sites-enabled/default и пишем что-то типа:
server {
listen 80; ## listen for ipv4; this line is default and implied
root /var/www;
index index.php index.htm;
location / {
try_files $uri $uri/ /index.php;
}
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}
}
Устраняем известную уязвимость связки PHP — Nginx:
Открываем файл /etc/php5/fpm/php.ini
Находим строку:
;cgi.fix_pathinfo = 1
и меняем её на:
cgi.fix_pathinfo = 0
Заодно там же устанавливаем кодировку и часовой пояс. Для Москвы и городов в её часовом поясе это выглядит так:
default_charset = "utf-8"
date.timezone = Europe/Moscow
Открываем конфиг nginx (/etc/nginx/nginx.conf) и правим:
user www-data;
worker_processes 1; #устанавливается исходя из количества ядер
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
gzip on;
gzip_proxied any;
gzip_min_length 1100;
gzip_http_version 1.0;
gzip_buffers 4 8k;
gzip_comp_level 4; # Оптимальная степень сжатия
gzip_types text/plain text/css application/x-javascript text/xml application/xml application/xml+rss text/javascript;
include /etc/nginx/conf.d/*.conf; # Стандартное расположение конфигов
include /etc/nginx/sites-enabled/*; # Apache-подобное расположение
}
Обратите внимание, что в нашем случае мы можем размещать конфиги как в папке /etc/nginx/sites-available/, создавая на них симлинки в директорию /etc/nginx/sites-enabled/, так и в /etc/nginx/conf.d/, причём без создания симлинков, но с обязательным добавлением .conf в конце файла. На самом деле, и от этого условия мы можем избавиться, если напишем в конфигурационном файле выше «include /etc/nginx/conf.d/*;«.
Открываем конфиг FPM (mcedit /etc/php5/fpm/pool.d/www.conf) и пишем туда что-то типа:
[www]
user = www-data
group = www-data
listen = /var/run/php5-fpm.sock
pm = dynamic
pm.max_children = 4
pm.start_servers = 1
pm.min_spare_servers = 1
pm.max_spare_servers = 2
pm.max_requests = 500
chdir = /
Перезапускаем PHP-FPM и nginx и радуемся
/etc/init.d/php5-fpm restart
service nginx restart
Сервер установлен и готов к работе. Теперь на него можно установить ProFTPd, MySQL, memcached и настроить виртуальные хосты, но про это как-нибудь в другой раз.
Изменено: 02.03.2013