Web-server на базе Nginx, php5-fpm, mysql на Debian Wheezy — различия между версиями

Материал из megapuper
Перейти к: навигация, поиск
(Новая страница: «'''Установка''' Добавляем необходимые репозитории в /etc/apt/sources.list: deb http://packages.dotdeb.org squeeze all…»)
 
Строка 1: Строка 1:
'''Установка'''
 
  
 +
Добавляем ключи и репозитории
 +
# wget http://nginx.org/keys/nginx_signing.key
 +
# apt-key add nginx_signing.key
 +
# apt-key adv --keyserver keys.gnupg.net --recv-keys 1C4CBDCDCD2EFD2A
  
Добавляем необходимые репозитории в /etc/apt/sources.list:  
+
 
 +
/etc/apt/sources.list
 +
deb    http://nginx.org/packages/debian wheezy nginx
 +
deb-src http://nginx.org/packages/debian wheezy nginx
 +
deb    http://repo.percona.com/apt wheezy main
 
  deb http://packages.dotdeb.org squeeze all
 
  deb http://packages.dotdeb.org squeeze all
 
  deb-src http://packages.dotdeb.org squeeze all
 
  deb-src http://packages.dotdeb.org squeeze all
deb http://nginx.org/packages/debian/ squeeze nginx
 
deb-src http://nginx.org/packages/debian/ squeeze nginx
 
  
 
Устанавливаем ключи
 
apt-get update
 
apt-get install deb-multimedia-keyring
 
wget http://www.dotdeb.org/dotdeb.gpg -O- |apt-key add -
 
gpg --keyserver hkp://keys.gnupg.net --recv-keys ABF5BD827BD9BF62
 
gpg -a --export 7BD9BF62 | apt-key add -
 
  
 +
Обновляемся
 +
# aptitude update
 +
 +
 +
Ставим php и модули(по мере надобности)
 +
# aptitude install php5-fpm php5-cli php5-common php5-mysql php5-dev php5-gd php5-curl php5-mcrypt php5-xdebug php-pear
 +
 +
 +
Создаём папки
 +
# mkdir /var/log/php5
 +
# mkdir /srv/www
 +
 +
 +
Ставим nginx
 +
# aptitude install nginx
 +
 +
 +
Создаём директорию для сайта и даём права:
 +
# /srv/www/site
 +
# chown -R www-data:www-data /srv/www/site
  
Обновляемся
+
 
apt-get update
+
Приводим nginx.conf к примерно такому виду:
  
  
Перезагружаемся
 
reboot
 
  
  
Ставим необходимые пакеты
 
apt-get install nginx php5-cli php5-common sqlite php5-sqlite php5-suhosin php5-cgi php5-fpm
 
 
  mysql-server php5-mysql php5-gd php5-apc memcached php5-memcached
 
  mysql-server php5-mysql php5-gd php5-apc memcached php5-memcached
* nginx — web-сервер
 
* php5-cli php5-common php5-sqlite php5-suhosin php5-cgi php5-fpm php5-gd — модули php
 
* mysql-server php5-mysql — база данных mysql и модуль связи ее с php
 
* fcgiwrap — обработка perl скриптов
 
* php5-apc memcached php5-memcached — ускорители работы веб сервера
 
* siege — утилита для тестирования скорости работы сайта, понадобится при подборе количества обработчиков
 
  
  

Версия 20:50, 27 февраля 2014

Добавляем ключи и репозитории

# wget http://nginx.org/keys/nginx_signing.key
# apt-key add nginx_signing.key
# apt-key adv --keyserver keys.gnupg.net --recv-keys 1C4CBDCDCD2EFD2A


/etc/apt/sources.list

deb     http://nginx.org/packages/debian wheezy nginx
deb-src http://nginx.org/packages/debian wheezy nginx
deb     http://repo.percona.com/apt wheezy main
deb http://packages.dotdeb.org squeeze all
deb-src http://packages.dotdeb.org squeeze all


Обновляемся

# aptitude update


Ставим php и модули(по мере надобности)

# aptitude install php5-fpm php5-cli php5-common php5-mysql php5-dev php5-gd php5-curl php5-mcrypt php5-xdebug php-pear


Создаём папки

# mkdir /var/log/php5
# mkdir /srv/www


Ставим nginx

# aptitude install nginx 


Создаём директорию для сайта и даём права:

# /srv/www/site
# chown -R www-data:www-data /srv/www/site


Приводим nginx.conf к примерно такому виду:



mysql-server php5-mysql php5-gd php5-apc memcached php5-memcached


Создаем каталог для сайтов и логов, также устанавливаем права

mkdir /var/www
mkdir /var/log/nginx/
chown -R www-data:www-data /var/www
chmod -R 750 /var/www
#Дирректория для кеша 
mkdir /tmp/fcgi-cache/
chown www-data:www-data -R /tmp/fcgi-cache/


Настройка Nginx

Конфигурация Nginx состоит из нескольких файлов, сам nginx начинает читать единственный файл: /etc/nginx/nginx.conf, все остальные подключаются директивой include.

#Пользователь с правами которого работает nginx
user  www-data;
#Рекомендуется устанавливать по числу ядер
worker_processes  1;

pid        /var/run/nginx.pid;

#Максимальное число подключений к серверу на один worker-процесс
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;
   error_log  /var/log/nginx/error.log warn;

   sendfile        on;
   
   keepalive_timeout  65;

   gzip  on;

   include /etc/nginx/conf.d/*.conf;

}


Переходим к /etc/nginx/conf.d/default.conf;

server {
   listen       80;
   server_name  localhost;

   #charset koi8-r;
   #access_log  /var/log/nginx/log/host.access.log  main;

   location / {
       root   /srv/www;
       index  index.php index.html index.htm;
   }

   #error_page  404              /404.html;

   # redirect server error pages to the static page /50x.html
   #
   error_page   500 502 503 504  /50x.html;
   location = /50x.html {
       root   /srv/www;
   }

   location ~ \.php$ {
       root           /srv/www;
       fastcgi_pass    unix:/var/run/php5-fpm.sock;
       fastcgi_index  index.php;
       fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
       include        fastcgi_params;
   }

   # deny access to .htaccess files, if Apache's document root
   # concurs with nginx's one
   #
   #location ~ /\.ht {
   #    deny  all;
   #}

}


Стандартным способом проверяем работоспособность php

<?php
phpinfo();
?> 


Отключаем уязвимость: http://forum.antichat.ru/thread222063-php-fpm.html
прописываем в /etc/php5/fpm/php.ini

cgi.fix_pathinfo=0


Если все работает, то на этом этапе мы имеем рабочий web-сервер с поддержкой php.

Далее плюшки