Подключить репозиторий с nginx ubuntu

Обновлено: 03.07.2024

Здравствуй, уважаемый пользователь Хабрахабра. Мое повествование будет о том, как подготовить почву для локальной веб-разработки проектов в операционной системе Ubuntu 16.04.1 LTS.

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

Технологии которые будут использованы в статье: nginx, php-fpm.

Перед началом повествования, хочу отметить, что я проделывал все эти действия на «голой» системе.
Я буду работать с пакетным менеджером aptitude. Так же рекомендую обновить индекс пакетов и сами пакеты перед установкой ПО. В статье мы проделаем эти действия вместе.

Установка пакетного менеджера aptitude, обновление индекса и пакетов


Обновляем пакеты (команда обновит все пакеты, для которых есть новые версии, если потребуется удаление пакетов, то оно будет выполнено).

Установка и настройка nginx (версия >= 1.10.0)


Проверяем версию, чтобы убедиться что не установили старую, то есть ниже 1.10.0.



Установку и запуск произвели, теперь пойдем в каталог туда куда установлен наш nginx и посмотрим на его структуру. Каталог nginx находится по такому пути:


Посмотреть содержимое директории можно командой ls, с флагами -la будет удобнее просматривать содержимое каталога (в действительности эту команду с конкретными флагами можно описать детальнее и вернее, но у нас сегодня другая тема).


Наc интересуют в данный момент два каталога, которые вы видите на скриншоте. Это каталоги sites-available и sites-enabled.


Давайте перейдем в каталог sites-available и начнем конфигурировать наш виртуальный хост (сайт).


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

В случае установки nginx «с нуля», именно «с нуля», так как при удалении nginx командой
или конфигурационные файлы остаются и если вы вдруг будете не понимать, почему nginx не работает и захотите его переустановить (обычно к такому прибегают начинающие пользователи Linux), то и после переустановки он не будет корректно работать, из-за того что в старых конфигурационных файлах (они не удаляются после удаления командой remove) прописаны неверные настройки, их придется удалить, либо настроить верно, только тогда nginx заработает.

Рекомендую удалять командой sudo apt-get purge nginx или sudo apt purge nginx . Если вы используете пакетный менеджер aptitude, то команда sudo aptitude purge nginx удаляет пакет полностью со всеми зависимостями и конфигурационными файлами.

В этом каталоге будет по умолчанию один файл, с названием default. В нем будет конфигурационный файл с примером, с комментариями, его вы можете изучить на досуге, а можете и вовсе удалить (всегда можно обратиться к официальной документации).



Создадим свой конфигурационный файл, который будет соответствовать названию домена нашего локального сайта (или реального, если уже знаете его название). Это удобно, в будущем, когда будет много конфигурационных файлов, то это избавит вас от путаницы в них. У меня этот файл будет называться project.local.


Посмотрим что получилось.


Теперь откроем его в редакторе, я открою его в nano.


Видим что он у нас пустой. Теперь перейдем к формированию нашего файла. Нужно привести конфигурацию к такому виду, как написано ниже. Я опишу только жизненно важные директивы этого файла, описывать остальное не буду, так как это не является на данный момент важным, все-таки у нас тема базовой настройки. Этих настроек с «горкой» хватит для разработки проектов локально, не только мелких, но и довольно крупных. В следующих статьях опишу отдельно каждые использованные директивы (именно так называются строки, например server_name) этого файла.

Смотрите комментарии прям в конфигурационном файле.


Сохраняем файл. Теперь нам надо проверить, нет ли в нем ошибок. Сделать мы это можем командой.


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


Теперь нам надо активировать конфигурационный файл, в каталоге /etc/nginx/sites-enabled/ необходимо создать симлинк (символическая ссылка). Если у вас nginx был установлен «с нуля», то в этом каталоге есть симлинк на файл default, про который рассказывалось выше, его можно удалить, если он вам не требуется. Переходим в нужный каталог.


Теперь мы в нужном каталоге. Давайте создадим наш симлинк. Для создания используется команда ln с флагом -s, далее мы укажем путь до нашего конфига project.local.


Посмотрим на наш созданный симлинк.


Чтобы убедиться что мы делаем еще все верно опять запустим команду.


Если все ок, едем дальше.

Файл hosts

Этот файл находится по пути /etc/hosts. Наличие в нем записей, позволяет запускать nginx с использованием в качестве домена localhost. В этом файле можно присваивать альтернативные псевдонимы, например для нашего проекта project.local, мы присвоим домен project.local.

Открываем файл в редакторе nano.


