Debian server web: Установка веб-сервера Apache в Debian 9
Установка веб-сервера Apache в Debian 9
Введение
HTTP-сервер Apache — самый широко используемый веб-сервер в мире. Он имеет множество мощных функций, включая динамически загружаемые модули, надежную поддержку различных медиа-форматов и интеграцию с другим популярным программным обеспечением.
В этом обучающем модуле мы расскажем, как установить веб-сервер Apache на сервере Debian 9.
Предварительные требования
Прежде чем начать прохождение настоящего обучающего модуля, необходимо настроить на сервере обычного пользователя без привилегий root и с привилегиями sudo. Также вам потребуется включить базовый брандмауэр, чтобы заблокировать все порты, кроме необходимых. Вы научитесь настраивать учетную запись обычного пользователя и брандмауэр для вашего сервера, следуя указаниям руководства Начальная настройка сервера Debian 9.
Создав учетную запись, войдите в систему как пользователь без привилегий root.
Шаг 1 — Установка Apache
Apache поставляется с используемыми по умолчанию хранилищами программного обеспечения Debian, что позволяет использовать для его установки инструменты управления из стандартных пакетов.
Для начала выгрузим указатель локальных пакетов, чтобы отразить последние изменения на предыдущих уровнях:
Затем установим пакет apache2
:
После подтверждения установки apt
выполнит установку Apache и всех требуемых зависимостей.
Шаг 2 — Настройка брандмауэра
Прежде чем тестировать Apache, необходимо изменить настройки брандмауэра, чтобы разрешить доступ к веб-портам по умолчанию. Если вы выполнили предварительные указания , у вас должен быть установлен брандмауэр UFW, настроенный для ограничения доступа к вашему серверу.
Во время установки Apache регистрируется в UFW, предоставляя несколько профилей приложений, которые можно использовать для включения или отключения доступа к Apache через брандмауэр.
Выведите список профилей приложений ufw
, введя следующую команду:
Вы увидите список профилей приложений:
Output
Available applications:
AIM
Bonjour
CIFS
. . .
WWW
WWW Cache
WWW Full
WWW Secure
. . .
Профили Apache начинаются с WWW:
- WWW: этот профиль открывает только порт 80 (обычный веб-трафик без шифрования)
- WWW Cache: этот профиль открывает только порт 8080 (иногда используется для кэширования и веб-прокси)
- WWW Full: этот профиль открывает порт 80 (обычный веб-трафик без шифрования) и порт 443 (трафик TLS/SSL с шифрованием)
- WWW Secure: этот профиль открывает только порт 443 (трафик с шифрованием TLS/SSL)
Рекомендуется применять самый ограничивающий профиль, который будет разрешать заданный трафик. Поскольку в этом модуле мы еще не настроили SSL для нашего сервера, нам нужно будет только разрешить трафик на порту 80.
Для проверки изменений введите:
В результатах вы должны увидеть, что трафик HTTP разрешен:
Output
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
WWW ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
WWW (v6) ALLOW Anywhere (v6)
Как видите, профиль был активирован для разрешения доступа к веб-серверу.
Шаг 3 — Проверка веб-сервера
В конце процесса установки Debian 9 запускает Apache. Веб-сервер уже должен быть запущен и работать.
Используйте команду systemd
init system, чтобы проверить работу службы:
- sudo systemctl status apache2
Output
● apache2.service - The Apache HTTP Server
Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
Active: active (running) since Wed 2018-09-05 19:21:48 UTC; 13min ago
Main PID: 12849 (apache2)
CGroup: /system.slice/apache2.service
├─12849 /usr/sbin/apache2 -k start
├─12850 /usr/sbin/apache2 -k start
└─12852 /usr/sbin/apache2 -k start
Sep 05 19:21:48 apache systemd[1]: Starting The Apache HTTP Server...
Sep 05 19:21:48 apache systemd[1]: Started The Apache HTTP Server.
Как видно из результатов, служба успешно запущена. Однако лучше всего протестировать ее запуск посредством запроса страницы из Apache.
Откройте страницу Apache по умолчанию, чтобы подтвердить работу программного обеспечения через ваш IP-адрес: Если вы не знаете IP-адрес вашего сервера, есть несколько способов узнать его с помощью командной строки.
Попробуйте ввести в командной строке сервера следующую команду:
Вы получите несколько адресов, разделенных пробелами. Вы можете попробовать каждый из них в браузере, чтобы убедиться в их работоспособности.
Альтернатива заключается в использовании инструмента curl
, который должен предоставить вам публичный IP-адрес, отображаемый в других местах в интернете.
Вначале выполните установку curl
с помощью apt
:
Затем используйте curl
для получения icanhazip.com с помощью IPv4:
Когда вы узнаете IP-адрес вашего сервера, введите его в адресную строку браузера:
http://your_server_ip
Вы увидите веб-страницу Debian 9 Apache по умолчанию:
Эта страница показывает, что Apache работает корректно. Также на ней содержится информация о важных файлах Apache и расположении каталогов.
Шаг 4 — Управление процессом Apache
Теперь ваш веб-сервер запущен и работает, и настало время изучить некоторые простые команды управления.
Чтобы остановить веб-сервер, введите:
- 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
Теперь Apache должен запуститься автоматически при следующей загрузке сервера.
Шаг 5 — Настройка виртуальных хостов (рекомендуется)
При использовании веб-сервера Apache вы можете использовать виртуальные хосты (аналогичные серверным блокам в Nginx) для инкапсуляции данных конфигурации и размещения на одном сервере нескольких доменов. Мы создадим домен example.com, но вы должны заменить это имя собственным доменным именем. Чтобы узнать больше о настройке доменного имени с помощью DigitalOcean, пройдите наш обучающий модуль Введение в DigitalOcean DNS.
В Apache в Debian 9 по умолчанию включен один серверный блок, настроенный на обслуживание документов из каталога /var/www/html
. Хотя это хорошо работает для отдельного сайта, при хостинге нескольких сайтов это неудобно. Вместо изменения /var/www/html
мы создадим в /var/www
структуру каталогов для нашего сайта example.com, оставив /var/www/html
как каталог по умолчанию для вывода в случае, если запросу клиента не соответствуют никакие другие сайты.
Создайте каталог для example.com следующим образом, используя опцию -p
для создания необходимых родительских каталогов:
sudo mkdir -p /var/www/example.com/html
Затем назначьте владение каталогом с помощью переменной среды $USER
:
- sudo chown -R $USER:$USER /var/www/example.com/html
Разрешения корневых каталогов веб-сервера должны быть правильными, если вы не изменяли значение unmask
. Тем не менее, вы можете проверить это с помощью следующей команды:
- sudo chmod -R 755 /var/www/example.com
Затем создайте в качестве примера страницу index.html
, используя nano
или свой любимый редактор:
- nano /var/www/example.com/html/index.html
Добавьте в страницу следующий образец кода HTML:
/var/www/example.com/html/index.html
<html>
<head>
<title>Welcome to Example.com!</title>
</head>
<body>
<h2>Success! The example.com virtual host is working!</h2>
</body>
</html>
Сохраните файл и закройте его после завершения.
Для обслуживания этого контента Apache необходимо создать файл виртуального хоста с правильными директивами. Вместо изменения файла конфигурации по умолчанию /etc/apache2/sites-available/000-default.conf
мы создадим новый файл /etc/apache2/sites-available/example.com.conf
:
- sudo nano /etc/apache2/sites-available/example.com.conf
Введите следующий блок конфигурации, который похож на заданный по умолчанию, но обновлен с учетом нового каталога и доменного имени:
/etc/apache2/sites-available/example.com.conf
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName example.com
ServerAlias www.example.com
DocumentRoot /var/www/example.com/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Обратите внимание, что мы изменили DocumentRoot
на новый каталог, а ServerAdmin
— на адрес электронной почты, доступный администратору сайта example.com. Также мы добавили две директивы: директиву ServerName
, которая устанавливает базовый домен и должна соответствовать определению виртуального хоста, и директиву ServerAlias
, которая задает дополнительные имена, которые должны давать совпадение, как если бы они были базовыми именами.
Сохраните файл и закройте его после завершения.
Активируем файл с помощью инструмента a2ensite
:
- sudo a2ensite example.com.conf
Отключите сайт по умолчанию, определеный в 000-default.conf
:
- sudo a2dissite 000-default.conf
Затем проверим ошибки конфигурации:
- sudo apache2ctl configtest
Вы должны увидеть следующий результат:
Output
Syntax OK
Перезапустие Apache для внесения изменений:
- sudo systemctl restart apache2
Теперь Apache должен обслуживать ваше доменное имя. Вы можете проверить это, открыв в браузере адрес http://example.com
, после чего должны увидеть примерно следующее:
Шаг 6 — Знакомство с важными файлами и каталогами Apache
Теперь вы научились управлять службой Apache, и настало время познакомиться с несколькими важными каталогами и файлами.
Контент
/var/www/html
: веб-контент, в состав которого по умолчанию входит только показанная ранее страница Apache по умолчанию, выводится из каталога/var/www/html
. Это можно изменить путем изменения файлов конфигурации Apache.
Конфигурация сервера
/etc/apache2
: каталог конфигурации Apache. Здесь хранятся все файлы конфигурации Apache./etc/apache2/apache2conf
: главный файл конфигурации Apache. Его можно изменить для внесения изменений в глобальную конфигурацию Apache. Этот файл отвечает за загрузку многих других файлов в каталоге конфигурации./etc/apache2/ports.conf
: этот файл задает порты, которые будет прослушивать Apache. По умолчанию Apache прослушивает порта 80, а если активирован модуль с функциями SSL, он также прослушивает порт 443./etc/apache2/sites-available/
: каталог, где можно хранить виртуальные хосты для каждого сайта. Apache не будет использовать файлы конфигурации из этого каталога, если они не будут связаны с каталогомsites-enabled
. Обычно все изменения конфигурации серверных блоков выполняются в этом каталоге, а затем активируются посредством ссылки на другой каталог с помощью командыa2ensite
./etc/apache2/sites-enabled/
: каталог, где хранятся активные виртуальные хосты для каждого сайта. Обычно они создаются посредством создания ссылок на файлы конфигурации из каталогаsites-available
с помощью командыa2ensite
. Apache считывает файлы конфигурации и ссылки из этого каталога при запуске или перезагрузке, когда компилируется полная конфигурация./etc/apache2/conf-available/
,/etc/apache2/conf-enabled/
: эти каталоги имеют те же отношения, что и каталогиsites-available
иsites-enabled
, но используются для хранения фрагментов конфигурации, которые не принадлежат виртуальному хосту. Файлы из каталогаconf-available
можно активировать с помощью командыa2enconf
и отключить с помощью командыa2disconf
./etc/apache2/mods-available/
,/etc/apache2/mods-enabled/
: эти каталоги содержат доступны и активированные модули соответственно. Файлы с расширением.load
содержат фрагменты для загрузки определенных модулей, а файлы с расширением.conf
содержат конфигурации этих модулей. Модули можно активировать и отключать с помощью командa2enmod
иa2dismod
.
Журналы сервера
/var/log/apache2/access.log
: по умолчанию каждый запрос веб-сервера регистрируется в этом файле журналда, если Apache не настроен по другому./var/log/apache2/error.log
: по умолчанию все ошибки регистрируются в этом файле. ДирективаLogLevel
в конфигурации Apache указывает, насколько детальные записи регистрируются в журналах ошибок.
Заключение
Теперь вы установили веб-сервер и у вас есть богатые возможности выбора типа обслуживаемого контента и технологий для расширения возможностей пользователя.
Если вы хотите развернуть более полный комплекс приложений, ознакомьтесь с этой статьей Настройка набора LAMP в Debian 9.
Как установить и настроить веб-сервер Apache в Ubuntu / Debian —
Никакой другой пакет веб-сервера не может быть настолько популярным, как Apache. В настоящее время подсчитано, что чуть более половины всех сайтов в сети обслуживаются из пакета Apache. Ubuntu и Debian являются популярными дистрибутивами Linux для серверных систем, и оба они поставляются со специальными серверными пакетами. Это делает Apache и Debian или Ubuntu выигрышной комбинацией в большинстве конфигураций. Хотя существует множество других серверных пакетов на выбор, Apache полезен из-за того, что различные подпрограммы совместимы с ним.
Хотя Debian и Ubuntu собирают пакеты Apache одинаково, это отличается от некоторых других серверных структур. openSUSE и большинство коммерческих дистрибутивов Linux имеют свои собственные способы его построения. Если вы знакомы со схемой управления пакетами DEB, возможно, вы уже знакомы с некоторыми методами, используемыми для установки этой популярной серверной архитектуры.
Установка и настройка пакетов Apache
Серверная технология Ubuntu и Debian часто поставляется без загруженной среды рабочего стола. Вы, скорее всего, будете работать с чистым интерфейсом командной строки Bash, хотя при желании вы можете установить другой интерпретатор команд. В этом обсуждении мы предполагаем, что вы работаете с виртуальной консоли под учетной записью пользователя. Вы можете переключаться между виртуальными консолями, удерживая нажатой клавишу CTRL и нажимая F1-F6. Клавиша CTRL + F7 зарезервирована для сервера XFree86, которого у вас, скорее всего, нет в этой конфигурации.
Начните с входа в свой аккаунт. Получив приглашение $, вы можете начать установку веб-сервера Apache. Введите следующие команды, затем нажмите return:
sudo apt-get update
sudo apt-get установить apache2
В зависимости от вашей установки вы можете получить либо тонну продукции, либо совсем немного. Если вы получаете предупреждение о том, что пакеты уже установлены, попробуйте запустить man apache2. Если вы получили нужную справочную страницу, значит она уже установлена. Если на нем написано «Нет записи man для apache2», вы можете попробовать установить снова.
Как только пакеты будут установлены, у вас уже будет работать работающий веб-сервер. Для проверки правильности работы Apache требуется веб-браузер. Либо получите доступ к IP-адресу вашего VPS, введя его в адресную строку активного графического веб-браузера, подключенного к Интернету на другом компьютере, либо перейдите к браузеру CLI, например Lynx, и сделайте то же самое.
Вы получите очень простую страницу с именем вашего домена или IP-адресом вашего сервера, если он работает должным образом. Это означает, что у вас запущен сервер, но вы еще ничего не добавили на свою страницу. Теперь вы можете начать настройку при желании. Используйте команду cd для перехода в каталог Apache, набрав
а затем введите ls, чтобы получить список каталогов. Если ваш сервер не выдает цветной вывод, то либо используйте dir –color или ls –color, чтобы увидеть, какие записи являются текстовыми файлами, а какие каталогами. Что будет в списке, будет зависеть от того, какая версия установленных пакетов Apache. Несколько мест в структуре файла имеют особое значение:
— ports.conf: виртуальные хосты прослушивают порты, зарегистрированные внутри этого файла. Убедитесь, что информация актуальна для поддержки вашей системы SSL. Если вы используете SSL, вы также можете попробовать sudo nano conf.d, чтобы проверить настройки SSl и настройки безопасности.
— apache2.conf: большинство параметров конфигурации устанавливаются в этом файле, и двоичный файл apache2 всегда сначала проверяет этот файл, чтобы узнать, установлена ли конкретная опция. Введите sudo nano apache2.conf, когда вы находитесь в
каталог для редактирования этого файла. Вы заметили, что этот файл содержит три отдельных раздела. Первый позволяет изменять процессы сервера Apache на глобальном уровне. Все настройки сервера по умолчанию размещены во втором разделе, а виртуальные хосты определены в третьем. Дистрибутивы на основе Debian, включая Ubuntu, требуют большей части конфигурации внизу с использованием директив include. В нижней части файла есть несколько параметров включения.
— сайты доступны сайты включены: оба эти подкаталога внутри
каталог. Первый определяет, какой контент обслуживается независимо от того, какие конфигурации активны. Второй определяет определения виртуального хоста и в основном содержит символические ссылки на файлы, хранящиеся в первом.
Во время настройки вы можете получить сообщение об ошибке:
Программа ‘nano в данный момент не установлена. Вы можете установить его, набрав:
sudo apt установить e3
Это означает, что на вашем сервере Ubuntu или Debian нет текстового редактора nano. Вы можете установить его, введя выбранную команду, или заменить слово nano на vi в большинстве ваших команд. Некоторая форма vi или vim обычно будет включена в ваш пакет. Это также хорошая идея, если вы предпочитаете vi над nano.
Когда вы просматриваете строку включения и другие строки конфигурации, вы можете найти несколько основных, которые вы хотите изменить. Apache устанавливает параметр времени ожидания 300, что означает, что у вашего сервера есть 300 секунд для обслуживания каждого запроса. Большинству людей это нравится менее чем за минуту. По умолчанию KeepAlive по умолчанию выключен, что заставляет каждый запрос загружать новое соединение. Включение этого параметра позволяет соединениям оставаться открытыми, чтобы клиенты могли отправлять несколько запросов. Если вы отрегулируете это, то установите пользовательский номер в разделе MaxKeepAliveRequests. Эта строка сообщает Apache, сколько отдельных запросов обрабатывает соединение до его разрыва. Установка его в 0 заставит Apache обслуживать неограниченное количество запросов для каждого соединения. Вы также можете отключить соединения, установив пороговое значение тайм-аута в секундах в строке KeepAliveTimeout.
Если вы хотите проверить, какие модули были скомпилированы в ваш пакет Apache, вернитесь к приглашению CLI и выполните следующую команду:
apache2 -l
Вы можете увидеть prefork.c, http_core.c, mod_so.c и многие другие параметры. Код http_core.c, скорее всего, должен был быть включен для правильной работы вашего пакета Apache. Пакеты Debian и Ubuntu, установленные через систему apt, обычно собирают все необходимые модули с момента их создания.
настройка веб сервера на Ubuntu / Debian
Что такое Apache?
Apache — самый популярный веб-сервер в Интернете. Он используется для обслуживания более половины всех активных веб-сайтов.
Хотя существует множество жизнеспособных веб-серверов, которые будут обслуживать ваш контент, полезно понять, как Apache работает из-за его вездесущности.
В этой статье мы рассмотрим некоторые общие файлы конфигурации и параметры, которые можно контролировать внутри них. Эта статья будет следовать макету Ubuntu / Debian для файлов Apache, который отличается от того, как другие дистрибутивы строят иерархию конфигурации.
Как установить Apache на Ubuntu и Debian
Если у вас еще нет Apache, вы можете сделать это сейчас, выпустив следующие команды:
sudo apt-get update sudo apt-get install apache2
Это все, что необходимо для работы веб-сервера. Если вы посетите свой IP-адрес VPS в веб-браузере, вы получите индексную страницу Apache по умолчанию:
your_domain_name_or_ip_address
It works! This is the default web page for this server. The web server software is running but no content has been added, yet.
Иерархия файлов Apache в Ubuntu и Debian
На Ubuntu и Debian Apache хранит свои основные файлы конфигурации в папке «/ etc / apache2»:
cd / etc / apache2 ls -F
apache2.conf envvars magic mods-enabled/ sites-available/ conf.d/ httpd.conf mods-available/ ports.conf sites-enabled/
В этом каталоге есть несколько текстовых файлов и некоторых подкаталогов. Вот некоторые из наиболее полезных мест, которые нужно знать:
- apache2.conf : Это основной файл конфигурации для сервера. Практически вся конфигурация может быть выполнена изнутри этого файла, хотя для простоты рекомендуется использовать отдельные назначенные файлы. Этот файл будет настраивать значения по умолчанию и быть центральной точкой доступа для сервера для чтения сведений о конфигурации.
- ports.conf : этот файл используется для указания портов, которые должны прослушивать виртуальные хосты. Убедитесь, что этот файл правильный, если вы настраиваете SSL.
- conf.d / : Этот каталог используется для управления определенными аспектами конфигурации Apache. Например, он часто используется для определения конфигурации SSL и выбора безопасности по умолчанию.
- sites-available / : Этот каталог содержит все файлы виртуальных хостов, которые определяют разные веб-сайты. Они будут определять, какой контент будет обслуживаться для каких запросов. Это доступные конфигурации, а не активные конфигурации.
- sites-enabled / : Этот каталог устанавливает, какие виртуальные определения узлов фактически используются. Обычно этот каталог состоит из символических ссылок на файлы, определенные в каталоге «sites-available».
- mods- [enabled, available] / : эти каталоги похожи по функциям каталогов сайтов, но они определяют модули, которые могут быть необязательно загружены.
Как вы можете видеть, конфигурация Apache не выполняется в одном монолитном файле, но вместо этого происходит через модульную конструкцию, где новые файлы могут быть добавлены и изменены по мере необходимости.
Просмотр файла Apache2.conf
Основные сведения о конфигурации вашего сервера Apache хранятся в файле «/etc/apache2/apache2.conf».
Этот файл разделен на три основных раздела: конфигурация глобального процесса Apache, настройка сервера по умолчанию и конфигурация виртуальных хостов.
В Ubuntu и Debian большая часть файла предназначена для глобальных определений, а конфигурация сервера по умолчанию и виртуальных хостов обрабатывается в конце с помощью директивы «Включить …».
Директива «Включить» позволяет Apache считывать другие файлы конфигурации в текущий файл в том месте, где отображается оператор. В результате Apache динамически генерирует общий файл конфигурации при запуске.
Если вы пролистаете нижнюю часть файла, существует несколько разных операторов «Включить». Эти определения загрузочного модуля, документ ports.conf, конкретные файлы конфигурации в каталоге «conf.d /» и, наконец, определения виртуального хоста в каталоге «sites-enabled /».
Мы сосредоточимся на первой части файла, чтобы узнать, как Apache определяет свои глобальные настройки.
Раздел глобальной конфигурации
Этот раздел используется для настройки некоторых параметров, которые управляют тем, как Apache работает в целом.
Есть несколько интересных вариантов, которые вы можете изменить в этом разделе:
Тайм-аут
По умолчанию для этого параметра установлено значение «300», что означает, что для выполнения каждого запроса сервер имеет максимум 300 секунд.
Это, вероятно, слишком велико для большинства настроенных устройств и может быть безопасно сброшено на что-то между 30 и 60 секундами.
KeepAlive
Этот параметр, если он установлен в положение «Вкл.», Позволит каждому соединению оставаться открытым для обработки нескольких запросов от одного и того же клиента.
Если для этого параметра установлено значение «Выкл.», Каждый запрос должен будет установить новое соединение, что может привести к значительным накладным расходам в зависимости от вашей настройки и ситуации с трафиком.
MaxKeepAliveRequests
Это определяет, сколько отдельных запросов обрабатывает каждое соединение до их смерти. Сохранение этого числа позволит Apache лучше обслуживать контент для каждого клиента.
Установка этого значения в 0 позволит Apache обслуживать неограниченное количество запросов для каждого соединения.
KeepAliveTimeout
Этот параметр указывает, как долго ждать следующего запроса после окончания последнего. Если достигнут порог тайм-аута, соединение будет умирать.
Это означает, что при следующем запросе контента сервер установит новое соединение для обработки запроса на контент, составляющий страницу, на которую посещает клиент.
Конфигурация MPM
В следующем разделе описывается конфигурация параметров MPM (Multi-Processing Module). Вы можете перекрестно ссылаться на раздел, в который была скомпилирована ваша установка Apache, выйдя в терминал и набрав:
apache2 -l
Составлено в модулях: core.c mod_log_config.c mod_logio.c prefork.c http_core.c mod_so.c
Как вы можете видеть, на этом сервере «prefork.c» — это модуль, который был скомпилирован и находится в файле «apache2.conf». У вашей установки может быть несколько вариантов, но только один может быть выбран.
Вы можете настроить конфигурацию MPM prefork в соответствующем разделе.
Изучение файла виртуального хоста по умолчанию
Объявление виртуального хоста по умолчанию можно найти в файле «default» в каталоге «sites-available».
Мы можем узнать об общем формате файла виртуального хоста, изучив этот файл. Откройте файл со следующей командой:
sudo nano / etc / apache2 / sites-available / default
<VirtualHost *:80> ServerAdmin webmaster@localhost DocumentRoot /var/www <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /var/www/> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all </Directory> . . .
Виртуальный хост по умолчанию настроен для обработки любого запроса на порт 80, стандартный порт http. Это определено в заголовке объявления, где указано «*: 80», что означает порт 80 на любом интерфейсе.
Это не означает, что он обязательно будет обрабатывать каждый запрос на сервере на этом порту. Apache использует наиболее специфическое определение виртуального хоста, соответствующее запросу. Это означает, что если бы было более конкретное определение, оно могло бы заменить это определение.
Конфигурация верхнего уровня виртуального хоста
Эти параметры задаются в определении виртуального хоста вне любой другой суб-декларации нижнего уровня. Они применяются ко всему виртуальному хосту.
Параметр «ServerAdmin» указывает контактное письмо, которое должно использоваться при возникновении проблем с сервером.
Это можно вставить на страницу с ошибкой, если в файле «/etc/apache2/conf.d/security» установлено значение «ServerSignature» на «Email», поэтому убедитесь, что вы готовы получать почту, если вы настроите эту настройку ,
Если мы использовали это как шаблон для других определений виртуального хоста, мы хотели бы добавить определение «ServerName», в котором указывается имя домена или IP-адрес, который должен обрабатывать этот запрос. Это опция, которая добавит специфику к виртуальному хосту, позволяя ему превзойти определение по умолчанию, если оно соответствует значению ServerName.
Вы также можете сделать виртуальный хост применимым к нескольким именам, используя определение «ServerAlias». Это обеспечивает альтернативные пути для получения одного и того же контента. Хорошим вариантом для этого является добавление того же домена, которому предшествует «www».
Параметр «DocumentRoot» указывает, где будет размещаться контент, который запрашивается для этого виртуального хоста. Виртуальный хост по умолчанию настроен на обслуживание содержимого из каталога «/ var / www» на Ubuntu.
Определения каталогов
В определении виртуального хоста существуют определения того, как сервер обрабатывает разные каталоги в файловой системе. Apache будет применять все эти направления в порядке от самого короткого до самого длинного, так что снова есть возможность переопределить предыдущие параметры.
В первом определении каталога применяются правила для каталога «/» или root. Это обеспечит базовую конфигурацию для вашего виртуального хоста, так как это относится ко всем файлам, которые хранятся в файловой системе.
По умолчанию Ubuntu не устанавливает никаких ограничений доступа к файловой системе. Apache рекомендует добавить некоторые ограничения доступа по умолчанию. Вы можете изменить это так:
<Directory /> Options FollowSymLinks AllowOverride None Order Deny,Allow Deny from All </Directory>
Это запретит доступ ко всему контенту, если не указано иное в последующих определениях каталогов.
Следующее определение каталога для корня документа, поэтому оно указывает параметр «разрешить все», который переопределяет параметр «/» для этого каталога.
Параметр «AllowOverride» используется для определения того, может ли файл «.htaccess» переопределять параметры, если он помещен в каталог содержимого. Это недопустимо по умолчанию, но может быть полезно для включения в самых разных обстоятельствах.
Выступления псевдонима и ScriptAlias
Определениям каталога иногда предшествуют утверждения «Alias» или «ScriptAlias». Alias сопоставляет URL-адрес пути к каталогу.
ScriptAlias работает одинаково, но используется для определения каталогов, в которых в них будут исполняемые компоненты.
Например, эта строка в виртуальном хосте, обрабатывающая запрос «example.com», разрешает доступ к контенту в «/ path / to / content /», переходя к «example.com/content/»:
Alias / content / / path / to / content /
Следуя псевдониму, вы должны запомнить каталог с правами доступа, как описано в предыдущем разделе.
Включение сайтов и модулей в Apache
После того, как у вас есть файл виртуального хоста, который соответствует вашим требованиям, вы можете использовать инструменты, входящие в состав Apache, для перехода их на живые сайты.
Чтобы автоматически создать символическую ссылку в каталоге с поддержкой сайтов с существующим файлом в каталоге «Доступные сайты», выполните следующую команду:
sudo a2ensite virtual_host_file_name
После включения сайта выполните следующую команду, чтобы сообщить Apache, чтобы он перечитал файлы конфигурации, позволяющие размножаться:
sudo service apache2 reload
Существует также команда компаньона для отключения виртуального хоста. Он работает, удаляя символическую ссылку из каталога «sites-enabled»:
sudo a2dissite virtual_host_file_name
Снова перезагрузите конфигурацию, чтобы произошло изменение:
sudo service apache2 reload
Модули могут быть включены или отключены с помощью команд «a2enmod» и «a2dismod» соответственно. Они работают так же, как и «узловые» версии этих команд.
Не забудьте перезагрузить свои изменения конфигурации после того, как модули были включены или отключены.
Заключение
Мы рассмотрели некоторые базовые файлы конфигурации Apache. Apache универсален и очень модулен, поэтому потребности в конфигурации будут разными в зависимости от вашей настройки.
Вы должны хорошо понимать, для чего используются основные файлы конфигурации и как они взаимодействуют друг с другом. Если вам нужно знать о конкретных параметрах конфигурации, предоставленные файлы хорошо комментируются, и Apache предоставляет отличную документацию .
Надеемся, что конфигурационные файлы теперь не будут такими же устрашающими, и вам будет удобнее экспериментировать и модифицировать в соответствии с вашими потребностями.
Как установить веб-сервер Apache на Debian 10
Предпосылки
Перед тем, как вы начнете это руководство, на вашем сервере должен быть настроен обычный пользователь без полномочий root с привилегиями sudo. Кроме того, вам нужно будет включить базовый брандмауэр для блокировки несущественных портов. Вы можете узнать, как настроить учетную запись обычного пользователя и настроить брандмауэр для своего сервера, следуя нашей initial настройке сервера. руководство по Debian 10.
Если у вас есть доступная учетная запись, войдите в систему как пользователь без полномочий root, чтобы начать.
Шаг 1 — Установка Apache
Apache доступен в стандартных репозиториях Debian, что позволяет установить его с помощью обычных инструментов управления пакетами.
Давайте начнем с обновления локального индекса пакета, чтобы отразить последние восходящие изменения:
Затем установите пакет + apache2 +
:
После подтверждения установки + apt +
установит Apache и все необходимые зависимости.
Шаг 2 — Настройка брандмауэра
Перед тестированием Apache необходимо изменить настройки брандмауэра, чтобы разрешить внешний доступ к веб-портам по умолчанию. Предполагая, что вы следовали инструкциям в предварительных условиях, у вас должен быть настроен брандмауэр UFW для ограничения доступа к вашему серверу.
Во время установки Apache регистрируется в UFW, чтобы предоставить несколько профилей приложений, которые можно использовать для включения или отключения доступа к Apache через брандмауэр.
Перечислите профили приложений + ufw +
, набрав:
Вы увидите список профилей приложения:
OutputAvailable applications:
AIM
Bonjour
CIFS
. . .
WWW
WWW Cache
WWW Full
WWW Secure
. . .
Профили Apache начинаются с WWW:
* WWW *: этот профиль открывает только порт 80 (обычный, незашифрованный веб-трафик)
* WWW Cache *: этот профиль открывает только порт 8080 (иногда используется для кэширования и веб-прокси)
* WWW Full *: этот профиль открывает порт 80 (обычный, незашифрованный веб-трафик) и порт 443 (зашифрованный трафик TLS / SSL).
* WWW Secure *: этот профиль открывает только порт 443 (зашифрованный трафик TLS / SSL)
Рекомендуется включить наиболее ограничивающий профиль, который будет по-прежнему разрешать настроенный вами трафик. Поскольку мы еще не настроили SSL для нашего сервера в этом руководстве, нам нужно будет только разрешить трафик через порт 80:
Вы можете проверить изменение, набрав:
Вы должны увидеть разрешенный HTTP-трафик в отображаемом выводе:
OutputStatus: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
WWW ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
WWW (v6) ALLOW Anywhere (v6)
Как видите, профиль был активирован, чтобы разрешить доступ к веб-серверу.
Шаг 3 — Проверка вашего веб-сервера
В конце процесса установки Debian 10 запускает Apache. Веб-сервер уже должен быть запущен.
Проверьте систему + systemd +
init, чтобы убедиться, что служба работает, набрав:
sudo systemctl status apache2
Output● apache2.service - The Apache HTTP Server
Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2019-07-19 15:33:01 UTC; 4min 13s ago
Docs: https://httpd.apache.org/docs/2.4/
. . .
Jul 19 15:33:01 debssh systemd[1]: Starting The Apache HTTP Server...
Jul 19 15:33:01 debssh apachectl[2791]: AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive global
Jul 19 15:33:01 debssh systemd[1]: Started The Apache HTTP Server.
Как видно из этого вывода, служба, кажется, успешно запущена. Однако лучший способ проверить это — запросить страницу у Apache.
Вы можете получить доступ к целевой странице Apache по умолчанию, чтобы убедиться, что программное обеспечение работает правильно через ваш IP-адрес. Если вы не знаете IP-адрес вашего сервера, вы можете получить его несколькими способами из командной строки.
Попробуйте ввести это в командной строке вашего сервера:
Вы получите обратно несколько адресов, разделенных пробелами. Вы можете попробовать каждый из них в своем веб-браузере, чтобы увидеть, работают ли они.
Альтернативой является использование инструмента + curl +
, который должен дать вам ваш публичный IP-адрес, как видно из другого места в Интернете.
Сначала установите + curl
с помощью` + apt`:
Затем используйте + curl +
, чтобы получить icanhazip.com с использованием IPv4:
Когда у вас есть IP-адрес вашего сервера, введите его в адресную строку браузера:
Вы должны увидеть веб-страницу Apache Debian 10 по умолчанию:
изображение: http: //assets.digitalocean.com/how-to-install-lamp-debian-9/small_apache_default_debian9.png [страница по умолчанию Apache]
Эта страница указывает, что Apache работает правильно. Он также содержит основную информацию о важных файлах Apache и расположении каталогов.
Шаг 4 — Управление процессом Apache
Теперь, когда ваш веб-сервер запущен и работает, давайте рассмотрим некоторые основные команды управления.
Чтобы остановить ваш веб-сервер, введите:
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
Apache теперь должен запускаться автоматически при повторной загрузке сервера.
Шаг 5 — Настройка виртуальных хостов (рекомендуется)
При использовании веб-сервера Apache вы можете использовать virtual hosts (аналогично блокам серверов в Nginx) для инкапсуляции деталей конфигурации и размещения более одного домена на одном сервере. В следующих командах * замените * + your_domain +
* на ваше собственное доменное имя *. Чтобы узнать больше о настройке доменного имени с помощью DigitalOcean, см. Наш Introduction to DigitalOcean DNS.
В Apache в Debian 10 по умолчанию включен один блок сервера, который настроен для обслуживания документов из каталога + / var / www / html +
. Хотя это хорошо работает для одного сайта, он может стать громоздким, если вы размещаете несколько сайтов. Вместо того, чтобы модифицировать + / var / www / html +
, давайте создадим структуру каталогов внутри + / var / www +
для нашего сайта + your_domain +
, оставив + / var / www / html +
в качестве каталога по умолчанию обслуживаться, если запрос клиента не совпадает ни с одним другим сайтом.
Создайте каталог для + your_domain +
следующим образом, используя флаг + -p +
для создания любых необходимых родительских каталогов:
Затем назначьте владельца каталога с помощью переменной среды + $ USER +
:
sudo chown -R $USER:$USER /var/www/
Права доступа к вашим веб-корням должны быть правильными, если вы не изменили значение + unmask +
, но вы можете убедиться, набрав:
sudo chmod -R 755 /var/www/
Затем создайте пример страницы + index.html
, используя` + nano + `или ваш любимый редактор:
nano /var/www//index.html
Внутри добавьте следующий пример HTML:
/var/www/your_domain/index.html
<html>
<head>
<title>Welcome to !</title>
</head>
<body>
<h2>Success! The virtual host is working!</h2>
</body>
</html>
Сохраните и закройте файл, когда вы закончите.
Чтобы Apache обслуживал этот контент, необходимо создать файл виртуального хоста с правильными директивами. Вместо того, чтобы изменять файл конфигурации по умолчанию, расположенный в + / etc / apache2 / sites-available / 000-default.conf +
напрямую, давайте создадим новый файл в + / etc / apache2 / sites-available / .conf +
:
sudo nano /etc/apache2/sites-available/.conf
Вставьте следующий блок конфигурации, который похож на стандартный, но обновлен для нашего нового каталога и имени домена:
/etc/apache2/sites-available/your_domain.conf
<VirtualHost *:80>
ServerAdmin
ServerName
ServerAlias
DocumentRoot /var/www/
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Обратите внимание, что мы обновили + DocumentRoot +
для нашего нового каталога, а + ServerAdmin +
— для электронной почты, к которой администратор сайта + your_domain +
может получить доступ. Мы также добавили две директивы: + ServerName +
, которая устанавливает базовый домен, который должен соответствовать этому определению виртуального хоста, и + ServerAlias +
, который определяет другие имена, которые должны совпадать, как если бы они были базовым именем.
Сохраните и закройте файл, когда вы закончите.
Давайте включим файл с помощью инструмента + a2ensite +
:
Отключите сайт по умолчанию, определенный в + 000-default.conf +
:
sudo a2dissite 000-default.conf
Далее давайте проверим ошибки конфигурации:
sudo apache2ctl configtest
Вы должны увидеть следующий вывод:
OutputAH00558: apache2: 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
Syntax OK
Перезапустите Apache, чтобы внести изменения:
sudo systemctl restart apache2
Apache должен теперь обслуживать ваше доменное имя. Вы можете проверить это, перейдя к + http: // +
, где вы должны увидеть что-то вроде этого:
изображение: https: //assets.digitalocean.com/articles/apache_virt_hosts_1404/example.png [пример виртуального хоста Apache]
Заключение
Теперь, когда у вас установлен веб-сервер, у вас есть много вариантов для типа контента, который вы можете обслуживать, и технологий, которые вы можете использовать для создания более насыщенного опыта.
Web-сервер на Debian GNU/Linux для начинающих — Linux
Руководство рассчитано на пользователей, которые собираются впервые использовать Debian GNU/Linux после работы с MS Windows.
Установка и использование web-сервера на Debian GNU/Linux,
рассмотренное в данном руководстве, ориентированы на разработчиков
веб-приложений и сайтов, использующие домашний компьютер в качестве
платформы для разработки.
«Web-сервер на Debian GNU/Linux для начинающих» содержит в себе четыре главы:
* Часть 1: установка и настройка Debian GNU/Linux;
* Часть 2. Установка и настройка web-сервера;
* Часть 3. Установка и настройка Drupal;
* Часть 4. Установка и работа с Drush.
Подробное содержание:
* О Debian GNU/Linux * О руководстве * Начало * Часть 1: установка и настройка Debian GNU/Linux o 1.1 Графическая установка системы o 1.2 Настройка системы + 1.2.1 Базовая настройка sudo + 1.2.2 Установка программ # 1.2.2.1 Apt # 1.2.2.2 Synaptic # 1.2.2.3 Репозитории # 1.2.2.4 Установка deb-пакетов + 1.2.3 Установка и базовая настройка Samba + 1.2.4 Некоторые полезные команды * Часть 2. Установка и настройка web-сервера o 2.1 Установка Apache2, PHP5, MySQL o 2.2 Установка и настройка phpMyAdmin o 2.3 Настройка PHP o 2.4 Настройка Apache2 и виртуальных хостов o 2.5 Запуск виртуальных хостов от пользователя o 2.6 Дополнения + 2.6.1 eAccelerator + 2.6.2 Компилируем PHP5 с GD * Часть 3. Установка и настройка Drupal o 3.1 Установка Drupal o 3.2 Мультисайтинг * Часть 4. Установка и работа с Drush * Руководство в формате PDF * Благодарности * Полезные ссылки
Автор: Станислав Езерский
Онлайн-версия
Благодарю Александра (aka Axel) Графова и Даниэля (aka Dan) Ишмаева за внесённые дополнения и предложения по содержанию.
Приятного и полезного чтения!
(c)
Как настроить VPS сервер на Debian?
В случае повышения нагрузки на хостинг из-за высокой посещаемости или использования различных нестандартных решений работа сайта может сопровождаться множеством проблем. Самое верное избавление от них — это перенос сайта или проекта на виртуальный сервер (VPS).
Одна из популярных операционных систем для этого — Debian Linux. С ней возможно удобное администрирование VPS, который, кстати, по функциональности практически не отличается от физического выделенного сервера.
После заказа VPS вы получите в свое распоряжение виртуальную машину с операционной системой Debian Linux. Сделать все необходимое для нормальной работы сервера можно самостоятельно. Такая настройка Debian VPS для «тяжелых» проектов предполагает установку веб-сервера nginx с поддержкой FastCGI или Apache. Кроме того, понадобится PHP, MySQL, а также целый ряд программного обеспечения, которое необходимо для решения тех или иных задач. В результате вы получите возможность использовать все выделенные виртуальному серверу ресурсы с высокой эффективностью и обеспечить требуемый уровень безопасности и производительности.
В процессе настройки для нормальной работы потребуется подобрать ПО, работающее с протоком SSH, который обеспечивает удаленное администрирование ОС. Для этого подойдут любые программы, которые удастся найти, поскольку они однотипны и, соответственно, примерно одинаковы. А вот настройка виртуального сервера уже потребует знаний определенных консольных команд Linux, которые всегда можно поискать в справочной информации.
Для работы сайта первым делом необходимо установить веб-сервер. В последнее время nginx набирает популярность, занимая второе место после Apache, поэтому выбирать можно любой из них. Для установки веб-сервера потребуется скачать соответствующие пакеты и скопировать их на виртуальный сервер. Затем нужно выбрать компоненты, необходимые для работы PHP, SQL и других приложений.
Конечно, самостоятельная настройка и администрирование виртуальных серверов под управлением ОС Debian Linux принесет немало головной боли неподготовленным пользователям. Поэтому, чтобы избежать бессонных ночей и непредвиденных падений, лучше всего обратиться к специалистам дата-центров 3data. В этом случае вы сможете вместе с VPS заказать и другие услуги или их полный пакет.
Цены на VPS
Как поднять веб-сервер (Apache2+Nginx+Mysql+PHPmyAdmin) на VPS Debian 7
Никогда бы не подумал, что буду в таком замешательстве сидя за компьютером, как в последние дни. А все потому, что я решил что обычный хостинг данному сайту уже не подходит, сайт вырос и вырос сильно. Поэтому после долгих раздумий было решено переходить на VPS/VDS сервер. Что, собственно, на момент написания этой статьи выполнено, выбрал я сервер от компании Infobox (соотношение цена/функционал меня вполне устроило). Но честно скажу, это было не легко, я еще до этого ни разу не работал в unix системах, тем более через консольные терминалы. А так как этот сайт изначально создавался именно как база моих знаний, на случай если вдруг что-нибудь забуду. То и процесс настройки сервера я задокументирую, тем более операций произведено много, мануалов прочитано еще больше:) Чтож, если вы читаете эту инструкцию, я надеюсь что вам она поможет. В теории эта инструкция может подойти и на Ubuntu сервера, но я при выборе VPS остановился на Debian 7, а в чем разница между ними я не особо в курсе.
1) Итак, первое к чему нужно привыкнуть — это работа через терминал и протокол SSH (через него же можно скидывать файлы, к примеру через FileZila), для Windows качаем Putty. Запускаем, вбиваем IP-адрес вашего сервера, предоставленный вашим хостером в панели управления сервером. Порт обычно 22. Жмем open для подключения.
Откроется черное окно с фразой Login as, здесь нужно ввести логин администратора под которым вы будете работать, обычно это root, вводим нажимаем Enter и видим запрос пароля (логин и пароль от вашего сервера можно найти в панели управления сервером), при написании пароля символы и даже звездочки не отображаются, все на ощупь. Так же пароль можно скопировать и вставить в окно терминала одинарным нажатием правой клавишей мыши. (Ctrl+V и «Правой клавишей мыши — вставить» здесь на работают, запоминайте, просто один раз правой клавишей). После ввода пароля так же жмем Enter и сервер радостно нас поприветствует.
2) Второй момент, который стоит запомнить, в Debian все приложения устанавливаются через команду apt-get, приложения по-умолчанию берутся из интернет-репозиториев. К этому легко привыкаешь и потом с сожалением вспоминаешь при работе в Windows. Итак, первое что мы делаем обновляем базы репозитариев и делаем обновление всего ПО, установленного в систему. Поэтому сперва вбиваем команду apt-get update , а после завершения обновления пишем apt-get upgrade .
3) Теперь установим пару утилит, которые нам могут пригодится в процессе настройки сервера. Первая этот текстовый редактор nano вбиваем apt-get install nano , а вторым будет файловый менеджер Midnight Commaner пишем apt-get install mc , после ввода команды, скорее всего нужно будет подтвердить установку вбив букву Y и нажав Enter.
4) Все подготовительный этап закончен, начинаем установку сервера. Вводим следующую команду:
apt-get install php5-fpm nginx mysql-server php5-mysql php5-curl apache2
Жмем Enter. И подтверждаем установку буквой Y.
5) В процессе установки высветится синие окно настройки MySQL и первые вопрос об установки пароля для доступа к базам, вводим пароль, который вы будете для этого использовать.
Повторяем его же. Ждем завершения установки пакетов.
6) После завершения установки нужно создать первую, тестовую базу данных, для тестового же сайта. Поэтому пишем следующую команду: mysql -u root -p И вводим пароль, созданный на прошлом этапе.
Пишем команду на создание базы данных с именем blog (это бд, для тестового сайта, в будущем, когда вы будете переносить свой сайт, вы сможете работать с базами через панель phpmyadmin), команда выглядит следующим образом:
create database blog;
Точка с запятой в конце обязательны!
Выходим из меню mysql командой exit
7) Теперь займемся конфигами php машин. Для начала запретим apache2 слушать 80 порт, иначе не запустится nginx, а нам нужен именно он.Вбиваем команду:
nano /etc/apache2/ports.conf
Если у вас открылся пустой экран, значит на вашем сервере не установлен даже Apache, закрываем окно клавишами Ctrl+X и переходим к следующему пункту, если же у вас конфиг открылся, то меняем параметры NameVirtualHost и Listen на 81. И тоже жмем CTRL+X, вводим Y и два раза жмем Enter не внося изменений в название файла.
8) Теперь настраиваем шаблон сайта сервера nginx, открываем его в текстовом редакторе:
nano /etc/nginx/sites-available/default
И здесь приводим все выделенные места как на скриншоте. После изменения сохраняем изменения через Ctrl+X , Y, Enter.
Теперь чуть-чуть объясняю, так как мы планируем размещать несколько сайтов на своем VPS, то сразу же перенесем этот тестовый сайт в папку default. То есть он будет открывать просто по IP адресу, для того чтобы добавить сайт с определенным доменом нужно создать файл, подобный этому, только со следующими изменениями:
1) Называем файл нормальным именем вместо default, к примеру skesov.ru
2) Копируем в него содержимое данного конфига
3) В строке root меняем путь на путь до папке, в которой будет хранится сайт /usr/share/nginx/www/skesov.ru (как правильно создавать папки для сайта мы рассмотрим ниже)
4) В строке server_name необходимо заменить localhost на ваш домен (skesov.ru)
Теперь сразу же создаем символьную ссылку с этого файла в соседний каталог командой (для файлов к вашим сайтам символьные ссылки тоже нужно создавать):
ln -s /etc/nginx/sites-available/default /etc/nginx/sites-enabled/default
Должно получиться примерно вот так, слева файлы, справа символьные ссылки на них. Чтобы открыть Midnight Commander введите mc в терминале, чтобы закрыть Alt+0.
8) Теперь перезапускаем все, в чем вносили изменения и запускаем установленное. Для этого вводим следующие команды по очереди:
service apache2 restart
service nginx start
service mysql restart
9) Так, сейчас мы создадим каталог для нашего сайта и установим собственно сайт в него. По такому же принципу необходимо создавать папки для ваших сайтов. Делаем дальше в том порядке, как указано.
Переходим в папку www:
cd /usr/share/nginx/www
Создаем каталог default (имя должно быть такое же как в файле, который находится в sites-available):
mkdir default
Переходим в нее:
cd default/
Скачиваем последнюю версию WordPress:
wget http://ru.wordpress.org/latest-ru_RU.zip
Распаковываем архив:
unzip latest-ru_RU.zip
Удаляем архив, он нам больше не нужен:
rm latest-ru_RU.zip
Перемещаем все файлы из папки wordpress в папку default (точка обязательна):
mv wordpress/* .
Удаляем папку wordpress: rmdir wordpress/
Возвращаемся на папку назад: cd ..
И меняем владельца папки default на www-data(такие же данные нужно назначать всем папкам, которые вы создадите для ваших сайтов):
chown www-data.www-data -R default/
Все, теперь перейдя введя IP-адрес сервера, мы должны попасть на страницу первичных настроек WordPress это говорит о том, что сервер настроен правильно и пройдя первичную настройку мы получим полностью работоспособный сайт.
10) Осталось установить PhpMyAdmin для удобства работы с базами данным MySQL. Вводим команду для установки пакета:
apt-get install phpmyadmin
И подтверждаем установкой введя букву Y. После установки откроется страница настройки панели, выбираем то, что у вас стояло по умолчанию.
На следующей странице я ответил утвердительно и меня за это не поругали, так что думаю жмем «Да».
Вводим пароль, которые мы задали при установке MySQL.
И пароль для входа в phpmyadmin.
Теперь осталось создать символьную ссылку для доступа к phpmyadmin по ссылке формата домен.ru/phpmyadmin:
ln -s /usr/share/phpmyadmin/ /usr/share/nginx/www/default
Default меняем на папку с вашим сайтом. Ну и для завершения настройки читаем статью о снятии ограничения на загрузки файлов размером более 2мб.
Надеюсь что вы нигде не запутались и все получилось.
На этом всё. Надеюсь эта статья оказалась вам полезной, нажмите одну из кнопок ниже, чтобы рассказать о ней друзьям. Также подпишитесь на обновления сайта, введя свой e-mail в поле справа или подписавшись на группу в Вконтакте.
Спасибо за внимание
Материал сайта Skesov.ru
Оцените статью:
(1 голос, среднее: 5 из 5)
Поделитесь с друзьями!
Как установить веб-сервер Apache в Debian 10
Не используете Debian 10?
Выберите другую версию или дистрибутив.
Debian 10
Введение
HTTP-сервер Apache — самый широко используемый веб-сервер в мире. Он предоставляет множество мощных функций, включая динамически загружаемые модули, надежную поддержку мультимедиа и обширную интеграцию с другим популярным программным обеспечением.
В этом руководстве мы объясним, как установить веб-сервер Apache на ваш сервер Debian 10.
Предварительные требования
Перед тем, как приступить к работе с этим руководством, у вас должен быть обычный пользователь без полномочий root с привилегиями sudo, настроенными на вашем сервере. Кроме того, вам нужно будет включить базовый брандмауэр, чтобы блокировать второстепенные порты. Вы можете узнать, как настроить обычную учетную запись пользователя и настроить брандмауэр для своего сервера, следуя нашему руководству по начальной настройке сервера для Debian 10.
Когда у вас есть доступная учетная запись, войдите в систему как пользователь без полномочий root, чтобы начать.
Шаг 1 — Установка Apache
Apache доступен в репозиториях программного обеспечения Debian по умолчанию, что позволяет установить его с помощью обычных инструментов управления пакетами.
Давайте начнем с обновления локального индекса пакета, чтобы отразить последние изменения в восходящем направлении:
Затем установите apache2
package:
После подтверждения установки apt
установит Apache и все необходимые зависимости.
Шаг 2 — Настройка межсетевого экрана
Перед тестированием Apache необходимо изменить настройки брандмауэра, чтобы разрешить внешний доступ к веб-портам по умолчанию. Предполагая, что вы следовали инструкциям в предварительных условиях, у вас должен быть настроен брандмауэр UFW для ограничения доступа к вашему серверу.
Во время установки Apache регистрируется в UFW, чтобы предоставить несколько профилей приложений, которые можно использовать для включения или отключения доступа к Apache через брандмауэр.
Перечислите профили приложений ufw
, набрав:
Вы увидите список профилей приложений:
Выход
Доступные приложения:
ЦЕЛЬ
Bonjour
CIFS
. . .
WWW
WWW-кеш
WWW Полный
WWW Secure
. . .
Профили Apache начинаются с WWW:
- WWW : этот профиль открывает только порт 80 (обычный, незашифрованный веб-трафик)
- WWW Cache : этот профиль открывает только порт 8080 (иногда используется для кеширования и веб-прокси)
- WWW Full : этот профиль открывает порт 80 (обычный незашифрованный веб-трафик) и порт 443 (трафик с шифрованием TLS / SSL)
- WWW Secure : этот профиль открывает только порт 443 (трафик с шифрованием TLS / SSL)
Рекомендуется включить профиль с наиболее строгими ограничениями, который по-прежнему будет разрешать трафик, который вы настроили.Поскольку в этом руководстве мы еще не настроили SSL для нашего сервера, нам нужно будет разрешить трафик только на порт 80:
.
Вы можете проверить изменение, набрав:
Вы должны увидеть разрешенный HTTP-трафик в отображаемом выводе:
Выход
Статус: активен
К действию от
- ------ ----
OpenSSH РАЗРЕШИТЬ В любом месте
WWW ALLOW Anywhere
OpenSSH (v6) РАЗРЕШИТЬ В любом месте (v6)
WWW (v6) РАЗРЕШИТЬ В любом месте (v6)
Как видите, профиль был активирован, чтобы разрешить доступ к веб-серверу.
Шаг 3 — Проверка вашего веб-сервера
В конце процесса установки Debian 10 запускает Apache. Веб-сервер уже должен быть запущен.
Проверьте систему инициализации systemd
, чтобы убедиться, что служба запущена, набрав:
- sudo systemctl статус apache2
Вывод
● apache2.service - HTTP-сервер Apache
Загружено: загружено (/ lib / systemd / system / apache2.служба; включено; предустановка поставщика: включена)
Активен: активен (работает) с Пт 2019-07-19 15:33:01 UTC; 4мин 13с назад
Документы: https://httpd.apache.org/docs/2.4/
. . .
19 июля, 15:33:01 debssh systemd [1]: запуск HTTP-сервера Apache ...
19 июля, 15:33:01 debssh apachectl [2791]: AH00558: apache2: Не удалось надежно определить полное доменное имя сервера, используя 127.0.1.1. Установите глобальную директиву ServerName
19 июля, 15:33:01 debssh systemd [1]: запущен HTTP-сервер Apache.
Как видно из этих выходных данных, служба, похоже, была запущена успешно.Однако лучший способ проверить это — запросить страницу у Apache.
Вы можете получить доступ к целевой странице Apache по умолчанию, чтобы убедиться, что программное обеспечение работает правильно через ваш IP-адрес. Если вы не знаете IP-адрес своего сервера, вы можете получить его несколькими способами из командной строки.
Попробуйте ввести в командной строке вашего сервера:
Вы получите несколько адресов, разделенных пробелами. Вы можете попробовать каждый из них в своем веб-браузере, чтобы проверить, работают ли они.
Альтернативой является использование инструмента curl
, который должен предоставить вам ваш общедоступный IP-адрес, видимый из другого места в Интернете.
Сначала установите curl
, используя apt
:
Затем используйте curl
для получения icanhazip.com с использованием IPv4:
Когда у вас есть IP-адрес вашего сервера, введите его в адресную строку браузера:
http: // ваш_сервер_ip
Вы должны увидеть веб-страницу Debian 10 Apache по умолчанию:
Эта страница указывает на то, что Apache работает правильно.Он также включает некоторую базовую информацию о важных файлах Apache и расположении каталогов.
Шаг 4. Управление процессом Apache
Теперь, когда ваш веб-сервер настроен и работает, давайте рассмотрим некоторые основные команды управления.
Чтобы остановить ваш веб-сервер, введите:
- sudo systemctl stop apache2
Чтобы запустить веб-сервер, когда он остановлен, введите:
- sudo systemctl start apache2
Чтобы остановить, а затем снова запустить службу, введите:
- sudo systemctl перезапустить apache2
Если вы просто вносите изменения в конфигурацию, Apache часто может перезагружаться, не разрывая соединения.Для этого используйте эту команду:
- sudo systemctl перезагрузить apache2
По умолчанию Apache настроен на автоматический запуск при загрузке сервера. Если это не то, что вам нужно, отключите это поведение, набрав:
- sudo systemctl отключить apache2
Чтобы снова включить запуск службы при загрузке, введите:
- sudo systemctl включить apache2
Apache теперь должен запускаться автоматически при повторной загрузке сервера.
Шаг 5 — Настройка виртуальных хостов (рекомендуется)
При использовании веб-сервера Apache вы можете использовать виртуальных хостов (аналогично серверным блокам в Nginx) для инкапсуляции деталей конфигурации и размещения более одного домена с одного сервера. В следующих командах замените your_domain
своим собственным доменным именем . Чтобы узнать больше о настройке доменного имени с помощью DigitalOcean, см. Наше Введение в DigitalOcean DNS.
В Apache в Debian 10 по умолчанию включен один серверный блок, который настроен для обслуживания документов из каталога / var / www / html
.Хотя это хорошо работает для одного сайта, это может стать громоздким, если вы размещаете несколько сайтов. Вместо изменения / var / www / html
, давайте создадим структуру каталогов в / var / www
для нашего your_domain
сайта, оставив / var / www / html
на месте в качестве каталога по умолчанию, который будет обслуживаться, если запрос клиента не соответствует ни одному другому сайту.
Создайте каталог для your_domain
следующим образом, используя флаг -p
для создания любых необходимых родительских каталогов:
sudo mkdir -p / var / www / ваш_домен
Затем назначьте владение каталогом с помощью переменной среды $ USER
:
- sudo chown -R $ USER: $ USER / var / www / your_domain
Разрешения ваших корневых веб-сайтов должны быть правильными, если вы не изменили значение unmask
, но вы можете убедиться в этом, набрав:
- sudo chmod -R 755 / var / www / your_domain
Затем создайте образец индекса .html
, используя nano
или ваш любимый редактор:
- нано /var/www/your_domain/index.html
Внутри добавьте следующий образец HTML:
/var/www/your_domain/index.html
Добро пожаловать в ваш_домен!
Успех! Виртуальный хост your_domain работает!
Сохраните и закройте файл, когда закончите.
Чтобы Apache мог обслуживать этот контент, необходимо создать файл виртуального хоста с правильными директивами. Вместо прямого изменения файла конфигурации по умолчанию, расположенного по адресу /etc/apache2/sites-available/000-default.conf
, давайте создадим новый по адресу /etc/apache2/sites-available/your_domain.conf
:
.
- sudo nano /etc/apache2/sites-available/your_domain.conf
Вставьте следующий блок конфигурации, который аналогичен блоку по умолчанию, но обновлен для нашего нового каталога и имени домена:
/ etc / apache2 / sites-available / your_domain.conf
ServerAdmin admin @ your_email_domain
ServerName your_domain
ServerAlias www.your_domain
DocumentRoot / var / www / ваш_домен
ErrorLog $ {APACHE_LOG_DIR} /error.log
CustomLog $ {APACHE_LOG_DIR} /access.log объединены
Обратите внимание, что мы обновили DocumentRoot
до нашего нового каталога и ServerAdmin
на адрес электронной почты, к которому имеет доступ администратор сайта your_domain
.Мы также добавили две директивы: ServerName
, которая устанавливает базовый домен, который должен соответствовать этому определению виртуального хоста, и ServerAlias
, который определяет другие имена, которые должны совпадать, как если бы они были базовым именем.
Сохраните и закройте файл, когда закончите.
Давайте включим файл с помощью инструмента a2ensite
:
- sudo a2ensite your_domain.conf
Отключить сайт по умолчанию, определенный в 000-default.конф
:
- sudo a2dissite 000-default.conf
Теперь давайте проверим ошибки конфигурации:
- sudo apache2ctl configtest
Вы должны увидеть следующий результат:
Выходные данные
AH00558: apache2: Не удалось надежно определить полное доменное имя сервера с использованием 127.0.1.1. Установите глобальную директиву ServerName, чтобы подавить это сообщение.
Синтаксис ОК
Перезапустите Apache, чтобы изменения вступили в силу:
- sudo systemctl перезапустить apache2
Apache теперь должен обслуживать ваше доменное имя.Вы можете проверить это, перейдя по адресу http: // your_domain
, где вы должны увидеть что-то вроде этого:
Шаг 6. Знакомство с важными файлами и каталогами Apache
Теперь, когда вы знаете, как управлять самой службой Apache, вам следует потратить несколько минут, чтобы ознакомиться с несколькими важными каталогами и файлами.
Содержимое
-
/ var / www / html
: фактический веб-контент, который по умолчанию состоит только из страницы Apache по умолчанию, которую вы видели ранее, обслуживается из каталога/ var / www / html
.Это можно изменить, изменив файлы конфигурации Apache.
Конфигурация сервера
-
/ etc / apache2
: Каталог конфигурации Apache. Здесь находятся все файлы конфигурации Apache. -
/etc/apache2/apache2.conf
: основной файл конфигурации Apache. Это можно изменить, чтобы внести изменения в глобальную конфигурацию Apache. Этот файл отвечает за загрузку многих других файлов в каталоге конфигурации. -
/ и т. Д. / Apache2 / ports.conf
: этот файл определяет порты, которые Apache будет прослушивать. По умолчанию Apache прослушивает порт 80 и дополнительно прослушивает порт 443, когда включен модуль, обеспечивающий возможности SSL. -
/ etc / apache2 / sites-available /
: каталог, в котором могут храниться виртуальные хосты для каждого сайта. Apache не будет использовать файлы конфигурации, найденные в этом каталоге, если они не связаны с каталогом с поддержкой сайтов . Обычно вся конфигурация серверного блока выполняется в этом каталоге, а затем включается путем связывания с другим каталогом с помощью командыa2ensite
. -
/ etc / apache2 / sites-enabled /
: каталог, в котором хранятся включенные виртуальные хосты для каждого сайта. Как правило, они создаются путем связывания с файлами конфигурации, находящимися в каталогеsite-available
, с помощьюa2ensite
. Apache читает файлы конфигурации и ссылки, найденные в этом каталоге, при запуске или перезагрузке для компиляции полной конфигурации. -
/ etc / apache2 / conf-available /
,/ etc / apache2 / conf-enabled /
: Эти каталоги имеют те же отношения, что и каталоги , доступные для сайтов и, доступные для сайтов
, но используются для хранить фрагменты конфигурации, не принадлежащие виртуальному хосту.Файлы в каталоге, доступном для conf-available, можно включить с помощью команды
a2enconf
и отключить с помощью командыa2disconf
. -
/ etc / apache2 / mods-available /
,/ etc / apache2 / mods-enabled /
: Эти каталоги содержат доступные и включенные модули соответственно. Файлы, оканчивающиеся на.load
, содержат фрагменты для загрузки определенных модулей, а файлы, заканчивающиеся на.conf
, содержат конфигурацию для этих модулей.Модули можно включать и отключать с помощью командa2enmod
иa2dismod
.
Журналы сервера
-
/var/log/apache2/access.log
: по умолчанию каждый запрос к вашему веб-серверу записывается в этот файл журнала, если Apache не настроен на иное. -
/var/log/apache2/error.log
: По умолчанию все ошибки записываются в этот файл. ДирективаLogLevel
в конфигурации Apache указывает, насколько подробно будут содержаться журналы ошибок.
Заключение
Теперь, когда у вас установлен веб-сервер, у вас есть много вариантов для типа контента, который вы можете обслуживать, и технологий, которые вы можете использовать для создания более насыщенного опыта.
Если вы хотите создать более полный стек приложений, вы можете прочитать в этой статье о том, как настроить стек LAMP в Debian 10.
11,2. Веб-сервер (HTTP)
Администраторы Falcot Corp решили использовать HTTP-сервер Apache, включенный в Debian Buster версии 2.4.38.
11.2.1. Установка Apache
Все, что нужно - это установить пакет apache2. Он содержит все модули, включая Multi-Processing Modules (MPM), которые влияют на то, как Apache обрабатывает параллельную обработку многих запросов, которые раньше предоставлялись в отдельных пакетах apache2-mpm- *. Он также извлечет apache2-utils, содержащие утилиты командной строки, которые мы обнаружим позже.
Используемый MPM существенно влияет на то, как Apache будет обрабатывать параллельные запросы.С worker MPM он использует потоков (легковесные процессы), тогда как с prefork MPM использует заранее созданный пул процессов. С событием MPM он также использует потоки, но неактивные соединения (особенно те, которые остаются открытыми функцией поддержки активности HTTP ) возвращаются в специальный поток управления.
Администраторы Falcot также устанавливают libapache2-mod-php7.3, чтобы включить поддержку PHP в Apache.Это приводит к тому, что событие по умолчанию MPM будет отключено, и вместо него будет использоваться предварительная вилка . Чтобы использовать событие MPM, можно использовать php7.3-fpm.
Apache - это модульный сервер, и многие функции реализуются внешними модулями, которые основная программа загружает во время своей инициализации. Конфигурация по умолчанию включает только самые распространенные модули, но включение новых модулей - простой вопрос запуска a2enmod module
; чтобы отключить модуль, введите команду a2dismod module
.Эти программы фактически создают (или удаляют) только символические ссылки в / etc / apache2 / mods-enabled /
, указывая на фактические файлы (хранящиеся в / etc / apache2 / mods-available /
).
В конфигурации по умолчанию веб-сервер прослушивает порт 80 (как настроено в /etc/apache2/ports.conf
) и обслуживает страницы из каталога / var / www / html /
(как настроено в / etc. /apache2/sites-enabled/000-default.conf
).
11.2.2. Добавление поддержки SSL
Apache 2.4 включает модуль SSL ( mod_ssl
), необходимый для безопасного HTTP (HTTPS) из коробки. Его просто нужно включить с помощью a2enmod ssl
, а затем добавить необходимые директивы в файлы конфигурации. Пример конфигурации приведен в /etc/apache2/sites-available/default-ssl.conf
.
SSLCertificateFile / etc / letsencrypt / live / ДОМЕН /fullchain.pem SSLCertificateKeyFile / etc / letsencrypt / live / ДОМЕН / privkey.pem SSLCertificateChainFile / etc / letsencrypt / live / ДОМЕН /chain.pem SSLCACertificateFile /etc/ssl/certs/ca-certificates.crt
Следует проявлять особую осторожность, если вы хотите отдать предпочтение SSL-соединениям с Perfect Forward Secrecy (эти соединения используют эфемерные сеансовые ключи, гарантируя, что компрометация секретного ключа сервера не приведет к компрометации старого зашифрованного трафика, который мог быть сохранен. пока нюхает в сети). В частности, обратите внимание на рекомендации Mozilla:
В качестве альтернативы стандартному модулю SSL существует модуль расширения под названием mod_gnutls
, который поставляется с пакетом libapache2-mod-gnutls и активируется с помощью команды a2enmod gnutls
.
11.2.3. Настройка виртуальных хостов
Виртуальный хост - это дополнительная идентификация для веб-сервера.
Apache рассматривает два разных типа виртуальных хостов: те, которые основаны на IP-адресе (или порте), и те, которые зависят от доменного имени веб-сервера. Первый метод требует выделения разных IP-адресов (или портов) для каждого сайта, тогда как второй может работать с одним IP-адресом (и портом), и сайты различаются по имени хоста, отправляемому HTTP-клиентом (который работает только в версии 1.1 протокола HTTP - к счастью, эта версия достаточно стара, чтобы ее уже использовали все клиенты).
(Растущая) нехватка адресов IPv4 обычно способствует второму методу; однако это усложняется, если виртуальные хосты также должны предоставлять HTTPS, поскольку протокол SSL не всегда обеспечивает виртуальный хостинг на основе имен; расширение SNI ( Server Name Indication ), которое допускает такую комбинацию, обрабатывается не всеми браузерами. Когда несколько сайтов HTTPS должны работать на одном сервере, они обычно различаются тем, что работают на другом порту или на другом IP-адресе (здесь может помочь IPv6).
Конфигурация по умолчанию для Apache 2 включает виртуальные хосты на основе имен. Кроме того, виртуальный хост по умолчанию определен в файле /etc/apache2/sites-enabled/000-default.conf
; этот виртуальный хост будет использоваться, если не будет найден хост, соответствующий запросу, отправленному клиентом.
Затем каждый дополнительный виртуальный хост описывается файлом, хранящимся в / etc / apache2 / sites-available /
. Таким образом, для создания веб-сайта для домена falcot.org
достаточно создать следующий файл, а затем включить виртуальный хост с a2ensite www.falcot.org
.
Пример 11.13. Файл /etc/apache2/sites-available/www.falcot.org.conf
ServerName www.falcot.org ServerAlias falcot.org DocumentRoot /srv/www/www.falcot.org
Сервер Apache, настроенный до сих пор, использует одни и те же файлы журнала для всех виртуальных хостов (хотя это можно изменить, добавив директивы CustomLog
в определения виртуальных хостов).Поэтому имеет смысл настроить формат этого файла журнала, чтобы он включал имя виртуального хоста. Это можно сделать, создав файл /etc/apache2/conf-available/customlog.conf
, который определяет новый формат для всех файлов журнала (с помощью директивы LogFormat
) и включив его с помощью a2enconf customlog
. Строка CustomLog
также должна быть удалена (или закомментирована) из файла /etc/apache2/sites-available/000-default.conf
.
Пример 11.14. Файл /etc/apache2/conf-available/customlog.conf
# Новый формат журнала, включая (виртуальное) имя хоста LogFormat "% v% h% l% u% t \"% r \ "%> s% b \"% {Referer} i \ "\"% {User-Agent} i \ "" vhost # Теперь давайте использовать этот формат "vhost" по умолчанию CustomLog /var/log/apache2/access.log vhost
11.2.4. Общие директивы
В этом разделе кратко рассматриваются некоторые из часто используемых директив конфигурации Apache.
Основной файл конфигурации обычно включает несколько блоков каталога Directory
; они позволяют указать различное поведение сервера в зависимости от местоположения обслуживаемого файла.Такой блок обычно включает Options
и AllowOverride директивы
.
Пример 11.15. Блок каталога
<Каталог / SRV / www> Опции включают FollowSymlinks AllowOverride All DirectoryIndex index.php index.html index.htm
Директива DirectoryIndex
содержит список файлов, которые нужно попробовать, когда запрос клиента совпадает с каталогом. В качестве ответа используется первый существующий файл в списке.
За директивой Options
следует список параметров, которые необходимо включить. Значение None
отключает все параметры; соответственно, All
включает их все, кроме MultiViews
. Доступные варианты включают:
ExecCGI
указывает, что сценарии CGI могут выполняться.FollowSymlinks
сообщает серверу, что по символическим ссылкам можно переходить, и что ответ должен содержать содержимое цели таких ссылок.SymlinksIfOwnerMatch
также сообщает серверу следовать символическим ссылкам, но только тогда, когда ссылка и ее цель имеют одного и того же владельца.Включает
включает Серверную часть Включает ( SSI для краткости). Это директивы, встроенные в HTML-страницы и выполняемые на лету для каждого запроса.Включает NOEXEC
разрешает Server Side Includes ( SSI ), но отключает командуexec
и ограничивает директивуinclude
текстовыми файлами / файлами разметки.Индексы
DirectoryIndex
).MultiViews
позволяет согласовывать содержимое; это может использоваться сервером для возврата веб-страницы, соответствующей предпочтительному языку, настроенному в браузере.
В директиве AllowOverride
перечислены все параметры, которые можно включить или отключить с помощью файла .htaccess
. Обычно этот параметр используется для ограничения ExecCGI
, чтобы администратор мог выбрать, каким пользователям разрешено запускать программы под удостоверением веб-сервера (пользователь www-data
).
11.2.4.1. Требуется аутентификация
В некоторых случаях доступ к части веб-сайта необходимо ограничить, поэтому доступ к содержимому предоставляется только законным пользователям, указавшим имя пользователя и пароль.
Пример 11.16. .htaccess
файл, требующий аутентификации
Требовать действительного пользователя AuthName "Личный каталог" AuthType Basic AuthUserFile / и т. Д. / Apache2 / authfiles / htpasswd-private
Файл / etc / apache2 / authfiles / htpasswd-private
содержит список пользователей и паролей; обычно им манипулируют с помощью команды htpasswd
. Например, следующая команда используется для добавления пользователя или изменения его пароля:
#
htpasswd / etc / apache2 / authfiles / htpasswd-private пользователь
Новый пароль: Введите повторно новый пароль: Добавление пароля для пользователя пользователя
11.2.4.2. Ограничение доступа
Директива Require
управляет ограничениями доступа к каталогу (и его подкаталогам, рекурсивно).
Его можно использовать для ограничения доступа по многим критериям; мы остановимся на описании ограничения доступа на основе IP-адреса клиента, но его можно сделать гораздо более мощным, особенно когда несколько директив Require
объединены в блок RequireAll
.
Пример 11.17. Разрешить только из локальной сети
Требуется ip 192.168.0.0/16
Анализатор журналов часто устанавливается на веб-сервере; поскольку первый дает администраторам точное представление о шаблонах использования второго.
Администраторы Falcot Corp выбрали AWStats ( Advanced Web Statistics ) для анализа файлов журналов Apache.
Первым шагом настройки является настройка / etc / awstats / awstats.. * \. falcot \ .com $] "
DNSLookup = 1
LoadPlugin = "подсказки"
Все эти параметры задокументированы комментариями в файле шаблона. В частности, параметры LogFile
и LogFormat
описывают расположение и формат файла журнала, а также информацию, которую он содержит; SiteDomain
и HostAliases
перечисляют различные имена, под которыми известен основной веб-сайт.
Для сайтов с высоким трафиком DNSLookup
обычно не следует устанавливать на 1
; для небольших сайтов, таких как описанный выше Falcot, этот параметр позволяет получать более удобочитаемые отчеты, включающие полные имена компьютеров вместо необработанных IP-адресов.
AWStats также будет включен для других виртуальных хостов; каждому виртуальному хосту нужен собственный файл конфигурации, например /etc/awstats/awstats.www.falcot.org.conf
.
Пример 11.18. Файл конфигурации AWStats для виртуального хоста
Включите "/etc/awstats/awstats.conf" SiteDomain = "www.falcot.org" HostAliases = "falcot.org"
AWStats использует множество значков, хранящихся в каталоге / usr / share / awstats / icon /
. Чтобы эти значки были доступны на веб-сайте, конфигурация Apache должна быть адаптирована для включения следующей директивы:
Псевдоним / awstats-icon / / usr / share / awstats / icon /
Через несколько минут (и после того, как скрипт будет запущен несколько раз), результаты будут доступны в Интернете:
Как установить веб-сервер Apache в Debian 10 Linux
HTTP-сервер Apache - один из самых популярных веб-серверов в мире.Это кроссплатформенный HTTP-сервер с открытым исходным кодом, который обслуживает большую часть веб-сайтов в Интернете. Apache предоставляет множество мощных функций, которые можно расширить с помощью дополнительных модулей.
В этом руководстве мы объясним, как установить Apache на Debian 10, Buster.
Предварительные требования #
Перед тем, как начать работу с руководством, убедитесь, что вы вошли в систему как пользователь с привилегиями sudo.
Установка Apache #
Пакеты Apache доступны в репозиториях Debian по умолчанию.
Установка довольно проста. Обновите индекс пакета и установите веб-сервер Apache с помощью следующих команд:
sudo apt update
sudo apt install apache2
Вот и все, Apache установлен и автоматически запускается. Чтобы проверить статус, введите:
sudo systemctl status apache2
● apache2.service - HTTP-сервер Apache
Загружено: загружено (/lib/systemd/system/apache2.service; включено; предустановка поставщика:
Активен: активен (работает) с Сб 2019-07-27 13:55:49 PDT; 21с назад
...
Настройте брандмауэр #
Пользователи UFW могут открывать порты HTTP ( 80
) и HTTPS ( 443
), включив профиль «Nginx Full»:
sudo ufw allow «Apache Full»
Если вы используете nftables для фильтрации подключений к вашей системе, откройте необходимые порты, выполнив следующую команду:
nft добавить правило inet filter input tcp dport {80, 443} ct state new, установленный счетчик accept
Проверка установки Apache #
Чтобы убедиться, что Apache работает правильно, откройте браузер, введите IP-адрес вашего сервера или доменное имя http: // ВАШ_IP_ИЛИ_ДОМЕН /
, и вы увидите страницу приветствия Apache по умолчанию, как показано ниже:
Страница содержит основные информация о файлах конфигурации Apache, вспомогательных скриптах и расположении каталогов.
Структура файла конфигурации Apache и передовые методы #
- В системах на основе Debian файлы конфигурации Apache находятся в каталоге
/ etc / apache2
. - Главный файл конфигурации Apache - это
/etc/apache2/apache2.conf
. - Порты, которые будет прослушивать Apache, указаны в файле
/etc/apache2/ports.conf
. - Файлы виртуальных хостов Apache находятся в каталоге
/ etc / apache2 / sites-available
.Файлы конфигурации, найденные в этом каталоге, не используются Apache, если они не связаны с каталогом/ etc / apache2 / sites-enabled
. - Вы можете активировать директиву виртуального хоста, создав символическую ссылку с помощью команды
a2ensite
из файлов конфигурации, найденных в каталогеsites-available
, в каталог sites-enabled . Чтобы деактивировать виртуальный хост, используйте командуa2dissite
. - Настоятельно рекомендуется следовать стандартному соглашению об именах, например, если ваше доменное имя —
mydomain.com
, то файл конфигурации домена должен называться/etc/apache2/sites-available/mydomain.com.conf
- Файлы конфигурации, которые используются для загрузки различных модулей Apache, находятся в
/ etc / apache2 / mods- Доступен каталог
. Конфигурации в каталоге с доступными модами можно включить, создав символическую ссылку на каталог/ etc / apache2 / mods-enable
с помощью командыa2enconf
и отключив с помощью командыa2disconf
. - Файлы, содержащие фрагменты глобальной конфигурации, хранятся в каталоге
/ etc / apache2 / conf-available
. Файлы в каталогес conf-available
можно включить, создав символическую ссылку на/ etc / apache2 / conf-enabled
с помощью командыa2enconf
и отключив с помощью командыa2disconf
. - Файлы журнала Apache (
access.log
иerror.log
) находятся в каталоге/ var / log / apache
.Рекомендуется использовать разные файлы журналаaccess
иerror
для каждого виртуального хоста. - Вы можете установить корневой каталог документов домена в любое место. Наиболее распространенные местоположения для корневого каталога:
-
/ home /
/ -
/ var / www /
-
/ var / www / html /
-
/ opt /
-
Заключение №
Для установки Apache в Debian достаточно выполнить одну команду.
Теперь вы можете начать развертывание своих приложений и использовать Apache в качестве веб-сервера или прокси-сервера.
Если у вас есть вопросы или отзывы, не стесняйтесь оставлять комментарии.
Как установить и настроить веб-сервер Apache в Debian 10
Сервер Apache — один из самых популярных веб-серверов с открытым исходным кодом, который разработан и поддерживается Apache Software Foundation. Apache на сегодняшний день является наиболее часто используемым приложением веб-сервера в операционных системах Linux, но его можно использовать практически на всех платформах ОС Windows, MAC OS, OS / 2 и т. Д.Это позволяет разработчикам публиковать свой контент через Интернет.
В этой статье мы объясним, как установить и настроить веб-сервер Apache в ОС Debian 10.
Выполните следующие действия, чтобы установить Apache2 в вашей системе с помощью официальных репозиториев Ubuntu.
Шаг 1. Обновление системных репозиториев
Во-первых, нам нужно будет обновить репозитории пакетов в нашей ОС. Для этого выполните следующую команду в Терминале от имени sudo:
$ sudo apt update
При запросе пароля введите пароль sudo.
Шаг 2: Установите Apache 2 с помощью команды apt
Затем на этом шаге установите веб-сервер Apache2, используя следующую команду:
$ sudo apt install apache2
Вам будет предоставлен Y / n , чтобы продолжить установку. Нажмите y , чтобы продолжить.
Шаг 3. Проверка установки Apache
После завершения установки вы можете просмотреть установленную версию Apache, выполнив следующую команду в Терминале.Таким образом вы также можете убедиться, что Apache успешно установлен в вашей системе.
$ apache2 -version
Если в вашей системе работает брандмауэр, вам необходимо разрешить определенные веб-порты, чтобы внешние пользователи могли получить к ним доступ. Для этого выполните в Терминале следующие команды:
$ sudo ufw allow 80 / tcp $ sudo ufw allow 443 / tcp
Затем выполните следующую команду, чтобы проверить, разрешены ли порты.
$ sudo ufw status
Шаг 1. Убедитесь, что служба Apache работает.
После установки веб-служба Apache запускается автоматически.Однако, чтобы убедиться, выполните следующую команду в Терминале:
$ sudo systemctl status apache2
Шаг 2: Проверьте веб-сервер Apache
Вы можете проверить, нормально ли работает веб-сервер Apache, запросив веб-страницу из сети Apache. сервер.
Выполните следующую команду в Терминале, чтобы узнать IP-адрес вашего сервера.
$ hostname -I
После того, как вы найдете IP-адрес, введите http: // , а затем IP-адрес вашего веб-сервера, как показано ниже:
http: // server_IP
Введя указанный выше IP-адрес, вы увидите следующую страницу Apache по умолчанию.
Виртуальные хосты в Apache позволяют запускать несколько веб-сайтов на одном сервере. Мы настроим здесь виртуальный хост на веб-сервере Apache. Для этого мы сначала создадим веб-сайт с именем testdomain.info , используя серверный блок, который по умолчанию доступен в Apache.
Шаг 1: Настройте доменное имя
Сначала мы создадим каталог по адресу / var / www для нашего виртуального хоста testdomain.info . Для этого мы будем использовать следующую команду:
(Примечание : Заменить testdomain.info с вашим собственным доменным именем.)
$ sudo mkdir -p /var/www/testdomain.info/html
Теперь измените владельца и разрешения, используя следующие команды:
$ sudo chown -R $ USER: $ ПОЛЬЗОВАТЕЛЬ /var/www/testdomain.info / html
$ sudo chmod -R 755 /var/www/testdomain.info
Теперь мы создадим образец страницы индекса для тестирования нашего сайта testdomain.info. Для этого мы создадим HTML-файл с помощью редактора nano следующим образом:
$ nano / var / www / testdomain.info / html / index.html
Добавьте следующие строки для страницы индекса:
Добро пожаловать на страницу testdomain.info! Тебе повезло! Ваш сервер testdomain.info заблокирован!
По завершении нажмите Ctrl + O для сохранения, а затем Ctrl + X для выхода из файла.
Теперь мы создадим файл виртуального хоста, который будет обслуживать содержимое вашего сервера, используя следующую команду:
$ sudo nano / etc / apache2 / sites-available / testdomain.info.conf
Теперь добавьте следующие детали конфигурации для вашего доменного имени:
ServerAdmin [адрес электронной почты защищен] ServerName testdomain.info ServerAlias www.testdomain.info DocumentRoot /var/www/testdomain.info/html ErrorLog $ {APACHE_LOG_DIR} /error.log CustomLog $ {APACHE_LOG_DIR} /access.log объединены
После этого нажмите Ctrl + O, чтобы сохранить, а затем Ctrl + X, чтобы выйти из файла.
Шаг 2: Включите файл конфигурации домена
Теперь включите файл виртуального хоста, используя следующую команду:
$ sudo a2ensite testdomain.info.conf
Теперь давайте отключим конфигурации Apache по умолчанию с помощью следующей команды:
$ sudo a2dissite 000-default.conf
Чтобы применить изменения, перезапустите службу Apache2 с помощью следующей команды:
$ sudo systemctl restart apache2
Шаг 3: Проверка на наличие ошибок
Теперь проверьте конфигурацию на наличие синтаксических ошибок:
$ sudo apache2ctl configtest
Если ошибки нет, вы получите следующий результат.
В некоторых случаях может появиться следующая ошибка:
Чтобы устранить эту ошибку, отредактируйте файл servername.conf , выполнив следующую команду:
$ sudo nano / etc / apache2 / conf- available / servername.conf
Добавьте в него следующую строку:
ServerName testdomain.info
После этого нажмите Ctrl + O для сохранения, а затем Ctrl + X для выхода из файла.
После этого выполните следующую команду:
$ sudo a2enconf servername
Теперь перезагрузите Apache2:
$ systemctl reload apache2
После этого снова запустите следующую команду для проверки файла конфигурации:
$ sudo apache2ctl configtest
Теперь вы увидите, что ошибка была удалена.
Шаг 4. Проверьте, обслуживает ли Apache ваше доменное имя.
Теперь откройте браузер и перейдите по адресу:
http://testdomain.info
Замените testdomain.info своим собственным доменным именем.
На следующей странице указателя показано, что теперь вы можете получить доступ ко всем своим веб-сайтам.
Вот некоторые из наиболее распространенных команд, которые можно использовать для управления службами Apache:
Используйте следующую команду для запуска сервера Apache:
$ sudo systemctl start apache2
Используйте следующую команду, чтобы остановить Apache server:
$ sudo systemctl stop apache2
Используйте следующую команду для перезапуска сервера Apache:
$ sudo systemctl restart apache2
Используйте следующую команду для перезагрузки сервера Apache:
$ sudo systemctl reload apache2
Используйте следующая команда, чтобы всегда запускать службу при загрузке:
$ sudo systemctl enable apache2
Используйте следующую команду для отключения сервера Apache:
$ sudo systemctl disable apache2
В этой статье мы узнали, как установить и настроить веб-сервер Apache в ОС Debian.Мы выполнили некоторые базовые настройки, которые включают изменения в брандмауэре, настройку виртуального хоста и способы управления службами Apache с помощью некоторых команд. Я надеюсь, что он дал вам базовый обзор того, как использовать Apache для правильного размещения веб-сайтов.
Как установить Apache с виртуальными хостами в Debian 10
Apache , обычно называемый HTTP-сервером Apache , представляет собой бесплатный кроссплатформенный веб-сервер с открытым исходным кодом, поддерживаемый Apache Foundation .Это ведущий веб-сервер, занимающий 35%, рыночную долю в Интернете, на втором месте — Nginx и 24% .
Apache отличается высокой надежностью, гибкостью, простотой установки и содержит множество функций, которые делают его популярным среди разработчиков и энтузиастов Linux. Кроме того, он регулярно поддерживается и обновляется Apache Foundation, что помогает исправлять ошибки программного обеспечения и повышать его общую эффективность. На момент написания этой статьи последняя версия Apache — 2.4,39 .
Прочтите также : установка Nginx с серверными блоками (виртуальными хостами) в Debian 10
В этом руководстве мы расскажем, как установить веб-сервер Apache на Debian 10 .
Предварительные требования
Прежде чем мы начнем, убедитесь, что выполняются следующие требования:
- Экземпляр Debian 10.
- Полное доменное имя ( FQDN ), указывающее на сервер.
- В этом руководстве мы используем домен
tecmint.com
, указывающий на систему Debian 10 с IP-адресом 192.168.0.104 . - Хорошее подключение к Интернету.
Завершив предполетную проверку, приступим.
Шаг 1. Обновите системный репозиторий Debian 10
Первым шагом при установке Apache на Debian 10 является обновление системных репозиториев. Для этого войдите в систему как обычный пользователь и, используя привилегии sudo, запустите команду.
$ sudo apt update -y
Обновление репозитория Debian 10
Шаг 2. Установите Apache на Debian 10
Установить Apache несложно и довольно просто. После успешного обновления системных репозиториев выполните приведенную ниже команду, чтобы установить Apache на Debian 10 .
$ sudo apt install apache2 -y
Установите Apache в Debian 10
Шаг 3. Проверка статуса веб-сервера Apache
После успешной установки веб-сервера Apache всегда рекомендуется проверять, запущена ли служба.Большинство систем systemd Linux запускают службу автоматически после установки.
Чтобы проверить состояние веб-сервера Apache , выполните команду.
$ sudo systemctl status apache2
Проверьте статус Apache
. Если служба не запущена, запустите ее с помощью команды.
$ sudo systemctl start apache2
Чтобы включить сервер Apache Web при загрузке, выполните команду.
$ sudo systemctl включить apache2
Для перезапуска Apache запустите.
$ sudo systemctl перезапустить apache2
Шаг 4. Настройте брандмауэр, чтобы разрешить HTTP-порт
Если брандмауэр UFW уже настроен, нам необходимо разрешить службе Apache через брандмауэр, чтобы внешние пользователи могли иметь доступ к веб-серверу.
Для этого нам нужно разрешить трафик на порт 80 на брандмауэре.
$ sudo ufw разрешить 80 / tcp
Чтобы проверить, разрешен ли порт на брандмауэре, запустите.
$ sudo ufw статус
Откройте порт 80 на брандмауэре UFW Firewall
. Кроме того, вы можете использовать команду netstat для проверки порта, как показано.
$ sudo netstat -pnltu
Проверьте порт прослушивания Apache
Шаг 5. Проверьте веб-сервер Apache HTTP
Со всеми настройками откройте свой любимый веб-браузер и просмотрите IP-адрес или полное доменное имя вашего сервера, как показано.
http: // IP-адрес сервера ИЛИ ЖЕ http: // имя-домена-сервера
Проверьте веб-страницу Apache
Шаг 6. Настройка веб-сервера Apache
Когда веб-сервер Apache уже настроен, самое время разместить образец веб-сайта.
Файл веб-страницы Apache по умолчанию index.html
находится в / var / www / html /
, который является каталогом webroot . Вы можете разместить один сайт или создать файлы виртуального хоста для размещения нескольких сайтов.
Чтобы разместить один сайт, вы можете изменить файл index.html
, расположенный в каталоге webroot .
Но сначала сделайте резервную копию файла, как показано.
$ sudo mv /var/www/html/index.html / var / www / html / index.html.bak
Теперь создадим новый файл index.html
.
$ судо нано /var/www/html/index.html
Давайте добавим образец содержимого HTML, как показано.
Добро пожаловать в crazytechgeek Привет, выродки! Веб-сервер Apache запущен и работает
Выйдите из текстового редактора и перезапустите веб-сервер.
$ sudo systemctl перезапустить apache2
Теперь перезагрузите ваш веб-браузер и обратите внимание на изменения на вашем новом сайте.
Проверьте веб-сайт Apache
Шаг 7. Создание виртуальных хостов на Apache
Если вы хотите, чтобы на вашем веб-сервере размещалось несколько сайтов, лучший способ обойти это — создать виртуальные хосты на веб-сервере Apache. Виртуальные хосты пригодятся, если вы хотите разместить несколько доменов на одном сервере
Во-первых, нам нужно создать каталог webroot для домена tecmint.com
.
$ sudo mkdir -p /var/www/html/tecmint.com/
Затем мы назначим необходимые разрешения для каталога с помощью переменной $ USER
.
$ sudo chown -R $ ПОЛЬЗОВАТЕЛЬ: $ ПОЛЬЗОВАТЕЛЬ /var/www/html/tecmint.com/
Затем назначьте необходимые разрешения корневому веб-каталогу для домена.
$ sudo chmod -R 755 /var/www/html/tecmint.com
Теперь, используя ваш любимый текстовый редактор, перейдите и создайте образец индекса .html
файл.
$ судо нано /var/www/html/tecmint.com/index.html
Давайте добавим образец содержимого HTML, как показано.
Добро пожаловать на TecMint.com Привет, выродки!
Сохраните и выйдите из текстового редактора.
Теперь создайте файл виртуального хоста для домена, используя команду, показанную ниже.
$ судо нано /etc/apache2/sites-available/tecmint.com.conf
Теперь скопируйте и вставьте содержимое ниже и замените домен tecmint.com
своим собственным доменом.
ServerAdmin [адрес электронной почты защищен] Имя сервера tecmint.com ServerAlias www.tecmint.com DocumentRoot /var/www/html/tecmint.com/ ErrorLog $ {APACHE_LOG_DIR} /error.log CustomLog $ {APACHE_LOG_DIR} /access.log объединены
Сохраните и выйдите.
На этом этапе активируйте файл виртуального хоста, как показано.
$ sudo a2ensite tecmint.com.conf
Теперь отключим сайт по умолчанию
$ sudo a2dissite 000-default.conf
Чтобы изменения вступили в силу, перезагрузите веб-сервер apache.
$ sudo systemctl перезапустить apache2
Теперь перезагрузите ваш веб-сервер и обратите внимание на изменения для вашего домена.
Проверка виртуального хоста на Apache
Если вы хотите включить HTTPS на своем веб-сайте, прочтите эту статью: Как установить бесплатный сертификат SSL для Apache в Debian 10.
Заключение
Мы подошли к концу урока. В этом руководстве вы узнали, как установить Apache на Debian 10 , а также настроить виртуальные хосты для размещения других доменов. Пожалуйста, поделитесь с нами своим мнением.
Если вы цените то, что мы делаем здесь, на TecMint, вам следует принять во внимание:
TecMint — это самый быстрорастущий и пользующийся наибольшим доверием сайт сообщества, где можно найти любые статьи, руководства и книги по Linux в Интернете. Миллионы людей посещают TecMint! для поиска или просмотра тысяч опубликованных статей доступны БЕСПЛАТНО для всех.
Если вам нравится то, что вы читаете, пожалуйста, купите нам кофе (или 2) в знак признательности.
Мы благодарны за вашу бесконечную поддержку.
Как настроить веб-сервер (LAMP) в Debian 9 (stretch) — Учебники Debian
Аббревиатура LAMP относится к комбинации программного стека ОС Linux с веб-сервером Apache, сервером базы данных MySql и поддержкой PHP.
Совместимость
Это руководство было протестировано на следующих дистрибутивах Linux:
Debian Linux 9 (сжатие)
Последнее обновление:
7 апреля 2018 г.
В этом руководстве мы установим Debian Linux 9 (сжатие), Apache 2 с mpm-itk (для запуска каждого веб-сайта как изолированного пользователя), поддержку PHP 7 и MySql 5.7 сервер базы данных. Кроме того, в руководстве рассматривается установка сервера vsftp для предоставления службы FTP, настройка letsencrypt и запрос бесплатного сертификата, установка phpMyAdmin и настройка брандмауэра iptables для защиты сервера и разрешения только необходимых портов. После того, как вы изучите руководство, у вас будет полнофункциональный и безопасный веб-сервер, готовый для размещения ваших веб-сайтов.
1. Обновите свою систему
Прежде чем двигаться дальше, давайте обновим все пакеты до последних версий.
apt-get update && apt-get upgrade
2. Установите сервер базы данных MySql 5.7
По умолчанию MySql 5.5 включен в стандартные репозитории Debian, это очень старая версия. В этом руководстве мы установим MySql 5.7, для чего потребуется несколько дополнительных шагов.
2.1. Загрузите инструмент настройки репозитория MySQL APT (более подробную информацию и последнюю версию инструмента вы можете увидеть здесь: http://dev.mysql.com/downloads/repo/apt/)
wget https: // dev.mysql.com/get/mysql-apt-config_0.8.9-1_all.deb
2.2. Установите инструмент конфигурации репозитория MySQL APT
dpkg -i mysql-apt-config_0.8.9-1_all.deb
Вам будет предложено выбрать продукт и версию, которые вы хотите установить. На первом шаге выберите Server , а затем выберите mysql-5.7 . Затем нажмите Применить.
2.3. Обновить APT
обновление apt-get
2.4. Устанавливаем сервер
apt-get install mysql-community-server
После установки сервера вам нужно будет ввести пароль для пользователя root.Выберите здесь любой пароль, но убедитесь, что это надежный пароль, который вы помните.
3. Установите и настройте веб-сервер Apache с поддержкой mpm-itk и PHP7
mpm-itk идеален при размещении нескольких веб-сайтов на одном сервере для их изоляции. Используя mpm-itk, вы можете убедиться, что один веб-сайт не может получить доступ к файлам с другого, если разрешения настроены правильно, подробнее об этом позже.
3.1. Устанавливаем пакеты
apt-get install apache2 libapache2-mpm-itk php php-mysql
3.2. Включить модули rewrite и ssl
Модуль перезаписи очень полезен для создания SEO-дружественных URL-адресов для вашего веб-сайта и необходим для многих фреймворков и веб-приложений. Модуль SSL необходим для защиты вашего веб-сайта с помощью SSL / TLS (чтобы использовать https: // вместо http: //).
a2enmod перезаписать
a2enmod ssl
3.3. Установить дополнительные модули PHP (необязательно)
Вам могут потребоваться дополнительные модули PHP для запуска ваших веб-приложений. Требуемые модули могут быть разными, но с помощью приведенной ниже команды вы можете установить некоторые часто используемые модули.
apt-get install php-curl php-gd php-mcrypt php-mbstring php-xml
3.4. Перезапустите Apache, чтобы включить модули и любые дополнительные модули PHP, установленные
systemctl перезапустить apache2
3.5. Удалите индексный сайт по умолчанию, поставляемый с Apache (необязательно)
Если вы сейчас подключитесь к своему серверу с помощью http: // yourserver, вы увидите страницу индекса по умолчанию с некоторыми сведениями о вашем сервере. Вероятно, вы не хотите слишком много рассказывать людям о сервере, поэтому я предлагаю заменить этот файл чем-то другим.Слишком мало деталей, давайте просто очистим файл.
echo ""> /var/www/html/index.html
4. Создание сети (пользователя, корневого веб-узла и виртуального хоста apache)
Для каждого веб-сайта, который вы хотите разместить на этом сервере, вы должны создать отдельного локального пользователя и изолировать веб-сайты. Mpm-itk будет следить за тем, чтобы каждое действие выполнялось с использованием пользователя, которого вы указали на виртуальном хосте apache.
4.1. Создайте локального пользователя
В этом руководстве мы будем использовать пример домена .org , но вам, конечно же, следует заменить домен на тот, который вы собираетесь использовать. Имя пользователя, содержащее корневой веб-сайт, может быть любым, и оно не обязательно должно быть связано с веб-доменом, но мы будем использовать здесь , пример в качестве имени пользователя.
пример аддуктора
Эта команда создаст пользователя с именем пользователя example и создаст домашний каталог для этого пользователя в / home / example . Вам нужно будет указать пароль, и вы можете предоставить дополнительную информацию о пользователе.
4.2. Создайте корневой веб-каталог
Корневой веб-сайт — это каталог, в котором хранится ваш веб-сайт. Каталог может быть расположен где угодно, но вам просто нужно убедиться, что у пользователя есть доступ для чтения из него. В этом руководстве корневой веб-сайт будет расположен в /home/example/example.org.
Используя команду chown, мы изменим владельца нового каталога, чтобы у пользователя (и группы в примере) был к нему доступ.
mkdir / home / example / example.org
chown example.example /home/example/example.org
4.3. Создать сайт Apache
С помощью этой команды мы сообщаем Apache отвечать на запросы к хостам example.org и www.example.org и использовать наш корневой каталог для этих хостов. Также здесь мы настроим локального пользователя, которого следует использовать.
echo "
ServerName example.org
ServerAlias www.example.org
DocumentRoot /home/example/example.org
AssignUserId example example
Параметры - Индексы
AllowOverride Все
Требовать все предоставлено
"> /etc/apache2/sites-available/example.org.conf
4.4. Включите сайт Apache
Мы разместили конфигурацию сайта в каталоге sites-available. Это может быть полезно, чтобы иметь возможность легко включать и отключать сайты с помощью команд a2ensite и a2dissite. Чтобы включить сайт, нам нужно будет выполнить следующую команду:
Пример a2ensite.орг
4.5. Перезагрузите конфигурацию Apache
Чтобы указать Apache использовать наш новый сайт, перезагрузите config.
systemctl перезагрузить apache2
Теперь, если вы перейдете на http://example.org (или в домен, указывающий на IP-адрес вашего сервера), вы увидите ошибку 403 Forbidden, если вы еще не разместили файлы в корневом веб-каталоге. Это нормально, потому что в конфигурации сайта мы отключили индексацию каталогов.
5. Защитите свой сайт с помощью Letsencrypt (необязательно)
Let’s Encrypt — это центр сертификации, который предоставляет бесплатные сертификаты SSL / TLS, которые мгновенно проверяются и подписываются и могут использоваться для защиты вашего веб-сайта.Сертификаты действительны в течение 90 дней, но вы можете легко настроить задачу для автоматического обновления.
5.1. Установите certbot, который используется для обработки запроса и обновления сертификата.
apt-get install python-certbot-apache
5.2. Настройте Apache, чтобы разрешить проверку http
Поскольку мы используем mpm-itk certbot, он не будет работать по умолчанию, поскольку файлы подтверждения создаются с использованием пользователя root и недоступны с вашего веб-сайта.Чтобы обойти эту проблему, мы добавим новый модуль Apache, чтобы заставить Apache использовать другого пользователя для чтения этих файлов.
echo "Псевдоним /.well-known/acme-challenge /var/www/html/.well-known/acme-challenge
AssignUserId www-data www -data
Перезапустите Apache
systemctl перезапустить apache2
5.3 Запустите certbot, чтобы выбрать, какие сайты следует защитить, и автоматически запросите и установите сертификат.
certbot - authenticator webroot - установщик apache
Вам необходимо выполнить несколько шагов, чтобы завершить запрос и установку сертификата:
Шаг 1: Введите разделенный запятыми список чисел, представляющих имена хостов, которые должны быть защищены. Если у вас настроен только один сайт Apache, вы можете ввести 1,2 здесь.
Шаг 2: Укажите адрес электронной почты, используемый для срочных уведомлений о продлении и безопасности. Введите здесь действующий адрес электронной почты, который вы часто отслеживаете.
Шаг 3. Примите условия использования.
Шаг 4. Обеспечьте корневой веб-сайт. Введите 1 и введите заранее настроенный известный корень: / var / www / html. Затем вам нужно будет подтвердить этот каталог для каждого дополнительного имени хоста, которое будет включено в сертификат.
Шаг 5: Certbot автоматически создаст веб-сайт Apache с вашим новым сертификатом SSL / TLS. На этом шаге вы можете выбрать, разрешены ли и http, и https, или HTTP-запросы должны перенаправляться на https.Выберите предпочтительный метод.
Теперь вы можете получить доступ к своему сайту, используя https, например. https://example.org
5.4 Настроить автоматическое продление сертификатов letsencrypt
crontab -e
43 6 * * * certbot Renew --post-hook "systemctl reload apache2"
6. Установите phpMyAdmin (необязательно)
phpMyAdmin — это инструмент, написанный на PHP, предназначенный для администрирования MySQL через Интернет.
6.1. Установите phpMyAdmin
apt-get install phpmyadmin
Для настройки phpMyAdmin необходимо выполнить несколько шагов:
Шаг 1. Вас спросят, какой веб-сервер следует настроить.Проверьте apache2 и продолжайте.
Шаг 2: Настройте базу данных для phpmyadmin. Выберите «Да».
Шаг 3. Установите пароль для пользователя phpmyadmin. Это используется только phpmyadmin, поэтому вы можете позволить инструменту создать случайный пароль.
Шаг 4: Вам необходимо указать пароль root, выбранный при установке сервера MySql.
phpMyAdmin теперь установлен, и вы можете получить к нему доступ по https://example.org/phpmyadmin (если вы уже создали сертификат letsencrypt) или http: // example.org / phpmyadmin (если вы пропустили шаг letsencrypt).
6.2. IP Ограничить доступ к phpMyAdmin (необязательно)
phpMyAdmin — отличный инструмент для управления MySql, но вы не должны позволять никому получать доступ к инструменту, так как это упростит доступ к вашим базам данных. Хотя требуется пароль, для получения доступа можно использовать метод грубой силы или уязвимости в phpMyAdmin.
Позвольте разрешить доступ к phpMyAdmin только определенным IP-адресам.
Откройте / etc / apache2 / conf-available / phpmyadmin.conf в вашем любимом текстовом редакторе (например, nano /etc/apache2/conf-available/phpmyadmin.conf)
Добавьте эти строки под DirectoryIndex index.php (7. строка):
заказ отклонить, разрешить
отклонить со всех
разрешить с x.your.ip.address
Перезапустите Apache
systemctl перезапустить apache2
7. Установите и настройте службу FTP
vsftpd — это безопасный, быстрый и стабильный FTP-сервер. В этом руководстве мы установим vsftpd, позволяющий локальным пользователям получать доступ к своим домашним каталогам.
7.1. Установить vsftpd
apt-get install vsftpd
7.2. Разрешите пользователям загружать файлы вместо того, чтобы просто читать файлы, и включите chroot, чтобы пользователи не могли читать файлы за пределами своих домашних каталогов.
echo "write_enable = YES
chroot_local_user = YES" >> /etc/vsftpd.conf
7.3. Перезагрузите vsftpd
/etc/init.d/vsftpd перезапуск
7.4. Измените права доступа к домашнему каталогу пользователя
Когда chroot включен, мы должны удалить доступ на запись в домашний каталог, что означает, что пользователь не может загружать новые файлы непосредственно в домашний каталог.Однако пользователь может загружать файлы во вложенные папки в домашнем каталоге, включая корневой веб-каталог (например, /home/example/example.org).
chmod u-w / home / пример
vsftpd установлен, и вы можете подключиться к серверу с помощью любого FTP-клиента.
8. Настройте брандмауэр iptables
Обычно рекомендуется запретить доступ к любым портам, которые не должны быть доступны анонимным пользователям. Даже если все сервисы защищены паролем, их можно взломать с помощью грубой силы или уязвимостей в приложениях.
Мы будем использовать брандмауэр iptables и разрешить только http, https, ssh и ftp для анонимных пользователей.
8.1. Включите ip_conntrack_ftp, чтобы разрешить пассивные FTP-соединения
echo "ip_conntrack_ftp" >> / etc / modules
echo "net.netfilter.nf_conntrack_helper = 1" >> /etc/sysctl.conf
Чтобы запустить пассивный FTP, необходимо перезапустить сервер
8.2. Разрешить ICMP, установленные и локальные соединения
iptables -A INPUT -p icmp -j ACCEPT
iptables -A INPUT -j ACCEPT -m state --state ESTABLISHED, RELATED
iptables -A FORWARD -j ACCEPT -m state --state ESTABLISHED, RELATED-
iptables ВВОД -i lo -j ПРИНЯТЬ
iptables -A FORWARD -o lo -j ПРИНЯТЬ
8.3. Разрешить всем пользователям подключаться к веб-службам (http и https), ssh и ftp
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 21 -m conntrack --ctstate NEW, ESTABLISHED -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 20 -m conntrack --ctstate ESTABLISHED -j ACCEPT
iptables -A ВХОД -p tcp -m tcp --sport 1024: --dport 1024: -m conntrack --ctstate УСТАНОВЛЕННЫЙ, СВЯЗАННЫЙ -j ПРИНЯТЬ
Рассмотрите возможность ограничения доступа к ssh и ftp только для требуемых IP-адресов с помощью параметра -s (например,-с 8.8.8.8)
8.4. Разрешить все исходящие соединения с сервера.
iptables -P ПРИНЯТЬ ВЫВОД
8,5. Отбросьте все входящие подключения, которые не соответствуют ранее созданным правилам. Убедитесь, что вы уже разрешили своему IP-адресу (или всем IP-адресам) подключаться к SSH, потому что в противном случае ваше соединение будет прервано, и ваш сервер будет заблокирован.
iptables -P INPUT DROP
iptables -P FORWARD DROP
8.6. Теперь мы настроили все необходимые правила iptables, но они временные и будут потеряны при следующей перезагрузке. Для постоянного хранения правил нам нужно установить пакет iptables-persistent и сохранить правила.
apt-get install iptables-persistent
iptables-save> /etc/iptables/rules.v4
Вот и все! Теперь у вас должен быть полнофункциональный веб-сервер LAMP с сертификатом SSL / TLS, FTP-сервер и программный брандмауэр.
Как установить веб-сервер Apache на Debian 10
Веб-сервер Apache HTTP (Apache) — это веб-приложение с открытым исходным кодом для развертывания веб-серверов.В этом руководстве объясняется, как установить и настроить веб-сервер Apache в Debian 10.
Если вместо этого вы хотите установить полный стек LAMP (Linux, Apache, MySQL и PHP), см.
Руководство по установке стека LAMP в Debian 10.
Примечание Это руководство написано для пользователя без полномочий root. Команды, требующие повышенных прав, имеют префикс
sudo
. Если вы не знакомы с командойsudo
, вы можете проверить наши
Руководство по пользователям и группам.
Перед началом работы
Настройте линод в
Начало работы и
Обеспечение безопасности вашего сервера.Если вам нужно собственное доменное имя для своего сайта, вы можете настроить его, используя нашу
Руководство по DNS Manager.Примечание
Это руководство написано для пользователя без полномочий root. Команды, требующие повышенных прав, имеют префикс
sudo
. Если вы не знакомы с командойsudo
, посетите наш
Руководство по пользователям и группам.Все файлы конфигурации следует редактировать с повышенными привилегиями. Не забудьте включить
sudo
перед запуском текстового редактора.
Установить Apache
Установить Apache 2.4:
sudo apt-get install apache2
Многопроцессорные модули
Apache 2.4 предлагает несколько многопроцессорных модулей (MPM) для обработки соединений. В Debian 10 MPM по умолчанию — это модуль событий , хотя модуль предварительной вилки по-прежнему рекомендуется, если вы используете стандартный PHP.Ниже приведены основные настройки по умолчанию. Подробные объяснения и расширенные настройки для этих модулей см. В
Руководство по настройке сервера Apache.
Вы можете проверить, какой MPM настроен в настоящее время, с помощью следующей команды:
sudo apachectl -V | grep -i mpm
Сервер MPM: событие
Модуль Prefork
Модуль Prefork идеально подходит для однопоточных приложений. Это единственный родитель с несколькими разветвленными дочерними серверами, которые представляют собой идентичные процессы, ожидающие входящих запросов.Каждый дочерний процесс обрабатывает один запрос. Модуль Prefork требует значительных ресурсов, но необходим для приложений, не поддерживающих многопоточность, таких как PHP.
Откройте
/etc/apache2/mods-available/mpm_prefork.conf
в текстовом редакторе и при необходимости отредактируйте значения. Ниже приведены значения по умолчанию:- Файл: /etc/apache2/mods-available/mpm_prefork.conf
# prefork MPM # StartServers: количество запускаемых серверных процессов # MinSpareServers: минимальное количество серверных процессов, которые остаются резервными # MaxSpareServers: максимальное количество серверных процессов, которые остаются резервными # MaxRequestWorkers: максимальное количество серверных процессов, разрешенных для запуска # MaxConnectionsPerChild: максимальное количество запросов, обслуживаемых серверным процессом
StartServers 5 MinSpareServers 5 MaxSpareServers 10 MaxRequestWorkers 150 MaxConnectionsPerChild 0 # vim: syntax = apache ts = 4 sw = 4 sts = 4 sr noet
В Debian 10 модуль событий включен по умолчанию.Отключите его и включите модуль предварительной вилки :
sudo a2dismod mpm_event sudo a2enmod mpm_prefork
Перезапустить Apache:
sudo service apache2 restart
Рабочий модуль
Рабочий модуль — это гибридный многопоточный многопроцессорный модуль Prefork. Он похож на модуль Prefork, но каждый дочерний элемент является многопоточным.
Откройте
/ etc / apache2 / mods-available / mpm_worker.conf
в текстовом редакторе и при необходимости отредактируйте значения. Ниже приведены значения по умолчанию:- Файл: /etc/apache2/mods-available/mpm_worker.conf
StartServers 2 MinSpareThreads 25 MaxSpareThreads 75 ThreadLimit 64 Темы для ребенка 25 MaxRequestWorkers 150 MaxConnectionsPerChild 0 # vim: syntax = apache ts = 4 sw = 4 sts = 4 sr noet
В Debian 10 модуль событий включен по умолчанию.Отключите его и включите рабочий модуль :
sudo a2dismod mpm_event sudo a2enmod mpm_worker
Перезапустить Apache:
sudo service apache2 restart
Модуль событий
Модуль событий аналогичен рабочему модулю, за исключением того, что у каждого потока есть выделенный прослушиватель, поэтому потоки не блокируются в ожидании. Начиная с Apache 2.4, модуль событий считается стабильным для версий до 2.4 используйте
Рабочий модуль.
Если вы решите оставить модуль событий включенным, откройте
/etc/apache2/mods-available/mpm_event.conf
в текстовом редакторе и отредактируйте значения по мере необходимости. Ниже приведены значения по умолчанию:- Файл: /etc/apache2/mods-available/mpm_event.conf
# event MPM # StartServers: начальное количество серверных процессов для запуска # MinSpareThreads: минимальное количество рабочих потоков, которые остаются резервными # MaxSpareThreads: максимальное количество рабочих потоков, которые остаются резервными # ThreadsPerChild: постоянное количество рабочих потоков в каждом серверном процессе # MaxRequestWorkers: максимальное количество рабочих потоков # MaxConnectionsPerChild: максимальное количество запросов, обслуживаемых серверным процессом
StartServers 2 MinSpareThreads 25 MaxSpareThreads 75 ThreadLimit 64 Темы для ребенка 25 MaxRequestWorkers 150 MaxConnectionsPerChild 0 # vim: syntax = apache ts = 4 sw = 4 sts = 4 sr noet
Перезапустить Apache:
sudo service apache2 restart
Настройка виртуального хостинга
Apache поддерживает виртуальный хостинг на основе имен , что позволяет размещать несколько доменов на одном сервере с одним IP.Несмотря на то, что существуют разные способы настройки виртуальных хостов, рекомендуется использовать приведенный ниже метод.
Отключить виртуальный хост Apache по умолчанию:
sudo a2dissite 000-default.conf
Создайте файл
example.com.conf
в/ etc / apache2 / sites-available
с помощью текстового редактора, заменив экземплярыexample.com
на URL вашего собственного домена как в файле конфигурации, так и в в имени файла:- Файл: / etc / apache2 / sites-available / example.com.conf
1 2 3 4 5 6 7 8
ServerAdmin [адрес электронной почты защищен] ServerName example.com ServerAlias www.example.com DocumentRoot /var/www/example.com/public_html/ ErrorLog /var/www/example.com/logs/error.log CustomLog /var/www/example.com/logs/access.log в сочетании
Повторите этот процесс для любых других доменов, которые вы размещаете.
Примечание
Если вы хотите включить поддержку Perl, добавьте следующие строки над закрывающим тегом
- Файл: /etc/apache2/sites-available/example.com.conf
1 2
Опции ExecCGI AddHandler cgi-script .pl
Создайте каталоги для ваших веб-сайтов и журналы веб-сайтов, заменив
пример.com
с информацией о вашем собственном домене:sudo mkdir -p /var/www/example.com/public_html sudo mkdir /var/www/example.com/logs
Создайте простую страницу для своего
index.html
.- Файл: /var/www/example.com/public_html/index.html
1 2 3 4 5 6 7 8 9
Привет, мир Привет, мир! Это мой образец веб-сайта с Apache на Debian!
Включить сайт:
sudo a2ensite example.com.conf
Перезапустить Apache:
sudo service apache2 restart
Посетите свой сайт, перейдя к своему доменному имени в веб-браузере.
Моды и сценарии Apache
Установка модулей Apache
Одной из сильных сторон Apache является его способность настраиваться с помощью модулей. Каталог установки по умолчанию для модулей Apache — это каталог / etc / apache2 / mods-available /
.
Список доступных модулей Apache:
sudo apt-cache search libapache2 *
Установите любые желаемые модули:
sudo apt-get install [имя-модуля]
Все моды находятся в каталоге
/ etc / apache2 / mods-avaiable
. При необходимости отредактируйте файл.conf
любого установленного модуля, затем включите модуль:sudo a2enmod [имя-модуля]
Чтобы отключить модуль, который в данный момент включен:
a2dismod [имя-модуля]
Необязательно: Установка поддержки сценариев
Следующие команды устанавливают поддержку Apache для серверных сценариев на Perl, Python и PHP.Поддержка этих языков не является обязательной в зависимости от среды вашего сервера.
Для установки:
Поддержка Perl:
sudo apt-get install libapache2-mod-perl2
Поддержка Python:
sudo apt-get install libapache2-mod-python
Поддержка PHP:
sudo apt-get install php7.2 php-pear
Проверить статус сервера
Вы можете проверить статус своего веб-сервера Apache с помощью следующей команды:
sudo systemctl status apache2
Результат будет примерно таким:
● apache2.service - HTTP-сервер Apache
Загружено: загружено (/lib/systemd/system/apache2.service; включено; предустановка поставщика: включено)
Активный: активен (работает) с понедельника 2020-03-02 18:41:24 UTC; 9с назад
Документы: https://httpd.apache.org/docs/2.4/
Основной PID: 1543 (apache2)
Задач: 55 (лимит: 1149)
Память: 12,8 МБ
CGroup: /system.slice/apache2.service
├─1543 / usr / sbin / apache2 -k start
├─1545 / usr / sbin / apache2 -k start
└─1546 / usr / sbin / apache2 -k start
Отсюда видно, что сервер работает успешно.Однако, если что-то не работает, вы можете проверить журналы на наличие ошибок. Расположение журналов определяется для каждого виртуального хоста, который вы настроили в
Настроить виртуальный хостинг.Обычно они находятся по адресу
/var/www/example.com/logs/error.log
и/var/www/example.com/logs/access.log
, гдеexample.com
— ваш доменное имя.
Управление Apache
Вы можете управлять сервером следующими способами.
Остановка сервера во время его работы:
sudo systemctl stop apache2
Запустить сервер, когда он остановлен:
sudo systemctl start apache2
Остановить и запустить сервер, когда он работает:
sudo systemctl restart apache2
Перезагрузите конфигурации, пока сервер работает, не останавливая его:
sudo systemctl reload apache2
Вы можете отключить Apache, чтобы он останавливался и не перезапускался снова при перезагрузке системы:
sudo systemctl disable apache2
Для повторного включения Apache, если он был отключен.Это также позволит перезапустить его при перезагрузке системы:
sudo systemctl enable apache2
Необязательно: Межсетевой экран
В зависимости от конфигурации межсетевого экрана вам может потребоваться изменить настройки, чтобы разрешить доступ к веб-портам. Популярным брандмауэром для Debian является
UFW.
Если у вас был установлен UFW до установки Apache, Apache будет зарегистрирован в UFW во время установки и предоставит несколько простых в использовании конфигураций.
Чтобы просмотреть эти параметры, выполните следующую команду:
sudo ufw app list
Доступные приложения: Apache Apache Full Apache Secure OpenSSH
Чтобы просмотреть, что делают эти различные конфигурации, выполните следующую команду:
sudo ufw app info 'Apache'
Замените
Apache
наApache Full
илиApache Secure
, чтобы просмотреть информацию об этих приложениях.Ниже приводится сводная таблица.Профиль Заголовок Порты Apache Веб-сервер 80 / tcp Apache Full 10 HTache Full 10 9209 tc, HTTP-сервер Apache Secure Веб-сервер (HTTPS) 443 / tcp Чтобы включить профиль, используйте следующую команду:
sudo ufw allow 'Apache'
Правила обновлены Правила обновлены (v6)
Убедитесь, что правила обновлены следующим образом:
sudo ufw status
Статус: активный К действию от - ----- ---- Apache РАЗРЕШИТЬ В любом месте Apache (v6) РАЗРЕШИТЬ В любом месте (v6)
.