Установка Nginx з вихідних модулів та сторонніх модулів на Debian
Власне нерідко виникає ситуація коли є чистий VPS на Debian (Ubuntu), тільки-но піднятий на сервері. І потрібно встановити на ньому nginx зі сторонніми модулями. Зрозуміло, простою командою не обійтися і потрібно все збирати з вихідників. Завдання тривіальне, але щоразу доводиться щось підглядати в інтернеті, щоб освіжити пам'ять.
Крок 0. Видалення Apache2
Не знаю чому, але у стандартному образі мого хостера вже встановлено апач. Зрозуміло, він нам не потрібен, тому ми його видаляємо: Починаємо з видалення всіх компонентів
Потім видаляємо все, що не вийшло за допомогою минулої команди:
Шукаємо файли, які залишилися від apache2 (папки, які не віддалилися, файли і т.д.):
У відповіді отримаємо список директорій (у разі одну /etc/apache2). Зайдемо в них і подивимося, чи там немає чогось важливого. Якщо ні, то видаляємо командою:
Всі. Ми повністю позбулися Apache2 і тепер можемо приступити до встановлення Nginx
Крок 1. Оновлюємо репозиторій та встановлюємо необхідні бібліотеки
Для початку оновимо репозиторій. На моїх VPS'ках він повністю порожній, тому без цього кроку неможливо нічого встановити:
А потім встановлює пакети, необхідні для збирання nginx з вихідників.
Крок 2. Завантажуємо вихідний Nginx і необхідні модулі
Переходимо до директорії, куди необхідно завантажити вихідник. Я робитиму в директорії root:
Качаємо останню стабільну гілку на даний момент:
Тепер нам потрібно завантажити додаткові модулі для nginx, які ми збираємося підключати під час збирання. Багато модулів доступні з коробки і не потрібно скачувати нічого додатково. Але мені потрібниймодуль ngx_http_dav_ext_module. Який можна скачати ось тут:github.com/arut/nginx-dav-ext-module Розпаковуємо ці файли в директорії поруч:
Крок 3. Збираємо nginx із вихідних джерел
Переходимо до папки з вихідними кодами nginx:
Створюємо в ній файл conf.sh з таким вмістом:
Це наш конфіг для складання, тут вказані які модулі підключати і з якими параметрами працюватиме nginx. Наш сторонній модуль підключається командою:
За аналогією ми можемо підключити інші модулі, потрібно лише вказати шлях до папки, де вони лежать.
Встановлюємо права на створений файл conf.sh:
І запускаємо його:
Після цього залишиться лише зібрати вихідні команди
Однак у процесі збирання у мене сталася помилка:
Яка вказує, що у мене немає вистачає файлу expat.h
Поставити потрібну бібліотеку можна командою:
І тепер збираємо та встановлюємо вихідники за допомогою команд:
От і все. Ми щойно зібрали nginx з вихідних джерел із підключеними сторонніми модулями. Але це ще не все — залишилося кілька кроків, щоб усе працювало як годинник.
Крок 4. Додаємо Nginx в автозавантаження
При кожному перезапуску системи нам потрібно, щоб nginx запускався автоматично. Ну і для зручності щоб були доступні команди/etc/init.d/nginx restart / start / stop. Створюємо файл:
З таким вмістом:
І робимо його виконуваним:
Якщо відповідь бачимо: Starting nginx: nginx. Тоді все чудово. Все працює
Залишилося додати nginx до автозапуску командою:
Пробуємо ребутати впску і перевіряти чи піднявся nginx автоматично. Все має працювати як годинник
Вам залишиться лише настроїти Nginx, але це вже матеріал для окремої статті.