У вас в этом файле будет и другая информация, просто игнорируйте ее. Вам всего лишь нужно добавить строку как на моем скриншоте.


Не забываем сохранить файл. На этом настройка файла hosts закончена.

Установка php-fpm (>=7.0)

Проверяем установленную версию, на всякий случай, хотя в Ubuntu 16.04.1 в репозиториях лежит именно 7.0 версия.



Убеждаемся что все ок. Стартуем php-fpm.


На этом установка и настройка php-fpm закончена. Правда, это все. Это не магия, путь до сокета php-fpm у нас уже был прописан в конфигурационном файле. Конечно, вам могут понадобиться какие-либо расширения php для разработки личных проектов, но их вы можете поставить по мере того как они будут требоваться.

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


Поднимемся на каталог выше и сделаем права 777 (то есть мы будем делать полные права каталогу с нашим проектом project.local). В будущем это избавим нас от лишних проблем.


На этом настройка ПО завершена, давайте создадим тестовый файл в нашем рабочем каталоге project.local и убедимся что все работает. Я создам файл index.php с таким содержанием.


Идем в браузер и видим что у нас все прекрасно работает! Интерпретатор php в том числе.

Пакеты nginx доступны для следующих дистрибутивов Linux и их версий:

Версия Поддерживаемые платформы
7.4+ x86_64, ppc64le, aarch64/arm64
8.x x86_64, aarch64/arm64
Версия Поддерживаемые платформы
10.x “buster” x86_64, i386, aarch64/arm64
11.x “bullseye” x86_64, aarch64/arm64
Версия Поддерживаемые платформы
18.04 “bionic” x86_64, aarch64/arm64
20.04 “focal” x86_64, aarch64/arm64
21.04 “hirsute” x86_64, aarch64/arm64
21.10 “impish” x86_64, aarch64/arm64
Версия Поддерживаемые платформы
12 SP5+ x86_64
15 SP2+ x86_64
Версия Поддерживаемые платформы
3.11 x86_64
3.12 x86_64, aarch64/arm64
3.13 x86_64, aarch64/arm64
3.14 x86_64, aarch64/arm64
Версия Поддерживаемые платформы
2 (LTS) x86_64, aarch64/arm64

Инструкции по установке

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

RHEL/CentOS

Установите пакеты, необходимые для подключения yum-репозитория:

Для подключения yum-репозитория создайте файл с именем /etc/yum.repos.d/nginx.repo со следующим содержимым:

По умолчанию используется репозиторий для стабильной версии nginx. Если предпочтительно использовать пакеты для основной версии nginx, выполните следующую команду:

Чтобы установить nginx, выполните следующую команду:

При запросе подтверждения GPG-ключа проверьте, что отпечаток ключа совпадает с 573B FD6B 3D8F BC64 1079 A6AB ABF5 BD82 7BD9 BF62 , и, если это так, подтвердите его.

Debian

Установите пакеты, необходимые для подключения apt-репозитория:

Теперь нужно импортировать официальный ключ, используемый apt для проверки подлинности пакетов. Скачайте ключ:

Проверьте, верный ли ключ был загружен:

Вывод команды должен содержать полный отпечаток ключа 573BFD6B3D8FBC641079A6ABABF5BD827BD9BF62 :

Если отпечаток отличается от вышеуказанного, удалите файл ключа.

Для подключения apt-репозитория для стабильной версии nginx, выполните следующую команду:

Если предпочтительно использовать пакеты для основной версии nginx, выполните следующую команду вместо предыдущей:

Для использования пакетов из нашего репозитория вместо распространяемых в дистрибутиве, настройте закрепление:

Чтобы установить nginx, выполните следующие команды:

Ubuntu

Установите пакеты, необходимые для подключения apt-репозитория:

Теперь нужно импортировать официальный ключ, используемый apt для проверки подлинности пакетов. Скачайте ключ:

Проверьте, верный ли ключ был загружен:

Вывод команды должен содержать полный отпечаток ключа 573BFD6B3D8FBC641079A6ABABF5BD827BD9BF62 :

Если отпечаток отличается от вышеуказанного, удалите файл ключа.

Для подключения apt-репозитория для стабильной версии nginx, выполните следующую команду:

Если предпочтительно использовать пакеты для основной версии nginx, выполните следующую команду вместо предыдущей:

Для использования пакетов из нашего репозитория вместо распространяемых в дистрибутиве, настройте закрепление:

Чтобы установить nginx, выполните следующие команды:

Установите пакеты, необходимые для подключения zypper-репозитория:

