Установка и настройка веб-сервера для сайта в Ubuntu

Настройка веб-сервера для разработки сайта на PHP в операционной системе Ubuntu — это задача, с которой должен уметь справиться веб-разработчик. В этой статье мы разберемся как установить и настроить LAMP-сервер (Linux, Apache, MySQL, PHP) для ваших сайтов.

Текущая ситуация с конфиденциальностью в сети

Вообще, многие интернет-сайты цензурируются рядом правительств, и больше всего в странах с «железным занавесом» не любят Google, с помощью которого можно найти практически любую информацию. Кстати, в самом Google не стесняются и подобную информацию не скрывают, давая возможность узнать, правительства каких стран блокируют доступ к их сайту или запрашивают информацию о пользователях. Узнать эту информацию можно на официальной страничке Google под названием «Отчет о доступности сервисов и данных».

Помимо недоступности сервисов в некоторых странах, в путешествиях вообще есть определенная проблема с нормальным доступом в Интернет. Не всегда удается купить местную SIM-карту, поэтому приходится подключаться к Wi-Fi сетям в отелях, аэропортах и кафе. Фактически мы ничего не знаем об этих сетях: кем они были созданы, насколько надежны, и не «слушает» ли кто-либо сейчас наш трафик.

Текущая ситуация с конфиденциальностью в сети

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

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

Еще одно неудобство – реклама. Дело в том, что эффективная реклама – это таргетированная и персонализированная реклама. Рекламные сети, арендующие площади на страницах сайтов, собирают о нас необходимую им информацию: пол, возраст, страна и адрес проживания, личные интересы и хобби, профессиональные интересы и навыки, сексуальные предпочтения и пр. Так уж сложилось, что рекламные сети знают о вас больше, чем самые близкие ваши родственники.

Кроме того, не стоит забывать и о правительстве, которое в последние годы старается взять интернет под свой контроль, ограничивая нашу свободу в сети. Законодательство обязывает интернет-провайдеров записывать весь трафик пользователей и хранить какое-то время на своих серверах (в России это система СОРМ). К этому архиву могут получить неограниченный доступ спецслужбы и с легкостью использовать эту информацию против пользователей. На сегодняшний день уже имеется немало прецедентов, когда люди за какой-то неосторожный комментарий в любимом виртуальном вконтактике отправлялись во вполне реальную тюрьму на не менее реальный срок.

Текущая ситуация с конфиденциальностью в сети

Ну и, конечно же, Роскомнадзор, который блокирует не только неугодные правительству сайты, но и вместе с ними вообще любые, какие попадутся на пути. А теперь, кстати, еще и VPN-сервисы. Как видите, абсолютно никому, кроме вас самих, не выгодна ваша анонимность. Даже наоборот – гораздо удобнее знать о том, что вы думаете и чем живете, чтобы показать вам в нужный момент правильный баннер, залезая в ваш кошелек, ну или просто посадить, если вас что-то не устраивает.

Читайте также:  Как дать права root пользователю Linux Ubuntu

Использование ключей для авторизации

Создаём новый ключ

Для начала переходим в папку и генерируем ключ:

cd ~/.ssh && ssh-keygen -t rsa

Если папки нет, то предварительно создайте её:

mkdir ~/.ssh

Далее:

  1. генератор ключей задаст вопрос о том как назвать ключи, назовём например

    g_rsa

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

  2. Затем два раза введите пароль (придумайте) для доступа к данным ключам (оба раза после ввода нажимайте энтер).

Теперь мы получили в папке два ключа:

  • g_rsa — приватный, который нельзя никому сообщать
  • g_ — публичный, который мы сообщим bitbucket и github

Использование уже существующих ключей

Если у вас уже были ключи — то поместите их в папку ~/.ssh (также может потребоваться выставить права)

GitLab и GitHub

Как известно, главный конкурент GitLab — это сервис GitHub. Появился он на три года раньше (в 2008), поэтому более популярен. Да что там говорить, GitHub сегодня — это сайт номер один по размещению open source-проектов. Они почти все на нём и размещаются.))) И у многих людей Git напрямую ассоциируется с сервисом GitHub.

Да, плюсов у GitHub много, но мы не будем сейчас сравнивать оба сервиса. Скажем только, что несмотря на повышенную популярность и огромнейшее комьюнити GitHub (26 млн. человек), наблюдается тенденция перехода крупных команд разработчиков на GitLab. Это происходит благодаря расширенным возможностям второго.

Установка сервера Nginx с сертификатом Let’s Encrypt

Мы будем использовать установку GitLab CE, которая работает за сервером Nginx, который будет выполнять обратное проксирование и осуществлять обработку SSL-трафика. Для настройки базового сервера воспользуйтесь руководством из списка ниже, подходящим для вашей операционной системы.

Установка сервера Nginx с сертификатом Let’s Encrypt

Настройка балансирующего прокси Nginx с сертификатом Let’s Encrypt в CentOS 7.

Настройка балансирующего прокси Nginx с сертификатом Let’s Encrypt в Debian 9 Stretch.

Установка сервера Nginx с сертификатом Let’s Encrypt

Настройка балансирующего прокси Nginx с сертификатом Let’s Encrypt в Ubuntu Bionic

На данный момент у вас должен быть развернут сервер с Nginx и сертификатом Let’s Encrypt. Теперь установим GitLab CE.

Установка сервера Nginx с сертификатом Let’s Encrypt

Настройка Nginx на Linux:

Теперь посмотрим как происходит настройка Nginx Linux, тут скажу, что вместе со сервером, у нас установилось программа ufw, для файрволла, также там и зарегистрировался сервер.

Нам нужно грубо говоря настроить тип подключения к серверу или профили работы Nginx, для этого используете эту команду:

PowerShell

1 sudo ufw app list
Настройка Nginx на Linux:

У вас должно вывестись что-то типа этого:

Тут для нас важно три профиля, Nginx Full, Nginx HTTP и Nginx HTTPS, давайте их разберём.

  • Nginx Full — Профиль для открытия порта 80 (не шифрованный трафик) и 443 (трафик шифруется с помощью TLS/SSL);
  • Nginx HTTP — Профиль для открытия только порта 80 (не шифрованный трафик);
  • Nginx HTTPS — Профиль для открытия только порта 443 (трафик шифруется с помощью TLS/SSL);

Для примера я буду использовать «Nginx HTTP», но вам рекомендую использовать «Nginx Full», а ещё лучше «Nginx HTTPS».

Для назначения определенного профиля нем нужно использовать небольшую команду, вот она:

Настройка Nginx на Linux:

PowerShell

1 sudo ufw allow ‘Nginx HTTP’

Теперь можете запустить сервер, для этого введите эту команду:

PowerShell

1 sudo systemctl start nginx

Для того что бы зайти на базовую страницу, вы можете вбить в строку браузера «http://localhost/», но если вам нужен точный адрес сервера или доменное имя, то для получения этой информации используете специальную команду.

Читайте также:  Практическое руководство: изменения и функции iOS 14.5 beta 1 [Видео]

PowerShell

1 curl -4 icanhazip.com
Настройка Nginx на Linux:

Вот что должно у вас получится:

Теперь введите строку браузера адрес и вот что должно у вас появится:

В целом на этом установка закончилась, единственное скажу где хранятся файлы ваших сайтов, они находится по пути «/var/www/html», путь к директории можно настроит во файл конфигурации, который находится по пути «/etc/nginx/».

Добавление ssh-ключа на bitbucket

Авторизуемся, заходим в свой аккаунт. Нажимаем SSH keys -> Add Key. После ввода ключа в попап окошке нажимаем кнопку Add key для сохранения ssh-ключа.

Теперь вы можете клонировать свои приватные репозитории по ssh ([email protected]) без ввода пароля.

На что стоит обратить внимание если ssh-авторизация по ключу все еще не работает:

  • на ключ id_rsa не должно быть слишком много прав
  • у вас создано несколько ssh-ключей и нужно дать понять какой из ключей использовать

Аккаунт на Github

Также для работы понадобится создать аккаунт на Github — это бесплатный (для одиночного использования) сервис, в котором хранят свои проекты большинство компаний и разработчиков. Его же используют рекрутеры для поиска сильных программистов. Они смотрят код и оценивают, насколько он популярный и сложный. Github-аккаунт с высокой активностью в проектах (своих или чужих) — один из ключевых элементов в трудоустройстве.

После создания аккаунта нужно выполнить ещё одну важную операцию — добавления ssh-ключей на Если по-простому, то ключи позволяют работать репозиториям с Github без необходимости постоянно вводить логин и пароль при синхронизации локального и удаленного репозитория (находящегося на Github).

Эта задача выполняется в два этапа. Сначала нужно сгенерировать ssh-ключи, а затем один из них (публичный) добавить в настройки Github. Подробная инструкция по созданию ssh-ключей доступна на сайте. В двух словах:

# Создание ssh-ключей $ ssh-keygen -t rsa -b 4096 -C «[email protected]» # Дальше будет несколько вопросов. На все вопросы нужно нажимать Enter. # Запуск агента ssh, который следит за ключами $ eval «$(ssh-agent -s)« # Добавления нового ssh-ключа в агент $ ssh-add ~/.ssh/id_rsa

Когда ssh-ключи созданы и добавлены в систему, можно приступать к интеграции с Github. Подробно эта процедура описана в документации. В двух словах:

  1. Выведите содержимое файла ~/.ssh/id_ и скопируйте его:

    $ cat ~/.ssh/id_

  2. Добавьте ssh-ключ в аккаунт Github. При добавлении вас попросят назвать ключ. Напишите что-нибудь в стиле home.

