- Установка веб-сервера Apache в Ubuntu 20.04
- Введение
- Предварительные требования
- Шаг 1 — Установка Apache
- Шаг 2 — Настройка брандмауэра
- Шаг 3 — Проверка веб-сервера
- Шаг 4 — Управление процессом Apache
- Шаг 5 — Настройка виртуальных хостов (рекомендуется)
- Шаг 6 — Знакомство с важными файлами и директориями Apache
- Контент
- Конфигурация сервера
- Журналы сервера
- Заключение
- Как установить Linux, Apache, MySQL, PHP (LAMP) в Ubuntu 16.04
- Введение
- Необходимые условия
- Шаг 1 — Установка Apache и настройка файрвола
- Настройка глобальной переменной ServerName
- Настройка файрвола
- Как найти публичный IP адрес вашего сервера
- Шаг 2 — Установка MySQL
- Шаг 3 — Установка PHP
- Установка модулей PHP
- Шаг 4 — Тестирование работы PHP на вашем веб-сервере
- Заключение
Установка веб-сервера Apache в Ubuntu 20.04
Published on May 19, 2020
Введение
HTTP-сервер Apache — самый широко используемый веб-сервер в мире. Он имеет множество мощных функций, включая динамически загружаемые модули, надежную поддержку различных медиаформатов и интеграцию с другим популярным программным обеспечением.
В этом обучающем руководстве мы расскажем, как установить веб-сервер Apache на сервере Ubuntu 20.04.
Предварительные требования
Прежде чем начать прохождение настоящего обучающего модуля, необходимо настроить на сервере обычного пользователя без прав root с привилегиями sudo. Также вам потребуется включить базовый брандмауэр, чтобы заблокировать все порты, кроме необходимых. Вы научитесь настраивать учетную запись обычного пользователя и брандмауэр для вашего сервера, следуя указаниям руководства Начальная настройка сервера Ubuntu 20.04.
Создав учетную запись, войдите в систему как пользователь без прав root.
Шаг 1 — Установка Apache
Apache доступен в репозиториях программного обеспечения Ubuntu по умолчанию, и поэтому его можно установить с помощью стандартных инструментов управления пакетами.
Для начала выгрузим указатель локальных пакетов, чтобы отразить последние изменения на предыдущих уровнях:
Затем установим пакет apache2 :
После подтверждения установки apt выполнит установку Apache и всех требуемых зависимостей.
Шаг 2 — Настройка брандмауэра
Прежде чем тестировать Apache, необходимо изменить настройки брандмауэра, чтобы разрешить доступ к веб-портам по умолчанию. Если вы выполнили предварительные указания , у вас должен быть установлен брандмауэр UFW, настроенный для ограничения доступа к вашему серверу.
Во время установки Apache регистрируется в UFW, предоставляя несколько профилей приложений, которые можно использовать для включения или отключения доступа к Apache через брандмауэр.
Выведите список профилей приложений ufw , введя следующую команду:
Вы увидите список профилей приложений:
Как показал вывод, есть три профиля, доступных для Apache:
- Apache: этот профиль открывает только порт 80 (нормальный веб-трафик без шифрования)
- Apache Full: этот профиль открывает порт 80 (нормальный веб-трафик без шифрования) и порт 443 (трафик с шифрованием TLS/SSL)
- Apache Secure: этот профиль открывает только порт 443 (трафик с шифрованием TLS/SSL)
Рекомендуется применять самый ограничивающий профиль, который будет разрешать заданный трафик. Поскольку в этом модуле мы еще не настроили SSL для нашего сервера, нам нужно будет только разрешить трафик на порту 80.
Для проверки изменений введите:
В выводе будет представлен список разрешенного трафика HTTP:
Как показал вывод, профиль был активирован для доступа к веб-серверу Apache.
Шаг 3 — Проверка веб-сервера
В конце процесса установки Ubuntu 20.04 запускает Apache. Веб-сервер уже должен быть запущен и работать.
Используйте команду инициализации systemd , чтобы проверить работу службы:
Вывод подтвердил, что служба успешно запущена. Однако лучше всего протестировать ее запуск посредством запроса страницы из Apache.
Откройте страницу Apache по умолчанию, чтобы подтвердить работу программного обеспечения через ваш IP-адрес: Если вы не знаете IP-адрес вашего сервера, есть несколько способов узнать его с помощью командной строки.
Попробуйте ввести в командной строке сервера следующую команду:
Вы получите несколько адресов, разделенных пробелами. Вы можете попробовать каждый из них в браузере, чтобы убедиться в их работоспособности.
Еще один вариант — использовать инструмент Icanhazip, который должен выдать вам ваш публичный IP-адрес, видимый в другом расположении в Интернете:
Когда вы узнаете IP-адрес вашего сервера, введите его в адресную строку браузера:
Вы увидите веб-страницу Ubuntu 20.04 Apache по умолчанию:
Эта страница показывает, что Apache работает корректно. Также на ней содержится информация о важных файлах Apache и расположении каталогов.
Шаг 4 — Управление процессом Apache
Теперь ваш веб-сервер запущен и работает, и настало время изучить некоторые простые команды управления, используя systemctl .
Чтобы остановить веб-сервер, введите:
Чтобы запустить остановленный веб-сервер, введите:
Чтобы остановить и снова запустить службу, введите:
Если вы просто вносите изменения в конфигурацию, во многих случаях Apache может перезагружаться без отключения соединений. Для этого нужно использовать следующую команду:
По умолчанию Apache настроен на автоматический запуск при загрузке сервера. Если вы не хотите этого, отключите такое поведение с помощью следующей команды:
Чтобы перезагрузить службу для запуска во время загрузки, введите:
Теперь Apache должен запуститься автоматически при следующей загрузке сервера.
Шаг 5 — Настройка виртуальных хостов (рекомендуется)
При использовании веб-сервера Apache вы можете использовать виртуальные хосты (аналогичные серверным блокам в Nginx) для инкапсуляции данных конфигурации и размещения на одном сервере нескольких доменов. Мы создадим домен your_domain, но вы должны заменить это имя собственным доменным именем. О том, как настроить доменное имя с помощью DigitalOcean, можно узнать из нашей сетевой документации.
В Apache в Ubuntu 20.04 по умолчанию включен один серверный блок, настроенный на обслуживание документов из директории /var/www/html . Хотя это хорошо работает для отдельного сайта, при хостинге нескольких сайтов это неудобно. Вместо изменения /var/www/html мы создадим в /var/www структуру директорий для нашего сайта your_domain, оставив /var/www/html как директорию по умолчанию для вывода в случае, если запросу клиента не соответствуют никакие другие сайты.
Создайте следующую директорию для your_domain:
Затем назначьте владение директорией с помощью переменной среды $USER :
Разрешения корневых директорий веб-сервера должны быть правильными, если вы не изменяли значение umask, которое устанавливает разрешения файла по умолчанию. Чтобы убедиться, что разрешения корректны, позволить владельцу читать, писать и запускать файлы, а группам и другим пользователям разрешить только читать и запускать файлы, вы можете ввести следующую команду:
Затем создайте в качестве примера страницу index.html , используя nano или свой любимый редактор:
Добавьте в страницу следующий образец кода HTML:
Сохраните файл и закройте его после завершения.
Для обслуживания этого контента Apache необходимо создать файл виртуального хоста с правильными директивами. Вместо изменения файла конфигурации по умолчанию, расположенного в /etc/apache2/sites-available/000-default.conf , мы создадим новый файл в /etc/apache2/sites-available/ your_domain .conf :
Введите следующий блок конфигурации, который похож на заданный по умолчанию, но обновлен с учетом новой директории и доменного имени:
Обратите внимание, что мы изменили DocumentRoot на новую директорию, а ServerAdmin — на адрес электронной почты, доступный администратору сайта your_domain. Также мы добавили две директивы: директиву ServerName , которая устанавливает базовый домен и должна соответствовать определению виртуального хоста, и директиву ServerAlias , которая задает дополнительные имена, которые должны давать совпадение, как если бы они были базовыми именами.
Сохраните файл и закройте его после завершения.
Активируем файл с помощью инструмента a2ensite :
Отключите сайт по умолчанию, определеный в 000-default.conf :
Затем проверим ошибки конфигурации:
Вы должны получить следующий результат:
Перезапустие Apache для внесения изменений:
Теперь 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 в Ubuntu 20.04.
Источник
Как установить Linux, Apache, MySQL, PHP (LAMP) в Ubuntu 16.04
Published on November 30, 2016
Введение
Стек LAMP — это набор программного обеспечения с открытым исходным кодом, которой обычно устанавливается на сервер для отображения динамических веб-сайтов и веб-приложений. Эта аббревиатура обозначает операционную систему Linux с установленным веб-сервером Apache. Данные сайта хранятся в базе данных MySQL, динамический контент обрабатывается с помощью PHP.
Эта статья описывает процесс установки LAMP на виртуальный сервер (Droplet) в Ubuntu 16.04. Ubuntu удовлетворяет первому требованию к LAMP: это операционная система на базе Linux.
Необходимые условия
Перед тем, как начать следовать шагам, описанным в этой статье, вам необходимо настроить отдельный, не-рутовый (non-root) профиль пользователя на вашем сервере. Вы можете сделать это следуя шагам 1-4 статьи о первичной настройке сервера на Ubuntu 16.04.
Шаг 1 — Установка Apache и настройка файрвола
Веб-сервер Apache в настоящее время является одним из самых популярных веб-серверов в мире. Он хорошо документирован и используется значительную часть времени с момента создания сети Интернет, что делает его прекрасным выбором для хостинга веб-сайта.
Мы с легкостью можем установить Apache используя менеджер пакетов Ubuntu apt . Менеджер пакетов позволяет нам легко установить большую часть программного обеспечения из репозиториев Ubuntu. О том, как использовать apt , вы можете узнать из этой статьи.
Для начала установки выполним команды:
Поскольку мы используем команду sudo , эти команды будут выполняться с привилегиями root. В процессе операционная система запросит ваш пароль пользователя.
После ввода пароля apt сообщит, какие пакеты будут установлены и сколько места они займут на диске. Нажмите Y и Enter для продолжения установки.
Настройка глобальной переменной ServerName
Далее мы добавим одну строку в /etc/apache2/apache2.conf для устранения предупреждений (warnings) о синтаксических ошибках. Несмотря на то, что это просто предупреждение и никакой проблемы не существует, если не задать глобальную переменную ServerName , вы будете получать следующее предупреждение об ошибке при проверке настройки конфигурации Apache:
Откройте главный конфигурационный файл в своём текстом редакторе командой:
Добавьте в конец файла переменную ServerName , указывающую на ваше основное доменное имя. Если для вашего сервера не настроено доменное имя, вы можете использовать публичный IP-адрес сервера:
После этого сохраните и закройте файл.
Теперь можно проверить результат напечатав следующую команду:
Поскольку мы установили глобальную переменную ServerName , вы должны увидеть вывод следующего характера:
Перезапустите Apache для применения внесённых изменений:
Теперь можно приступать к настройке файрвола.
Настройка файрвола
Теперь убедимся, что ваш файрвол пропускает HTTP и HTTPS трафик. Мы будем исходить из предположения, что вы уже выполнили инструкции по первичной настройке сервера и включили файрвол UFW. Для начала убедимся, что UFW имеет профиль для Apache следующей командой:
Проверим настройку профиля Apache Full , она должна разрешать трафик для портов 80 и 443:
Разрешим входящий трафик для этого профиля:
Проверить результат установки можно набрав в вашем веб-браузере публичный IP адрес вашего сервера (если вы еще не знаете, как найти публичный IP адрес вашего сервера, смотрите следующий раздел этой статьи):
Вы увидите страницу Apache, отображаемую по умолчанию для информации и целей тестирования. Она должна выглядеть похожим образом:
Если вы видите эту страницу, ваш веб-сервер корректно установлен и доступен через файрвол.
Как найти публичный IP адрес вашего сервера
Если вы не знаете публичный IP адрес вашего сервера, его можно определить несколькими способами. Обычно, это адрес, который вы используете для соединения с вашим сервером по SSH.
Определить этот адрес можно с помощью командной строки. Сначала используйте инструмент iproute2 для получения вашего адреса набрав следующую команду:
Результатом выполнения этой команды будет одна или две строки, содержащие корректный адрес. Ваш компьютер, возможно, сможет использовать только один из них, поэтому попробуйте каждый вариант.
В качестве альтернативы можно узнать, как curl видит ваш сервер. Это можно сделать следующим образом:
В независимости от метода, который вы использовали для получения своего IP адреса, вы можете использовать этот IP адрес для доступа к серверу через адресную сроку веб-браузера.
Шаг 2 — Установка MySQL
Теперь, когда наш веб-сервер установлен и запущен, пора установить MySQL. MySQL это система управления базой данных. Она организует и обеспечит доступ к базам данных, в которых ваш сайт может хранить информацию.
Мы можем вновь использовать apt для загрузки и установки программного обеспечения. В этот раз мы также установим некоторые вспомогательные пакеты, которые помогут нам в налаживании взаимодействия между компонентами:
Вам будет показан список пакетов, которые будут установлены, а также сколько места на диске они займут. Нажмите Y для продолжения установки.
В процессе установки ваш сервер попросит вас задать и подтвердить пароль для пользователя “root” в MySQL. Это администраторский аккаунт в MySQL, который имеет расширенные права. Рассматривайте его как аналог root-аккаунта для самого сервера (однако тот, который вы конфигурируете в данный момент, подходит только для MySQL). Задайте надёжный уникальный пароль, не оставляйте пароль не заданным.
После завершения установки нам потребуется выполнить некоторые дополнительные команды, чтобы наше окружение MySQL было настроено безопасным образом. Введите следующую команду:
Скрипт запросит пароль, который вы только что задали для root пользователя в MySQL. Далее вам будет предложено сконфигурировать плагин валидации паролей ( VALIDATE PASSWORD PLUGIN ).
Внимание: решение включать плагин валидации паролей или нет носит субъективный характер. При включении все пароли, которые не удовлетворяют определённым критериям безопасности, будут отвергаться MySQL с сообщением об ошибке. Это может вызывать проблемы, если вы используете “слабые” пароли совместно с программным обеспечением, которое конфигурирует профили пользователей MySQL, например, пакеты Ubuntu для phpMyAdmin. Вы можете оставить валидацию паролей отключенной, но в этом случае вам следует всегда использовать “сильные” уникальные пароли для пользователей базы данных.
Введите y для включения плагина или что-нибудь другое для продолжения без его включения:
Если вы включили валидацию паролей, вам будет предложено установить уровень надёжности паролей при валидации. Имейте в виду, что при выборе значения 2 (самый строгий уровень валидации), вы будете получать ошибки при попытке задать пароль без цифр, букв в верхнем и нижнем регистре, а также без специальных символов, а также при попытке использовать пароль, основанный на распространённых словах, которые уязвимы для подбора паролей по словарю.
Если вы включили валидацию паролей, вам будет показан уровень надёжности заданного вами ранее пароля root пользователя, а также вам будет предложено изменить этот пароль. Если вы не хотите менять пароль, введите n или no:
На все последующие вопросы просто вводите Y и нажимайте клавишу ENTER для выбора настроек по умолчанию. При этом удалятся некоторые тестовые пользователи и базы данных, будет отключена возможность удаленного доступа с учетной записью root-пользователя, и все изменения будут немедленно применены в MySQL.
Теперь ваша система управления базами данных установлена и мы можем двигаться дальше.
Шаг 3 — Установка PHP
PHP это компонент, который будет обрабатывать код для отображения динамического контента. Он может запускать скрипты, подключаться к нашим базам данных MySQL для получения информации и передавать обработанный контент в наш веб-сервер для отображения.
Мы можем вновь воспользоваться менеджером пакетов apt для установки компонентов. Мы также добавим некоторые вспомогательные пакеты, чтобы код на PHP мог работать с нашим сервером Apache, а также обращаться к базе данных MySQL:
Данная команда должна установить PHP без каких либо проблем. Вскоре мы это проверим.
В большинстве случаев, мы захотим изменить способ, который использует Apache для поиска файлов при запросе директории. На данный момент, если пользователь запрашивает директорию с сервера, Apache в первую очередь будет искать файл с названием index.html . Мы хотим, чтобы наш веб-сервер отдавал предпочтение PHP файлам, так что мы настроим Apache таким образом, чтобы сначала он искал файлы index.php .
Для этого введите следующую команду, чтобы открыть файл dir.conf в текстовом редакторе с привилегиями root-пользователя:
Содержимое файла будет выглядеть следующим образом:
Мы хотим переместить PHP файл index.php , выделенный выше, на первое место после спецификации DirectoryIndex следующим образом:
После внесения правок сохраните и закройте файл сочетанием клавиш CTRL-X. Вам придется подтвердить операцию вводом Y и затем нажатием клавиши ENTER для подтверждения места сохранения файла.
После этого нам необходимо перезапустить Apache для применения внесенных изменений. Вы можете сделать это при помощи команды:
Мы также можем проверить статус сервиса apache2 используя systemctl :
Установка модулей PHP
Чтобы расширить функциональность PHP, мы можем установить некоторые дополнительные модули.
Для просмотра доступных опций для модулей и библиотек PHP вы можете передать результат apt-cache search в less , которая позволит вам проматывать вывод:
Используйте клавиши стрелок вверх и вниз для промативания списка, для выхода нажмите q.
В результате вам будут показаны все опциональные компоненты, которые можно установить, сопровождаемые коротким описанием для каждого:
Чтобы получить больше информации по каждому модулю, вы можете поискать в Интернете или посмотреть полное описание пакета при помощи команды:
Ответ будет содержать много текста, среди которого есть поле Description-en . Именно оно и будет содержать расширенное описание функциональности, предоставляемой модулем.
Например, чтобы узнать назначение модуля php-cli , мы можем выполнить команду:
Помимо большого количества прочей информации, вы увидите следующее:
Если после изучение вы решили, что хотите установить пакет, вы можете сделать это используя команду apt-get install как мы делали ранее при установке другого программного обеспечения.
Если мы решили, что хотим установить php-cli , мы можем ввести команду:
Для установки сразу нескольких модулей, вы можете перечислить их через пробелы следом за командой apt-get install следующим образом:
Теперь ваш стек LAMP установлен и сконфигурирован. Однако нам еще предстоит протестировать PHP.
Шаг 4 — Тестирование работы PHP на вашем веб-сервере
Чтобы проверить, что наша система сконфигурирована должным образом, мы можем создать простой PHP скрипт.
Назовем скрипт info.php . Чтобы Apache нашел и обработал файл корректно, он должен быть сохранен в специальную директорию, которая называется “web root”.
В Ubuntu 16.04 данная директория находится по адресу /var/www/html/ . Мы можем создать там файл введя следующую команду:
Откроется пустой файл. Мы хотим ввести в файл следующий текст, который является корректным PHP кодом:
После внесения изменений сохраните и закройте файл.
Теперь мы можем проверить, может ли веб-сервер корректно отображать контент, сгенерированный PHP скриптом. Для проверки нам просто нужно открыть данную страницу в веб-браузере. Вам снова потребуется публичный IP-адрес сервера.
Откроем этот адрес:
Страница, на которую вы попадете, должна выглядеть похожим образом:
Данная страница содержит информацию о вашем сервере с точки зрения PHP. Она полезна для отладки и чтобы удостовериться в корректности применения настроек.
Если все прошло успешно, значит ваш PHP работает корректно.
Вы, возможно, захотите удалить этот файл после теста, т.к. он может дать информацию о вашем сервере неавторизованным пользователям. Для удаления файла введите команду:
Вы всегда сможете заново создать этот файл, если вам снова потребуется доступ к этой информации.
Заключение
Теперь, когда ваш стек LAMP установлен, у вас есть множество вариантов того, что делать дальше. Фактически, вы установили платформу, которая позволит установить (развернуть) большинство типов веб-сайтов и сетевого программного обеспечения на вашем сервере.
В качестве первого шага мы рекомендуем настроить веб-сервер на работу через HTTPS. Самый простой вариант обезопасить свой сайт с помощью бесплатного TLS/SSL сертификата — это использовать сервис Let’s Encrypt.
Некоторые другие популярные мероприятия:
- Установить WordPress — наиболее популярную систему управления контентом в интернете.
- Установить PHPMyAdmin для управления базами данных MySQL из веб-браузера.
- Узнать больше о MySQL для управления базами данных.
- Научиться использовать SFTP для передачи файлов на ваш сервер и с него.
Обратите внимание: Мы будем обновлять указанные выше ссылки на документацию для 16.04 по мере ее написания.
Источник