Для подключения zypper-репозитория для стабильной версии nginx, выполните следующую команду:

Если предпочтительно использовать пакеты для основной версии nginx, выполните следующую команду вместо предыдущей:

Теперь нужно импортировать официальный ключ, используемый zypper/rpm для проверки подлинности пакетов. Скачайте ключ:

Проверьте, верный ли ключ был загружен:

Вывод команды должен содержать полный отпечаток ключа 573B FD6B 3D8F BC64 1079 A6AB ABF5 BD82 7BD9 BF62 :

Импортируйте ключ в базу данных rpm:

Чтобы установить nginx, выполните следующую команду:

Alpine

Установите пакеты, необходимые для подключения apk-репозитория:

Для подключения apk-репозитория для стабильной версии nginx, выполните следующую команду:

Если предпочтительно использовать пакеты для основной версии nginx, выполните следующую команду вместо предыдущей:

Теперь нужно импортировать официальный ключ, используемый apk для проверки подлинности пакетов. Скачайте ключ:

Проверьте, верный ли ключ был загружен:

Вывод команды должен содержать следующий модуль:

Переместите ключ в каталог доверенных ключей apk:

Чтобы установить nginx, выполните следующую команду:

Тэг @nginx должен быть указан и при установке пакетов с динамическими модулями:

Amazon Linux

Установите пакеты, необходимые для подключения yum-репозитория:

Для подключения yum-репозитория создайте файл с именем /etc/yum.repos.d/nginx.repo со следующим содержимым:

По умолчанию используется репозиторий для стабильной версии nginx. Если предпочтительно использовать пакеты для основной версии nginx, выполните следующую команду:

Чтобы установить nginx, выполните следующую команду:

При запросе подтверждения GPG-ключа проверьте, что отпечаток ключа совпадает с 573B FD6B 3D8F BC64 1079 A6AB ABF5 BD82 7BD9 BF62 , и, если это так, подтвердите его.

Пакеты с исходным кодом

Исходные коды пакетов находятся в соответствующем репозитории.

Ветка репозитория default содержит исходные коды пакетов для mainline-версии, в то время как ветки stable-* содержат исходные коды пакетов для стабильных релизов. Для сборки бинарных пакетов запустите make в каталоге debian/ для Debian/Ubuntu, или в каталоге rpm/SPECS/ для RHEL/CentOS/SLES/Amazon Linux, или в каталоге alpine/ для Alpine.

Исходные коды пакетов распространяются под той же BSD-подобной лицензией из 2 пунктов, что и сам nginx.

Динамические модули

Для того чтобы избежать увеличения числа зависимостей, основной пакет nginx не включает модули, которым требуются дополнительные библиотеки. Начиная с версии 1.9.11 nginx поддерживает динамические модули, и следующие модули собираются как динамические и поставляются в виде отдельных пакетов:

Подписи

Поскольку наши PGP-ключи находятся на том же сервере, что и пакеты, им следует доверять в равной степени. Поэтому мы настоятельно рекомендуем дополнительно проверить подлинность загруженных PGP-ключей. В PGP есть понятие “сети доверия”, когда ключ подписывается чьим-либо другим ключом, тот в свою очередь третьим, и т.д. Это зачастую позволяет построить цепочку от произвольного ключа до ключа человека, которого вы знаете и кому доверяете лично, и таким образом удостовериться в подлинности первого ключа в цепочке. Подробно эта концепция описана в GPG Mini Howto. У наших ключей есть достаточное количество подписей, поэтому проверить их подлинность относительно несложно.

Nginx – это один из популярнейших веб-серверов в мире, позволяющий размещать очень большие сайты с высоким трафиком. Он обычно расходует меньше ресурсов, чем другие веб-серверы, а еще может работать как обратный прокси-сервер.

Данный мануал поможет установить Nginx на сервер Ubuntu 20.04. также вы узнаете, как разблокировать трафик Nginx в брандмауэре, управлять этим сервисом и настроить блок server (аналог виртуального хоста).

1: Установка Nginx

Пакет Nginx можно найти в стандартном репозитории Ubuntu и установить с помощью пакетного менеджера apt.

Если это ваше первое взаимодействие с системой пакетирования apt в текущей сессии, вы должны обновить индекс пакетов. После этого можно установить Nginx.

Чтобы подтвердить установку, нажмите Enter. После этого пакетный менеджер установит Nginx и его зависимости.

2: Настройка брандмауэра

Прежде чем протестировать Nginx, нужно разблокировать его трафик в брандмауэре ufw. Во время установки Nginx регистрирует в ufw профиль своего сервиса, потому открыть его трафик будет несложно.

