debian
Загрузка...
Х

Debian — это просто. Часть вторая. Установка LEMP стека — Nginx, MariaDB, PHP.

Почему именно Nginx+MariaDB+php-fpm? Потому, что это наиболее удачный вариант для проектов, которые ограничены мощностью своего сервера. Эта связка требует меньше всего ресурсов для своей работы и при этом показывает хорошие результаты быстродействия. От Apache2 я отказался давно, и не жалею. Хотя он бывает незаменим в некоторых проектах, которые имеют узкую направленность.

Настройки репозиториев Debian

Чтобы иметь всегда свежу версию nginx и php, добавим репозитории самого nginx и проекта dotdeb. А так как на дотдебе уже давно лежит php 7, то его мы и будем устанавливать.

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

wget -O - http://nginx.org/keys/nginx_signing.key|apt-key add -
wget -O - https://www.dotdeb.org/dotdeb.gpg|apt-key add -

Пропишем репозитории в файле sources.list:

nano /etc/apt/sources.list

Добавив в конце такие строки:

deb http://nginx.org/packages/mainline/debian/ jessie nginx
deb-src http://nginx.org/packages/mainline/debian/ jessie nginx

deb http://packages.dotdeb.org jessie all
deb-src http://packages.dotdeb.org jessie all

Применим изменения:

apt-get update

Установка LEMP-стека

И так, установим сам стек:

apt-get install nginx php7.0-fpm php7.0 mariadb-server php7.0-mysql

В процессе установки он попросит, чтобы вы установили пароль для root-пользователя базы данных. Вы можете оставить его пустым, но я рекомендую установить пароль.

Настройка nginx

Настроим nginx:

nano /etc/nginx/nginx.conf

Привидем его конфиг к такому содержимому:

user  nginx;
worker_processes  auto;

error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;


events {
    worker_connections  4096;
    use epoll;
    multi_accept on;
}


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;
    tcp_nodelay  on;

    open_file_cache max=200000 inactive=20s;
    open_file_cache_valid 30s;
    open_file_cache_min_uses 2;
    open_file_cache_errors on;

    keepalive_timeout  60;
    keepalive_requests 100;
    reset_timedout_connection on;
    client_body_timeout 10;
    send_timeout 2;

    #Настройка сжатия данных
    gzip  on;
    gzip_comp_level 5;
    gzip_min_length  1024;
    gzip_buffers     16 8k;
    gzip_types       text/plain text/css text/xml text/javascript application/x-javascript application/xml;
    gzip_static on;

    #SSL
    #ssl_session_cache   shared:SSL:20m;
    #ssl_session_timeout 10m;
    #ssl_prefer_server_ciphers on;
    #ssl_stapling on;
    #resolver 8.8.8.8;

    include /etc/nginx/sites-enabled/*.conf;
}

Теперь нужно сменить главную группу пользователя nginx и настроить права на папку, где будут лежать наши сайты.

mkdir /var/www
chown www-data:www-data /var/www
chmod 750 /var/www

usermod -g www-data nginx

Nginx будет работать с правами nginx и состоять в группе www-data, а PHP работает с правами www-data. При соблюдении такой маски прав, nginx имеет доступ чтения, PHP имеет полный доступ. Если нужно разграничить права PHP между двумя сайтами, то создается другой пользователь под которым будет запускаться spawn-fcgi и добавить nginx в его группу.

Настройка php7.0-fpm

Тут мы только расскоментируем в файле:

nano /etc/php/7.0/fpm/pool.d/www.conf

строки:

listen.owner = www-data
listen.group = www-data
listen.mode = 0660

Debian — это просто. Часть первая.

Оставить комментарий

Ваш адрес email не будет опубликован.

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.