Настройте NGINX, PHP-FPM и MariaDB в Debian 8

Это руководство покажет вам, как правильно установить и настроить «альтернативный» стек LAMP в Debian 8, используя NGINX, PHP Fast Process Manager и MariaDB.

NGINX

NGINX - это «сначала обратный прокси, потом веб-сервер». Это популярная и растущая альтернатива Apache, предлагающая большую гибкость и лучшую производительность во многих случаях В этом уроке мы будем использовать его как наш веб-сервер.

Запустите ваш любимый SSH-клиент и войдите на ваш сервер. Для пользователей Windows «PuTTY» - это бесплатный и легкий SSH-клиент. Пользователи Linux и Mac могут использовать терминал, включенный по умолчанию в их операционную систему. В этом руководстве мы предполагаем, что вы вошли на свой сервер как пользователь root.

Для начала давайте просто удостоверимся, что все обновлено. Введите следующее, чтобы проверить наличие обновлений, а затем установить их.

apt-get update && apt-get upgrade

Мы будем редактировать наши файлы конфигурации в vim. Vim не установлен по умолчанию, поэтому давайте установим его!

apt-get install vim

Теперь пришло время установить NGINX. Мы хотим установить последнюю версию NGINX из официального репозитория NGINX Debian.

wget http://nginx.org/keys/nginx_signing.key
apt-key add nginx_signing.key
echo 'deb http://nginx.org/packages/debian/ jessie nginx' >> /etc/apt/sources.list
echo 'deb-src http://nginx.org/packages/debian/ jessie nginx' >> /etc/apt/sources.list
apt-get update && apt-get install nginx

Теперь нам нужно немного подправить конфигурацию NGINX. Перейдите в каталог конфигурации.

cd /etc/nginx

Быстрый урок Vim

Используйте клавиши со стрелками для навигации по текстовому документу. Чтобы начать редактирование, нажмите кнопку «Вставить» на клавиатуре. Если на вашей клавиатуре нет кнопки вставки, нажмите клавишу «i». Внизу vim вы заметите, что теперь написано «INSERT». Режим вставки позволит вам удалить через клавишу возврата или вставить новые символы, набрав их.

Давайте откроем наши nginx.confи покопаемся:

vi nginx.conf

Давайте сменим пользователя по умолчанию, проверим количество рабочих процессов и отключим журнал доступа.

Директивы «user» и «worker_processes» находятся в верхней части. Попробуйте значения ниже:

Обратите внимание, что вы захотите установить «worker_processes» на количество ядер ЦП, доступных на вашем сервере. В этом примере у нас есть 1, что по умолчанию для NGINX.

user www-data;
worker_processes 1;

Мы также хотим отключить журнал доступа, чтобы улучшить производительность ввода-вывода. Перемещайтесь вниз с помощью клавиш со стрелками, пока не найдете «access_log». Измените его следующим образом:

access_log off;

И наконец, мы установим «client_max_body_size» в соответствии с некоторыми изменениями, внесенными в PHP позже. Давайте спасем беду и сделаем это сейчас. Добавьте чуть ниже "access_log":

client_max_body_size 12m;

Когда вы закончите редактирование, нажмите «Esc» на клавиатуре. Vim больше не будет говорить «INSERT» в нижней части файла.

Чтобы сохранить наши изменения и выйти из vim, нажмите следующую последовательность клавиш:

SHIFT :(colon)
wq
Press "Enter"

Вышеупомянутый vim kung fu запишет ваши изменения на диск и выйдет из vim, вернув вас обратно в оболочку bash.

Теперь нам нужно сделать конфигурацию для нашего примера! Мы также удалим другие примеры конфигураций. Попробуйте следующее:

cd conf.d
rm example_ssl.conf default.conf
vi my_site.conf

Мы сделаем краткий и простой www.confпример, основанный на конфигурации NGINX по умолчанию, но с несколькими изменениями. Нажмите insert и вы можете скопировать / вставить приведенный ниже пример.

Не забудьте отредактировать директиву root так, чтобы она указывала на корневой каталог вашего сайта, а имя_сервера соответствовало вашему домену.

server {
    listen 80;

    root /path/to/your/website;
    index index.php index.html index.htm;

    server_name mydomainname.com www.mydomainname.com;

    location / {
            try_files $uri $uri/ /index.php;
    }

    location ~ \.php$ {
            try_files $uri =404;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include fastcgi_params;
            fastcgi_pass unix:/var/run/php5-fpm.sock;
    }
}

Теперь мы закончили с разделом конфигурации NGINX этого урока. Мы перезапустим NGINX чуть позже, сразу после установки PHP.

PHP-FPM

PHP-FPM - это быстрый менеджер процессов PHP. Это требуется при использовании NGINX, потому что в отличие от Apache, NGINX не запускает PHP как модуль. Это было сделано, чтобы уменьшить объем памяти NGINX. Помните ту часть о том, что NGINX в первую очередь является обратным прокси-сервером? Вот где это вступает в игру; PHP-запросы, отправленные в NGINX, передаются в PHP-FPM для выполнения тяжелой работы.

Давайте установим PHP-FPM.

apt-get install php5-fpm php5-mysqlnd

Обратите внимание, что в зависимости от того, что требуют ваши PHP-скрипты, вам, возможно, придется установить другие модули PHP, не включенные по умолчанию. Популярные из них являются php5-gdи php5-mcrypt. Вы можете установить их с помощью следующей команды.

apt-get install php5-module_name_here

Теперь, когда у нас установлен PHP-FPM, мы хотим сделать несколько быстрых изменений для повышения безопасности и функциональности.

cd /etc/php5/fpm
vi php.ini

Время для другого быстрого урока Vim! php.iniФайл абсолютно огромно. Поиск нескольких ключевых значений займет весь день. Так что, поскольку мы знаем, что ищем, мы будем искать. Введите следующее:

/upload_max_filesize

Это по умолчанию установлено в 2 мегабайта. Если вы хотите разрешить пользователям загружать файлы в ваши PHP-приложения размером более 2 мегабайт, вам необходимо это изменить. 10M, вероятно, является безопасной ставкой на данный момент, но более высокие значения также приемлемы. Этот параметр зависит от конфигурации. Ради учебника:

upload_max_filesize = 10M

Еще один явный недостаток безопасности. Прокрутите немного дальше или выполните поиск. Нам нужно включить «allow_url_fopen» в «Off». Это предотвратит запуск PHP-файлов, размещенных на REMOTELY, иначе называемых RFI (Remote File Inclusion). Многие серверы взломаны таким образом.

allow_url_fopen = Off

И поскольку мы изменили «upload_max_filesize», теперь мы должны изменить «post_max_size». Это значение должно быть немного больше, чем «upload_max_filesize», потому что мы должны учитывать накладные расходы, связанные с нашими запросами, обрабатываемыми PHP.

Давайте поищем еще раз с "/ post_max_size".

post_max_size = 12M

Обратите внимание, что вам придется вернуться к конфигурации NGINX и отредактировать «client_max_body_size», если вы решите использовать значения, большие, чем в этих примерах, для размеров файлов PHP.

Это об этом сейчас. Убедитесь, что вы не в режиме редактирования, нажав «Esc». Сохраните и выйдите из vim.

SHIFT :(colon)
wq
Press 'Enter'

Настройка PHP-FPM завершена.

MariaDB

Даже в мире, который постоянно движется в сторону NoSQL или MongoDB, некоторым из нас все же легче просто придерживаться MySQL. Это особенно актуально для многих веб-приложений. К счастью, в настоящее время существует несколько «вставных» замен для Oracle MySQL. Debian 8 теперь включает в себя все более популярную MariaDB. MariaDB - это форк Oracle MySQL, основанный на версии 5.5. MariaDB для всех намерений и целей называет это MariaDB 10. Это считается ПОЛНОЙ заменой Oracle MySQL. Думайте об этом как о MySQL в душе, без брендинга Oracle и некоторых новых функций.

apt-get install mariadb-server

ВАЖНО: Вам абсолютно необходимо выбрать надежный пароль root для MariaDB. Сохраните это где-нибудь в безопасности. Вам нужно будет ввести его дважды во время установки MariaDB.

Давайте немного подправим конфигурацию MariaDB. Мы собираемся отключить прослушивание MariaDB через сетевой интерфейс. Вместо этого, как и в случае PHP-FPM ранее, мы будем придерживаться только сокета UNIX. Большинство приложений PHP должны поддерживать подключение к серверу базы данных через сокет UNIX вместо локального интерфейса обратной связи.

cd /etc/mysql
vi my.cnf

Ищите «bind-address = 127.0.0.1». Прокомментируйте эту строку. Выше или ниже добавьте «пропуск сети».

#bind-address = 127.0.0.1
skip-networking

Мы закончили с MariaDB! В конце концов, вы можете настроить свою конфигурацию MariaDB в зависимости от того, будете ли вы использовать в первую очередь механизмы хранения MyISAM или InnoDB, а также от количества ядер ЦП и ОЗУ, доступных вашему серверу. Значения по умолчанию приведут нас в рабочее состояние.

Давайте перезапустим каждый из сервисов, для которых файлы конфигурации были изменены в этом руководстве.

