Добавить в корзинуПозвонить
Найти в Дзене

Создание первого сайта. Или настройка веб-сервера Apache

Работа любого сайта в интернете начинается с веб-сервера. В этой статье, на примере Apache, рассмотрим как установить и настроить веб-сервер, а также создать свой первый сайт-одностраничник. Apache доступен в репозиториях программного обеспечения Ubuntu по умолчанию, и поэтому его можно установить с помощью стандартных инструментов управления пакетами. Для начала можем выполнить обновление пакетов: $ sudo apt update Теперь выполним следующую команду: $ sudo apt install apache2 Введем y для подтверждения установки. Выполнится установка Apache и всех требуемых зависимостей. Перед началом работы с Apache стоит настроить необходимые порты в брандмауэре для веб сервера. В процессе установки Apache регистрируется в списках приложениях брандмауэра. Посмотреть этот список можно выполнив команду $ sudo ufw app list в этом списке имеются три названия Apache, Apache Full, Apache Secure. Так, профиль Apache отвечает за порт 80, профиль Apache Secure открывает порт 443, а профиль Apache Full открыв

Работа любого сайта в интернете начинается с веб-сервера. В этой статье, на примере Apache, рассмотрим как установить и настроить веб-сервер, а также создать свой первый сайт-одностраничник.

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

Для начала можем выполнить обновление пакетов:

$ sudo apt update

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

$ sudo apt install apache2

-2

Введем y для подтверждения установки. Выполнится установка Apache и всех требуемых зависимостей.

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

$ sudo ufw app list

в этом списке имеются три названия Apache, Apache Full, Apache Secure. Так, профиль Apache отвечает за порт 80, профиль Apache Secure открывает порт 443, а профиль Apache Full открывает оба 80 и 443 порты. Для начала откроем только 80 порт, для этого выполним команду:

$ sudo ufw allow 'Apache'

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

$ sudo ufw status

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

$ sudo systemctl status apache2

Также работу сервера можно проверить запросом страницы в браузере, для этого нужно ввести адрес сервера в адресную строку. Если адрес сервера не известен, его можно узнать командой

$ hostname -I

Ваш веб-сервер запущен и работает! Приведу основные команды управления веб-сервером с использованием systemctl.

Остановить веб-сервер

$ sudo systemctl stop apache2

Запустить остановленный веб-сервер

$ sudo systemctl start apache2

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

$ sudo systemctl restart apache2

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

$ sudo systemctl reload apache2

Изначально Apache настроен на автоматический запуск при загрузке сервера. Если вы не хотите этого, отключите такое поведение с помощью следующей команды:

$ sudo systemctl disable apache2

Чтобы включить автоматический запуск, выполните:

$ sudo systemctl enable apache2

Создание нового сайта

По умолчанию включено обслуживание документов из директории /var/www/html. Вместо редактирования документов в этой директории, создадим для нового сайта собственную директорию и внесем изменения в конфигурацию веб-сервера для включения нового сайта. Для примера возьмём имя сайта new.site

Создадим директорию new.site

$ sudo mkdir /var/www/new.site

Поменяем владельца директории с помощью переменной среды $USER:

$ sudo chown -R $USER:$USER /var/www/new.site

Установим необходимые права для чтения

$ sudo chmod -R 755 /var/www/new.site

Создадим в качестве примера страницу index.html, используя nano или другой редактор:

$ sudo nano /var/www/new.site/index.html

В файл index.html добавим образец кода HTML:

<html>
<head>
<title>Welcome to new.site!</title>
</head>
<body>
<h1>Success! The new.site virtual host is working!</h1>
</body>
</html>

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

Для обслуживания нового сайта, необходимо создать файл виртуального хоста с правильными директивами. Вместо изменения файла конфигурации по умолчанию, расположенного в /etc/apache2/sites-available/000-default.conf, мы создадим новый файл в /etc/apache2/sites-available/new.site.conf :

$ sudo nano /etc/apache2/sites-available/new.site.conf

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

<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName new.site
ServerAlias www.new.site
DocumentRoot /var/www/ new.site
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Активируем файл с помощью инструмента a2ensite:

$ sudo a2ensite new.site.conf

Отключим сайт по умолчанию, определённый в 000-default.conf:

$ sudo a2dissite 000-default.conf

После этого проверим ошибки конфигурации:

$ sudo apache2ctl configtest

Если появится ошибка «Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message», в таком случае необходимо открыть главный файл конфигурации веб-сервера

sudo nano /etc/apache2/apache2.conf

и в конце файла добавить

ServerName 127.0.0.1

Поcле этого ошибка пропадет. Теперь перезапустим Apache для внесения изменений:

$ sudo systemctl restart apache2

Так как адрес нашего нового сайта заканчивается на .site, относящийся к общему домену верхнего уровня, то при открытии такого адреса браузер будет искать его во всемирной паутине. Добавим строчку

127.0.0.1 new.site

в файл hosts

$ sudo nano /etc/hosts

Теперь можем проверить наш сайт, открыв в браузере адрес http://new.site/, после чего должны увидеть примерно следующее:

-6

#apache #webserver #httpd #ubuntu #site