Откройте список доступных профилей ufw:

В этом списке вы найдете три профиля Nginx:

Лучше использовать профиль, который поддерживает шифрование. Но поскольку на свежем сервере ещё не настроен SSL, мы можем открыть только порт 80.

Чтобы включить соответствующий профиль, введите:

Убедитесь в том, что профиль включился:

3: Тестирование веб-сервера

После установки Ubuntu 20.04 запустит Nginx автоматически. На данный момент веб-сервер должен работать.

Чтобы убедиться в том, что Nginx запустился, запросите его состояние в системе инициализации systemd.

Как видите, сервис запущен успешно.

Также для проверки можно посетить стандартную посадочную страницу Nginx. Она доступна в браузере по домену или IP-адресу.

Если вы не знаете своего IP-адреса, вы можете узнать его с помощью командной строки. Введите:

Узнав свой IP-адрес, введите его в браузер, чтобы убедиться, что веб-сервер работает должным образом.

На экране должна появиться стандартная страница Nginx:

4: Управление процессами Nginx

Теперь давайте рассмотрим несколько базовых команд для управления сервисом Nginx.

Чтобы остановить Nginx, введите:

Чтобы запустить его, введите:

Для перезапуска веб-сервера используйте команду:

Чтобы обновить настройки Nginx, не сбрасывая соединения, введите команду:

По умолчанию Nginx автоматически запускается во время загрузки сервера. Это поведение можно отключить:

Чтобы возобновить автозапуск сервиса, введите:

5: Настройка виртуального хоста

Затем установите права на каталог с помощью переменной $USER:

Права должны быть установлены верно, если вы не поменяли unmask, но на всякий случай вы можете ввести такую команду:

Затем создайте образец страницы index.html с помощью nano или другого редактора:

Сохраните и закройте файл.

Вставьте в файл следующие конфигурации. Они похожи на конфигурации по умолчанию, но содержат правильный домен и каталог:

Обратите внимание, что root содержит путь к новому каталогу, а server_name – новый домен.

Сохраните и закройте файл.

Включите файл, создав симлинк в каталоге sites-enabled:

Теперь у вас есть два виртуальных хоста, которые будут обслуживать запросы клиентов на основе директив listen и server_name:

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

Сохраните и закройте файл.

Проверьте ошибки в конфигурационном файле Nginx:

Перезапустите Nginx, чтобы новые параметры вступили в силу:

6: Важные файлы и каталоги Nginx

Теперь вы знаете, как управлять сервисом. Пора познакомиться с важными файлами и каталогами веб-сервера Nginx.

Как установить Nginx в Ubuntu 16.04

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

Введение

Перед тем, как начать работу с руководством, убедитесь, что вы вошли в систему как пользователь с привилегиями sudo и у вас нет Apache или какой-либо другой службы, работающей на порте 80 или 443.

Установить Nginx

Пакеты Nginx доступны в репозиториях программного обеспечения Ubuntu по умолчанию. Установка довольно проста, просто выполните следующие команды:

После завершения установки проверьте состояние службы Nginx, набрав:

Вывод должен показать вам, что служба Nginx активна и работает:

Чтобы проверить тип версии Nginx:

Настройте брандмауэр

Вы можете сделать это, включив профиль Nginx Full, который включает правила для обоих портов:

Чтобы проверить тип статуса брандмауэра:

Результат будет выглядеть примерно так:

Проверить установку



Установите Nginx из репозитория Nginx PPA

Пакеты Nginx из репозиториев Ubuntu часто устарели. Чтобы установить последнюю версию Nginx, используйте официальный репозиторий Nginx PPA.

Выполните следующие действия, чтобы установить последнюю версию Nginx в Ubuntu 16.04:

Сначала установите software-properties-common пакет:

Добавьте репозиторий Nginx PPA, используя следующую команду:

Обновите список пакетов и установите Nginx:

После завершения установки проверьте версию Nginx с помощью:

Результат будет выглядеть примерно так:

Управляйте службой Nginx с помощью systemctl

Вы можете управлять сервисом Nginx так же, как и любым другим модулем systemd.

Чтобы остановить службу Nginx, запустите:

Чтобы запустить службу Nginx, введите:

После внесения некоторых изменений в конфигурацию перезагрузите службу Nginx:

Отключите службу Nginx для запуска при загрузке:

Повторно включите службу Nginx для повторного запуска при загрузке:

Структура файла конфигурации Nginx и рекомендации

Вывод

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

Читайте также: