Web-server на базе Nginx, php5-fpm, mysql на Debian Wheezy
Добавляем ключи и репозитории
# wget http://nginx.org/keys/nginx_signing.key # apt-key add nginx_signing.key # wget http://www.dotdeb.org/dotdeb.gpg # apt-key add dotdeb.gpg # apt-key adv --keyserver keys.gnupg.net --recv-keys 1C4CBDCDCD2EFD2A
/etc/apt/sources.list
deb http://nginx.org/packages/debian wheezy nginx deb http://packages.dotdeb.org wheezy all deb http://repo.percona.com/apt wheezy main
Обновляемся
# aptitude update
Ставим nginx
# aptitude install nginx
Создаём директорию для сайта и даём права
# /srv/www/site # chown -R www-data:www-data /srv/www/site
Правим конфиги (сам nginx начинает читать файл /etc/nginx/nginx.conf, все остальные подключаются директивой include. )
/etc/nginx/nginx.conf
user www-data; worker_processes 4; pid /var/run/nginx.pid; events { worker_connections 1024; } http { access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log; include /etc/nginx/mime.types; default_type application/octet-stream; sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 65; gzip on; gzip_http_version 1.0; gzip_comp_level 2; gzip_proxied any; gzip_vary off; gzip_types text/plain text/css application/x-javascript text/xml application/xml application/rss+xml application/atom+xml text/javascript application javascript application/json text/mathml; gzip_min_length 1000; gzip_disable "MSIE [1-6]."; client_max_body_size 10m; server_names_hash_bucket_size 64; types_hash_max_size 2048; types_hash_bucket_size 64; include /etc/nginx/conf.d/*.conf; }
Теперь конфиг проекта
/etc/nginx/conf.d/site.conf
server { listen 80; server_name site.ru; root /srv/www/site; index index.php index.html index.htm; access_log /var/log/nginx/site.access.log; error_log /var/log/nginx/site.error.log; location ~ \.php$ { fastcgi_pass 127.0.0.1:10001; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /srv/www/site/$fastcgi_script_name; fastcgi_intercept_errors on; include fastcgi_params; } }
Ставим php и модули(по мере надобности)
# aptitude install php5-fpm php5-cli php5-common php5-mysql php5-gd php5-curl php5-mcrypt php5-xcache php-pear
Создаём папку для логов
# mkdir /var/log/php5
Правим конфиги
/etc/php5/fpm/pool.d/site.conf
[site] prefix = /srv/www/$pool listen = 127.0.0.1:10001 listen.allowed_clients = 127.0.0.1 listen.owner = www-data listen.group = www-data listen.mode = 0660 user = www-data group = www-data pm = dynamic pm.max_children = 35 pm.start_servers = 5 pm.min_spare_servers = 2 pm.min_spare_servers = 2 pm.max_spare_servers = 8 pm.max_requests = 1000 pm.status_path = /status/php-fpm/$pool request_terminate_timeout = 0 request_slowlog_timeout = 1m slowlog = /var/log/php5/$pool.slow.log catch_workers_output = yes
Отключаем уязвимость: http://forum.antichat.ru/thread222063-php-fpm.html
прописываем в /etc/php5/fpm/php.ini
cgi.fix_pathinfo=0
Ставим percona-server(форк движка mysql)
# aptitude install percona-server-server-5.5 percona-server-client-5.5 percona-server-common-5.5 percona-toolkit percona-xtrabackup
Для запуска демона не только на локалхосте
/etc/mysql/my.cnf
bind address = 0.0.0.0
Для входа под рутом без пароля
/root/.my.cnf
[client] user=root pass=pass
Рестартим всю эту байду, проверяем и на выходе имеем уеб-сервер для своих нужд.