systemctl restart nginx.service
systemctl restart php5-fpm.service
systemctl restart mysql.service

Вот и все - мы все сделали. На данный момент у вас есть полнофункциональный сервер LNMP (LEMP) онлайн!

Это руководство должно было служить общим практическим правилом для начала работы с вышеуказанными службами с минимальной настройкой. Для получения дополнительной информации ознакомьтесь с документацией для вышеуказанных пакетов. В то время как этот пример настройки должен работать хорошо сразу "из коробки", корректировки могут и, скорее всего, должны быть сделаны, чтобы лучше соответствовать вашим потребностям.

Рекомендуемые области для исследования:

  • Использование и изменение контроля кэша NGINX.
  • PHP-FPM "статические", "динамические" или "ondemand" настройки диспетчера задач.
  • Настройка производительности MariaDB для максимально эффективного использования вашего сервера базы данных.


Leave a Comment

Настройка NFS Share на Debian

Настройка NFS Share на Debian

NFS - это сетевая файловая система, которая позволяет компьютерам получать доступ к файлам через компьютерную сеть. Это руководство объясняет, как вы можете выставлять папки через NF

Как обновить CentOS 7, Ubuntu 16.04 и Debian 8

Как обновить CentOS 7, Ubuntu 16.04 и Debian 8

При настройке нового сервера Linux рекомендуется обновить ядро ​​системы и другие пакеты до последней стабильной версии. В этой статье

Использование MySQL Views в Debian 7

Использование MySQL Views в Debian 7

Введение В MySQL есть замечательная функция, известная как views. Представления хранятся запросы. Думайте о них как о псевдониме для длинного запроса. В этом руководстве

Настройка Chroot в Debian

Настройка Chroot в Debian

Эта статья научит вас, как настроить chroot-джейл в Debian. Я предполагаю, что вы используете Debian 7.x. Если вы используете Debian 6 или 8, это может сработать, но

Как установить PiVPN на Debian

Как установить PiVPN на Debian

Введение Простой способ настроить VPN-сервер в Debian - это PiVPN. PiVPN - это установщик и оболочка для OpenVPN. Это создает простые команды для вас т

Как собрать Brotli из исходного кода на Debian 9

Как собрать Brotli из исходного кода на Debian 9

Используете другую систему? Brotli - это новый метод сжатия с лучшей степенью сжатия, чем в Gzip. Его исходный код публично размещен на Github. Thi

Как установить Apache Cassandra 3.11.x на Debian 9

Как установить Apache Cassandra 3.11.x на Debian 9

Используете другую систему? Apache Cassandra - бесплатная система управления базами данных NoSQL с открытым исходным кодом, разработанная для обеспечения масштабируемости, высокой

Установите Lynis на Debian 8

Установите Lynis на Debian 8

Введение Lynis - это бесплатный инструмент для аудита системы с открытым исходным кодом, который используется многими системными администраторами для проверки целостности и защиты своих систем. я

Как установить InvoicePlane в Debian 9

Как установить InvoicePlane в Debian 9

Используете другую систему? InvoicePlane - это бесплатное приложение для выставления счетов с открытым исходным кодом. Его исходный код можно найти в этом хранилище Github. Этот гид

Как установить Backdrop CMS 1.8.0 на Debian 9 LAMP VPS

Как установить Backdrop CMS 1.8.0 на Debian 9 LAMP VPS

Использ��ете другую систему? Backdrop CMS 1.8.0 - это простая и гибкая, удобная для мобильных устройств, бесплатная система с открытым исходным кодом (CMS), которая позволяет нам

Установите Plesk на Debian 7 (Wheezy)

Установите Plesk на Debian 7 (Wheezy)

Используете другую систему? Plesk - это проприетарная панель управления веб-хостинга, которая позволяет пользователям управлять своими личными и / или клиентскими веб-сайтами, базами данных.

Как установить BookStack в Debian 9

Как установить BookStack в Debian 9

Используете другую систему? BookStack - это простая, удобная и простая в использовании платформа для организации и хранения информации. BookStack полностью бесплатен и открыт

Как установить Pagekit 1.0 CMS на Debian 9 LAMP VPS

Как установить Pagekit 1.0 CMS на Debian 9 LAMP VPS

Используете другую систему? Pagekit 1.0 CMS - это красивая, модульная, расширяемая и легкая, бесплатная и с открытым исходным кодом система управления контентом (CMS) с

Как установить Subrion 4.1 CMS на Debian 9 LAMP VPS

Как установить Subrion 4.1 CMS на Debian 9 LAMP VPS

Используете другую систему? Subrion 4.1 CMS - это мощная и гибкая система управления контентом с открытым исходным кодом (CMS), которая обеспечивает интуитивно понятный и понятный контент.

