10 сентября 2017

Установка последней версии NGINX в Ubuntu 16

Алексей Доронин
Руководитель, разработчик, дизайнер

Рассмотрим как установить последнюю версию NGINX на сервере с Ubuntu 16.

Проверим, какая версия уже установлена и какую мы хотим установить.

nginx -v

1. Если необходимо, удаляем текущую версию:

sudo apt remove nginx nginx-common nginx-full nginx-core
sudo systemctl unmask nginx
# sudo cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak

2. Добавляем официальные репозитарии NGINX:

sudo nano /etc/apt/sources.list
 
# Add to the end of the file:
deb http://nginx.org/packages/mainline/ubuntu/ xenial nginx
deb-src http://nginx.org/packages/mainline/ubuntu/ xenial nginx

3. Добавляем ключ:

wget http://nginx.org/keys/nginx_signing.key
sudo apt-key add nginx_signing.key

4. Обновляем список репозитариев и устанавливаем NGINX:

sudo apt update
sudo apt install nginx

Если необходима установка определенной версии:

apt-cache policy nginx
sudo apt-get install nginx=1.13.6-1~xenial

5. Добавим NGINX в автозапуск:

sudo systemctl enable nginx

6. Проверяем статус:

systemctl status nginx

7. Если используется PHP-FPM, то необходимо сменить группу и пользователя на www-data (при установки NGINX из официального репозитория, там будет nginx). Меняем и перезагружаем:

sudo nano /etc/nginx/nginx.conf
 
## Replace nginx with www-data
user www-data;

## reload nginx
sudo systemctl reload nginx

8. Проверяем, чтобы в nginx.conf были строки:

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

9. Если под NGINX нужно компилировать динамические модули, нужно заблокировать nginx от обновления (так как динамические модули собираются под конкретную версию):

sudo apt-mark hold nginx

## Unhold
sudo apt-mark unhold <package-name>

10. Проверим версию и то, что она стоит на «холде» (заблокирована от обновлений)

nginx -v
...
apt-mark showhold