Послесловие

В нашей статье мы вкратце разобрали, как пользоваться GitLab при разработке софта. Однако это далеко не все возможности, которые предоставляет данный сервис. И совершенно неслучайно GitLab сегодня называют полноценной альтернативой GitHub. Впрочем, что выбирать, GitHub или GitLab, — решать вам.

При подготовке статьи использовались материалы из следующих источников: -polzovatsya-gitlab; -i-nastroyka-gitlab/?pdf=7240.

  • Перевод

Материал, перевод которого мы сегодня публикуем, посвящён настройке Git-серверов. Git — это система управления версиями, разработанная Линусом Торвальдсом. Git пользуются миллионы людей во всём мире. Компании, вроде GitHub, предлагают службы хостинга кода, основанные на Git. По информации, которую можно найти в различных публикациях, GitHub является крупнейшим сервисом для хостинга IT-проектов. В частности, в 2017-м году сообщество GitHub достигло 24 миллионов разработчиков, которые трудятся над 67 миллионами репозиториев. В наши дни GitHub пользуются абсолютно все — от программистов-одиночек, до крупных организаций. Надо сказать, что даже компания Google перешла на GitHub, закрыв собственный проект схожей направленности.

Установка XRDP на Debian 10

К сожалению вы не сможете впоследствии установить на эту систему 1C:Предприятие по причине долгой задержки в поддержке этой версии от разработчиков. Команды и действия полностью эдентичны для установки на Debian 9.

Системные требования «1С:Предприятия 8»

Установка производится следующей командой:

apt install xrdp xorgxrdp

Настройка произведена и можно подключатся по протоколу RDP.

Для запуска X сервера (отображение экрана) существуют разные права доступа. По умолчанию запуск разрешен всем пользователям с доступом к консоли.

Установка XRDP на Debian 10

Для изменения прав доступа к запуску X сервера необходимо выполнить следующую команду:

dpkg-reconfigure xserver-xorg-legacy

Перезагружаем сервис:

service xrdp restart

Настройка новых правил применнена и можно подключатся по протоколу RDP используя новые параметры.

Настройка конфига веб-сервера Apache для работы на домене

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

Давайте настроим конфиг Apache2 для того, чтобы это реализовать.

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

cd /var/www/html/

После этого создайте каталог для вашего сайта:

sudo mkdir superdomain

Для того, чтобы мы могли вносить изменения в каталог superdomain, нам нужно изменить владельца каталога с пользователя root на вашего пользователя.

Для этого введите в терминале команду:

cd ..

А после этого команду:

sudo chown -R user:user superdomain

Последней командой мы поменяли владельца и группу каталога superdomain на вашего пользователя (вместо user:user напишите имя вашего пользователя)

Затем перейдите в созданный каталог superdomain и создайте в нем файл и php скриптом.

Для этого в терминале введите команду:

cd superdomain

и введите команду:

nano

после этого вставьте php скрипт, например с таким содержимым:

Для того, чтобы сохранить изменения в редакторе nano, нажмите сочетание клавиш ctr+x и букву y, затем enter.

Команды Linux описаны в этой статье.

А сейчас мы настроим конфиг веб-сервера apache2.

Для этого введите команду:

sudo nano /etc/apache2/sites-available/

и вставьте этот текст:

После этого нажмите сочетание клавиш ctr+x и букву y, затем enter.

В этом конфиге мы создали указали пути к директории нашего сайта superdomain, указали название домена, правила, email веб-мастера, если пользователь будет видеть ошибку, пути к лог файлам apache и другие настройки.

После этого нам необходимо перейти в каталог apache :

cd /etc/apache2/sites-available/

и выполнить команду:

sudo a2ensite

Если все сделали правильно после ввода этой команды вы должны увидеть это:

Enabling site To activate the new configuration, you need to run: service apache2 reload

Для применения нового конфига apache для нашего сайта введите команду:

service apache2 reload

Если после запуска команды выше, веб-сервер apache2 не будет ругаться на ошибки, значит вы все сделали правильно и остался последний шаг, чтобы запустить наш сайт с домена

Если у вас нет понимания команд которые вы вводите в терминал Linux, прочитайте статью о Bash командах.

Последнее изменение которое необходимо внести, для запуска сайта на домене , прописать в файле hosts ip-адрес сервера(в данном примере веб-сервер локальный) и название домена :

127.0.0.1

Файл hosts находится в Linux:

/etc/hosts

В операционной системе Winodows, файл hosts находится:

C:\Windows\System32\drivers\etc\hosts

Все готово! Сохраните файл hosts и в браузере введите

В результате вы должы увидеть php вывод страницы из каталога superdomain.