Лучшие инструменты мониторинга для Ubuntu и CentOS

Лучшие инструменты мониторинга для Ubuntu и CentOS

Введение Системы Linux поставляются с инструментами мониторинга по умолчанию, такими как top, df и du, которые помогают отслеживать процессы и дисковое пространство. Хотя часто они

Настройте сервер синхронизации Firefox на Debian 9 или Ubuntu 16.04

Настройте сервер синхронизации Firefox на Debian 9 или Ubuntu 16.04

Используете другую систему? Firefox Sync - это функция синхронизации браузера, которая позволяет вам делиться своими данными и предпочтениями (такими как закладки, история

Как установить CMS за октябрь 1.0 на Debian 9 LAMP VPS

Как установить CMS за октябрь 1.0 на Debian 9 LAMP VPS

Используете другую систему? Октябрь 1.0 CMS - это простая и надежная, бесплатная система управления контентом (CMS) с открытым исходным кодом, построенная на платформе Laravel.

Как установить X-Cart 5 на Debian 10

Как установить X-Cart 5 на Debian 10

Используете другую систему? X-Cart - чрезвычайно гибкая платформа электронной коммерции с открытым исходным кодом, обладающая множеством функций и интеграций. Исходный код X-Cart доступен

Отслеживайте состояние сервера Debian с помощью Munin

Отслеживайте состояние сервера Debian с помощью Munin

Munin - это инструмент для мониторинга процессов и ресурсов на вашем компьютере, который представляет информацию в виде графиков через веб-интерфейс. Используйте следующее

Как включить TLS 1.3 в Apache на Debian 10

Как включить TLS 1.3 в Apache на Debian 10

Используете другую систему? TLS 1.3 - это версия протокола безопасности транспортного уровня (TLS), который был опубликован в 2018 году в качестве предлагаемого стандарта в RFC 8446.

Изучение 26 методов анализа больших данных: часть 1

Изучение 26 методов анализа больших данных: часть 1

Изучение 26 методов анализа больших данных: часть 1

6 невероятных фактов о Nintendo Switch

6 невероятных фактов о Nintendo Switch

Многие из вас знают Switch, который выйдет в марте 2017 года, и его новые функции. Для тех, кто не знает, мы подготовили список функций, которые делают «Switch» обязательным гаджетом.

Технические обещания, которые все еще не выполнены

Технические обещания, которые все еще не выполнены

Вы ждете, когда технологические гиганты выполнят свои обещания? проверить, что осталось недоставленным.

Функциональные возможности уровней эталонной архитектуры больших данных

Функциональные возможности уровней эталонной архитектуры больших данных

Прочтите блог, чтобы узнать о различных уровнях архитектуры больших данных и их функциях самым простым способом.

Как ИИ может вывести автоматизацию процессов на новый уровень?

Как ИИ может вывести автоматизацию процессов на новый уровень?

Прочтите это, чтобы узнать, как искусственный интеллект становится популярным среди небольших компаний и как он увеличивает вероятность их роста и дает преимущество перед конкурентами.

CAPTCHA: как долго она может оставаться жизнеспособным методом различения между человеком и ИИ?

CAPTCHA: как долго она может оставаться жизнеспособным методом различения между человеком и ИИ?

CAPTCHA стало довольно сложно решать пользователям за последние несколько лет. Сможет ли он оставаться эффективным в обнаружении спама и ботов в ближайшем будущем?

Технологическая сингулярность: далекое будущее человеческой цивилизации?

Технологическая сингулярность: далекое будущее человеческой цивилизации?

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

Телемедицина и удаленное здравоохранение: будущее уже здесь

Телемедицина и удаленное здравоохранение: будущее уже здесь

Что такое телемедицина, дистанционное здравоохранение и их влияние на будущее поколение? Это хорошее место или нет в ситуации пандемии? Прочтите блог, чтобы узнать мнение!

Вы когда-нибудь задумывались, как хакеры зарабатывают деньги?

Вы когда-нибудь задумывались, как хакеры зарабатывают деньги?

Возможно, вы слышали, что хакеры зарабатывают много денег, но задумывались ли вы когда-нибудь о том, как они зарабатывают такие деньги? Давайте обсудим.

Обновление дополнения к macOS Catalina 10.15.4 вызывает больше проблем, чем решает

Обновление дополнения к macOS Catalina 10.15.4 вызывает больше проблем, чем решает

Недавно Apple выпустила macOS Catalina 10.15.4, дополнительное обновление для исправления проблем, но похоже, что это обновление вызывает больше проблем, приводящих к поломке компьютеров Mac. Прочтите эту статью, чтобы узнать больше