Letysite.ru

IT Новости с интернет пространства
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Apache скачать linux

Обзор и установка сервера Apache для пользователей Linux

Apache — самый популярный веб-сервер в мире. Если вам не требуется хостинг Windows, Apache является оптимальным выбором. Однако не все веб-хосты, использующие сервер, имеют одинаковое качество. Давайте во всем разбираться в статье.

Что такое Apache

Веб-серверы против приложений

Веб-сервер Apache — это не физическая инфраструктурная машина, которая находится в центре обработки данных. На самом деле это приложение веб-сервера, которое установлено на этих компьютерах.

Приложение веб-сервера позволяет доставлять контент через Интернет. ПО сервера установлено в ОС, причем чаще всего в нашем любимом Linux.

Разработка и сопровождение

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

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

Как работает Apache

Система доставки HTTP

Веб-серверы доставляют веб-страницы с помощью HTTP (Hyper Text Transfer Protocol) через запросы URL-адресов. Как вы знаете, URL — это идентификатор веб-страницы, к которой вы хотите получить доступ.

Когда пользователь вводит URL-адрес в адресную строку веб-браузера, он отправляет HTTP-запрос на сервер, на котором работает Apache.

Обработка нескольких запросов

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

В результате, это позволяет нескольким пользователям одновременно получать доступ к веб-странице. Это происходит благодаря многопроцессорным модулям сервера.

Существует множество доступных модулей, работающих под Apache.

Эти модули имеют множество функций, например, выступают в качестве поставщиков аутентификации или применяют ограничения полосы пропускания для пользователей.

Популярность Apache

Как правило сервер Apache ассоциируется с Linux.

Интеграция

Сервер поддерживает множество технологий, в том числе:

  • MySQL
  • PHP
  • SSL
  • Общий интерфейс шлюза (CGI)
  • Включения на стороне сервера (SSI)
  • Перенаправление URL
  • Метафайлы заголовка HTTP
  • Кэширование прокси

Кроссплатформенная совместимость

Кроссплатформенная совместимость означает, что независимо от того, в какой ОС работает сервер, Apache с легкостью размещает ваш сайт.

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

Виртуальный хостинг

О виртуальном хостинге

Виртуальный хостинг — это то, что позволяет одному серверу делиться своими ресурсами с несколькими пользователями. В результате, компаниям предлагают виртуальный хостинг по низкой цене.

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

Виртуальный хостинг Apache

Сервер обслуживает несколько доменов одновременно. Это называется виртуальным хостингом. Именно так хостинговые компании предлагают решения для хостинга на общих серверах и предоставляют вам несколько доменов.

Существует два типа конфигураций виртуального хостинга Apache. Один основан на IP, а другой — на имени. Конфигурация виртуального хоста на основе IP использует отдельный IP-адрес сервера для каждого веб-сайта на сервере.

Другая конфигурация использует имя хоста в заголовке HTTP для поиска запрошенного веб-сайта. Таким образом, сервер должен иметь только один IP-адрес и указывать несколько веб-сайтов на этот один IP-адрес.

Хотя, когда размещенные веб-сайты имеют общий IP-адрес, люди могут столкнуться с проблемами SSL. Когда вы делитесь IP-адресом с другими пользователями на вашем сервере, вы также делитесь сертификатом SSL .

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

Вот почему многие хостинговые компании предлагают его на базе IP за дополнительную плату. Это дает вам собственный IP-адрес, на котором вы можете разместить частный сертификат SSL.

Недостатки виртуального хостинга

  • Увеличивает накладные расходы для компаний. Вот почему выделенные IP-адреса часто включаются в более дорогие планы или предлагаются в качестве дополнений.
  • Несколько имен хостов (каждое ссылается на определенный веб-сайт) используются для указания на один IP-адрес
  • Сложно защищать сайты с SSL / TLS из-за технической конфигурации виртуального хостинга на основе имен
  • Требуется постоянно доступная система доменных имен для использования

Типы хостинга Apache

Экономия

Планы хостинга, как правило, несколько дешевле, чем сопоставимые планы Windows. Имейте в виду, что Apache является бесплатным, поэтому большинство хостов связывают его с бесплатными ОС, такими как Linux. Например, комбинация известна как LAMP , что означает Linux Apache MySQL PHP .

С другой стороны, для хостинга Windows требуется IIS, Microsoft SQL или ODBC и, конечно, ОС Microsoft. Требования к оборудованию тоже могут отличаться.

Большая часть сэкономленных средств передается клиенту, что делает экономные планы хостинга популярными среди малых предприятий и ИП.

Однако даже эти планы хостинга начального уровня предлагают множество функциональных возможностей.

  • Зачастую, их часто достаточно для сайтов, созданных на популярных платформах, например: WordPress
  • Drupal
  • phpBB
  • Joomla

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

  • Общие планы
  • Виртуальные частные сервера (VPS)
  • Управляемые частные сервера (MPS)

Общие планы

Наиболее доступными вариантами обычно являются общие планы Apache, в том числе облачные. Они, как правило, предлагают базовую функциональность, включая:

VPS

Более дорогие и комплексные планы VPS (Virtual Private Server) предназначены для хостинга на нескольких сайтах и со средней нагрузкой.

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

  • модели виртуального частного сервера
  • хостинга нескольких доменов
  • большего количества хранилищ
  • другие функции.

MPS

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

Само собой, выделенные серверы, как правило, стоят дорого, независимо от платформы.

Топовые предложения Apache

GreenGeeks

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

С их общими планами вы получите доступ к пользовательским модулям Apache, а также к пользовательским PHP и оптимизации PHP. GreenGeeks размещает свои планы на скоростных SSD-серверах, на которых они предоставляют неограниченное хранилище. К тому же, получаете бесплатные ежедневные резервные копии с их услугами и бесплатное доменное имя при регистрации.

Hosting A2

Hosting A2 не включает бесплатное доменное имя. Но они предоставляют Turbo-серверы для увеличения скорости вашего хостинга в 20 раз. Эти Turbo-серверы предоставляют больше ресурсов для каждого пользователя, потому что они держат на них меньше пользователей. Это также даст пользователям повышенную производительность.

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

Официальный сайт Hosting A2

SiteGround

Как и GreenGeeks, SiteGround дает вам бесплатную регистрацию домена. Хотя их планы общего хостинга по цене аналогичны, они ограничивают пространство для хранения вашего сайта.

Но пользователи, выбирающие хостинг с SiteGround, получат бесплатный CDN и бесплатные ежедневные резервные копии. SiteGround также предоставляет пользовательские модули Apache с расширенной оптимизацией PHP.

Преимущества и недостатки Apache

Преимущества

  • Веб-сервер Apache полностью бесплатный, потому что это ПО с открытым исходным кодом
  • Природа сервера с открытым исходным кодом также означает, что за ним стоит сообщество разработчиков, выпускающее частые обновления.
  • Разработчики изменяют и настраивают исходный код в соответствии со своими потребностями.
  • Виртуальный хостинг позволяет запускать несколько сайтов с одного сервера
  • Установочный пакет Apache включает в себя DNS, SMTP и FTP
  • Многочисленные сторонние модули позволяют настраивать ваш веб-сервер
  • Совместим со многими различными ОС и конфигурациями оборудования.

Недостатки

  • Возможность изменения конфигурации сервера добавляет угрозу безопасности сервера
  • Изменение исходного кода приведет к ошибкам
  • Должен регулярно обновляться
  • Возможны сбои в условиях интенсивного трафика, когда NGINX работает лучше

Установка и запуск первого сайта

В терминале вводим sudo apt update && sudo apt install apache2

После установке в том же терминале открываем папку где должны храниться сайт. Пишем cd /var/www/html . Самым удобным вам способом редактируем html файл. В данном случае я буду делять это при помощи программы sublimeText. Ввожу sudo subl index.html . Важно вводить sudo при каждом действии в этой папке, так как там нужны права суперпользователя. Также если у вас уже есть готовый сайт вы можете переместить все нужные файлы при помощи команды sudo cp -r ‘нужная папка’ ‘cd /var/www/’.

Заходим в любой браузер и вводим localhost/index.html .

Видео

В видео мы рассмотрели как установить, а главное настроить сервер с apache, также не обойдя стороной и модули. В общем, обязательно к просмотру!

Вывод

Существует ряд причин, по которым Apache является самым популярным веб-сервером в мире. И его популярность дает много преимуществ. Например, большое количество пользователей, к которым можно обратиться при возникновении проблем.

Следует отметить, что основной альтернативой ему является Nginx , который использует меньше памяти и работает быстрее. Многие хостинговые компании предлагают оба сервера в качестве опции. В общем, вы не ошибетесь ни с одним из них.

ИТ База знаний

Полезно

— Узнать IP — адрес компьютера в интернете

— Онлайн генератор устойчивых паролей

— Онлайн калькулятор подсетей

— Калькулятор инсталляции IP — АТС Asterisk

— Руководство администратора FreePBX на русском языке

— Руководство администратора Cisco UCM/CME на русском языке

— Руководство администратора по Linux/Unix

Навигация

Серверные решения

Телефония

FreePBX и Asterisk

Настройка программных телефонов

Корпоративные сети

Протоколы и стандарты

Популярное и похожее

Установка VirtualBox 6.0 на Linux

Как восстановить пароль от root в CentOS 7

Использование опций команды apt-get для очистки системы

Как расшарить папку в CentOS с помощью Samba

Полезные команды для управления Apache в Linux

Для работы с веб — приложениями

В этом руководстве мы опишем некоторые из наиболее часто используемых команд управления службами Apache (HTTPD) , которые полезно знать, разработчику или системному администратору, и держать эти команды под рукой. Мы покажем команды для Systemd и SysVinit.

Убедитесь, что следующие команды должны выполняться от имени пользователя root или sudo и работать с любым дистрибутивом Linux, таким как CentOS, RHEL, Fedora, Debian и Ubuntu.

Установка Apache Server

Чтобы установить веб-сервер Apache, используйте ваш стандартный менеджер пакетов, как показано ниже.

Проверка версии Apache

Чтобы проверить установленную версию вашего веб-сервера Apache в вашей системе Linux, выполните следующую команду.

Если вы хотите увидеть номер версии Apache и параметры компиляции, используйте флаг -V, как показано ниже.

Проверка на ошибки синтаксиса конфигурации Apache

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

Запуск сервиса Apache

Чтобы запустить службу Apache, выполните следующую команду.

Включение службы Apache

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

Читать еще:  Клиент rdp linux
Перезапуск службы Apache

Чтобы перезапустить Apache (остановить, а затем запустить службу), выполните следующую команду.

Просмотр состояния сервиса Apache

Чтобы проверить информацию о состоянии времени выполнения службы Apache, выполните следующую команду.

Перезагрузка сервиса Apache

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

Остановка службы Apache

Чтобы остановить службу Apache, используйте следующую команду.

Показать справку Apache Command

И последнее, но не менее важное: вы можете получить справку о служебных командах Apache в systemd, выполнив следующую команду.

На этом пока все! В этой статье мы объяснили наиболее часто используемые команды управления службами Apache / HTTPD, которые полезно будет знать, включая запуск, включение, перезапуск и остановку Apache.

Полезна ли Вам эта статья?

Пожалуйста, расскажите почему?

Нам жаль, что статья не была полезна для вас 🙁 Пожалуйста, если не затруднит, укажите по какой причине? Мы будем очень благодарны за подробный ответ. Спасибо, что помогаете нам стать лучше!

Подпишитесь на нашу еженедельную рассылку, и мы будем присылать самые интересные публикации 🙂 Просто оставьте свои данные в форме ниже.

Contents

  • Русский
  • English
  • Español
  • Português

Share

Sign up for our newsletter.

Get the latest tutorials on SysAdmin and open source topics.

Write for DigitalOcean You get paid, we donate to tech non-profits.

DigitalOcean Meetups Find and meet other developers in your city.

Hacktoberfest Contribute to Open Source

Related

Как установить веб-сервер Apache в Ubuntu 18.04

Введение

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

В этом руководстве мы расскажем, как установить веб-сервер Apache на ваш сервер с Ubuntu 18.04.

Необходимые условия

Перед тем, как начать следовать шагам, описанным в этом руководстве, вам необходимо настроить отдельный, не-рутовый (non-root) профиль пользователя на вашем сервере с Ubuntu 18.04. Кроме того, вам потребуется настроить базовый файрвол для блокирования всех портов, кроме необходимых для работы Apache. Вы можете ознакомиться с процессом настройки аккаунта пользователя и настройкой файрвола на вашем сервере следуя шагам нашего руководства по первичной настройке сервера на Ubuntu 18.04.

После завершения создания аккаунта войдите на ваш сервер с помощью вновь созданного пользователя.

Шаг 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 трафик разрешён:

Как видно из этого вывода профиль был включен для разрешения доступа к веб-серверу.

Шаг 3 — Проверка вашего веб-сервера

После завершения процесса установки Ubuntu 18.04 запустит Apache. Веб-сервер уже должен быть запущен.

Проверим в системе инициализации systemd , что сервис работает, следующей командой:

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

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

Введите следующую команду:

Она вернёт несколько адресов, разделённых пробелами. Вы можете попробовать каждый из них в вашем веб-браузере.

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

После того, как вы найдёте IP адрес вашего сервера, введите его в свой веб-браузер:

Вы должны увидеть дефолтную страницу Apache для Ubuntu 18.04:

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

Шаг 4 — Управление процессом Apache

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

Для остановки себ-сервера наберите:

Для запуска остановленного сервера наберите:

Для перезапуска сервиса наберите:

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

По умолчанию Apache сконфигурирован на запуск при загрузке сервера. Вы можете отключить такое поведение следующей командой:

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

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

Шаг 5 — Настройка виртуальных хостов (рекомендуется)

При использовании веб-сервера Apache вы можете использовать виртуальные хосты (аналог серверных блоков в Nginx) для хранения конфигурационных настроек разных сайтов. Это позволяет иметь более одного сайта на одном сервере. В этом руководстве мы будем для примера использовать доменное имя example.com, но вам следует заменить его вашим собственным доменным именем. Для того, чтобы узнать больше о настройке доменных имён в DigitalOcean, рекомендуем ознакомиться с нашим Введением в DNS DigitalOcean.

Apache для Ubuntu 18.04 уже имеет один виртуальный хост, включенный по умолчанию, который настроен на отдачу документов из директории /var/www/html . Хотя это и удобно для обслуживания одного сайта, это становится неудобным, когда сайтов несколько. Вместо того, чтобы изменять /var/www/html , давайте создадим новую структуру директорий внутри /var/www для нашего сайта example.com, оставив /var/www/html для показа дефолтной страницы пользователям в случаях, когда клиентский запрос не совпадает ни с одним из настроенных доменных имён.

Создайте директорию для example.com используя флаг -p для создания необходимых родительских директорий:

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

Теперь права должны для корневой директории быть настроены правильным образом при условии, что вы не меняли своё значение umask . На всякий случай мы можем удостовериться в этом командой:

Далее создадим страницу index.html в nano или любом другом текстовом редакторе:

Добавим в файл следующий HTML:

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

Для того, чтобы Apache мог отдавать этот контент, нам необходимо настроить виртуальный хост с корректными настройками. Вместо того, чтобы редактировать существующий файл виртуального хоста /etc/apache2/sites-available/000-default.conf , создадим новый файл для нашего сайта — /etc/apache2/sites-available/ example.com .conf :

Скопируйте следующий текст настроек виртуального хоста в созданный файл:

Обратите внимание, что мы обновили DocumentRoot на адрес нашей новой директории, и ServerAdmin на адрес электронной почты, доступный для администратора example.com. Мы также добавили две директивы: ServerName , которая устанавливает базовое доменное имя, которое должно использоваться для хоста, а также ServerAlias , которая определяет другие имена, которые должны использоваться для отображения хоста так же, как и базовое доменное имя.

Сохраните и закройте файл после внесения изменений.

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

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

Далее проверим наши настройки на наличие ошибок:

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

Перезапустите Apache для применения внесённых изменений:

Теперь Apache должен работать с вашим доменным именем. Вы можете проверить это введя http:// example.com в вашем браузере, где в результате вы должны увидеть что-то в этом роде:

Шаг 6 — Важные файлы и директории Apache

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

Контент

  • /var/www/html : фактический веб-контент, который по умолчанию состоит только из дефолтной страницы Apache, которую мы видели ранее, хранится в директории /var/www/html . Это может быть изменено в конфигурационных файлах Apache.

Конфигурация сервера

  • /etc/apache2 : это конфигурационная директория Apache. Все файлы конфигурации Apache находятся здесь.
  • /etc/apache2/apache2.conf : главный конфигурационный файл Apache. Изменения в этом файле влияют на глобальную конфигурацию Apache. Этот файл отвечает за загрузку многих других файлов из конфигурационной директории.
  • /etc/apache2/ports.conf : этот файл определяет порты, которые Apache будет слушать. По умолчанию Apache слушает порт 80, а также порт 443 при условии, что модуль для работы с SSL включен.
  • /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 18.04.

Установка и настройка сервера Apache

Apache — это популярнейший свободный веб-сервер. Состоянием на 2016 год он используется на 33% всех сайтов интернета, а это приблизительно 304 миллиарда сайтов. Этот веб-сервер был разработан в далеком 1995, как замена для популярного того сервера NCSA и исправил множество его проблем. Ходят слухи что его имя походит от a patchy, заплатка, так как он исправлял ошибки NCSA. Сейчас же, это кроссплатформенная программа, поддерживающая Windows, Linux и MacOS и обеспечивающая достаточную гибкость, настраиваемость и функциональность. Программа имеет модульную структуру, что позволяет расширять ее функциональность почти до бесконечности с помощью модулей.

Читать еще:  Linux move file

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

Установка Apache

На данный момент, самая новая версия программы 2.4 поэтому и будет рассмотрена настройка apache 2.4. Как я уже говорил, в Linux программа устанавливается буквально в пару команд. Для установки в Ubuntu сначала обновим систему до самой новой версии:

sudo apt update
$ sudo apt upgrade

Затем установка apache2:

sudo apt install apache2

В других дистрибутивах пакет программы называется либо так, либо httpd и его установка у вас не вызовет трудностей.

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

sudo systemctl enable apache2

Настройка Apache

Уже прошло то время, когда конфигурация Apache хранилась в одном файле. Но оно и правильно, когда все распределено по своим директориям, в конфигурационных файлах легче ориентироваться.

Все настройки содержатся в папке /etc/apache/:

  • Файл /etc/apache2/apache2.conf отвечает за основные настройки
  • /etc/apache2/conf-available/* — дополнительные настройки веб-сервера
  • /etc/apache2/mods-available/* — настройки модулей
  • /etc/apache2/sites-available/* — настойки виртуальных хостов
  • /etc/apache2/ports.conf — порты, на которых работает apache
  • /etc/apache2/envvars

Как вы заметили есть две папки для conf, mods и site. Это available и enabled. При включении модуля или хоста создается символическая ссылка из папки available (доступно) в папку enable (включено). Поэтому настройки лучше выполнять именно в папках available. Вообще говоря, можно было бы обойтись без этих папок, взять все и по старинке свалить в один файл, и все бы работало, но сейчас так никто не делает.

Сначала давайте рассмотрим главный файл конфигурации:

Timeout — указывает как долго сервер будет пытаться продолжить прерванную передачу или прием данных. 160 секунд будет вполне достаточно.

KeepAlive On — очень полезный параметр, позволяет передавать несколько файлов, за одно соединение, например, не только саму html страницу, но и картинки и css файлы.

MaxKeepAliveRequests 100 — максимальное количество запросов за одно соединение, чем больше, тем лучше.

KeepAliveTimeout 5 — таймаут соединения, обычно для загрузки страницы достаточно 5-10 секунд, так что больше ставить не нужно, но и рвать соединение раньше чем загрузились все данные тоже не нужно.

User, Group — пользователь и группа, от имени которых будет работать программа.

HostnameLookups — записывать в логи вместо ip адресов доменные имена, лучше отключить, чтобы ускорить работу.

LogLevel — уровень логирования ошибок. По умолчанию используется warn, но чтобы логи заполнялись медленнее достаточно включить error

Include — все директивы include отвечают за подключение рассмотренных выше конфигурационных файлов.

Директивы Directory отвечают за настройку прав доступа к той или иной директории в файловой системе. Синтаксис здесь такой:

Здесь доступны такие основные опции:

AllowOverride — указывает нужно ли читать .htaccess файлы из этой директории, это такие же файлы настроек и таким же синтаксисом. All — разрешать все, None — не читать эти файлы.

DocumentRoot — устанавливает из какой папки нужно брать документы для отображенияа пользователю

Options — указывает какие особенности веб-сервера нужно разрешить в этой папке. Например, All — разрешить все, FollowSymLinks — переходить по символическим ссылкам, Indexes — отображать содержимое каталога если нет файла индекса.

Require — устанавливает, какие пользователи имеют доступ к этому каталогу. Require all denied — всем запретить, Require all granted — всем разрешить. можно использовать вместо all директиву user или group чтобы явно указать пользователя.

Order — позволяет управлять доступом к директории. Принимает два значения Allow,Deny — разрешить для всех, кроме указанных или Deny,Allow — запретить для всех, кроме указанных. Теперь мы можем запретить доступ к директории для всех: Deny from all, а затем разрешить только для приложения от losst.ru: Allow from losst.ru.

Здесь все эти директивы не используются, поскольку нас устраивают значения по умолчанию, но вот в файлах .htaccess они могут быть очень полезны.

У нас остался файл /etc/apache2/ports.conf:

В нем только одна директива, Listen, которая указывает программе на каком порту нужно работать.

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

Дальше поговорим немного о htacess. Совсем немного.

Настройка сервера Apache через htaccess

Файлы .htaccess позволяют настраивать веб-сервер на Ubuntu для поведения в определенной директории. Все инструкции, указанные в этом файле выполняются как бы они были обвернуты в тег если бы находились в основном файле.

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

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

Order Deny,Allow
Deny from all

Запрещает всем доступ к этой папке, важно применить, для папок с конфигурацией. Чаще всего .htaccess используется для работы с модулем mod_rewrite, который позволяет изменять запросы на лету:

RewriteEngine on
RewriteRule ^product/([^/.]+)/?$ product.php?id=$1 [L]

Но это очень обширная тема и выходит за рамки этой статьи.

Настройка модулей Apache

Как я уже говорил, Apache — модульная программа, ее функциональность можно расширять с помощью модулей. Все доступные модули загрузчики и конфигурационные файлы модулей находятся в папке /etc/apache/mods-available. А активированные в /etc/apache/mods-enable.

Но вам необязательно анализировать содержимое этих папок. Настройка Apache 2.4 с помощью добавления модулей выполняется с помощью специальных команд. Посмотреть все запущенные модули можно командой:

Включить модуль можно командой:

sudo a2enmod имя_модуля

sudo a2dismod имя_модуля

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

sudo systemctl restart apache2

Во время выполнения одной из этих команд создается или удаляется символическая ссылка на файл модуля с расширением load в директории mods-available. Можете посмотреть содержимое этого файла, там только одна строка. Например:

Это к тому, что активировать модуль можно было просто добавив эту строчку в файл apache2.conf. Но принято делать именно так, чтобы избежать путаницы.

Настройки модулей находятся в той же папке, только в файле с расширением .conf вместо load. Например, посмотрим настройки того же модуля для сжатия deflate:

Файлы в папке conf-available, это такие же модули, только они установлены отдельно от apache, это может быть конфигурационные файлы для включения модуля php или любого другого языка программирования. Здесь работает все точно так же, только команды для включения и отключения этих модулей немного другие:

a2disconf имя модуля

Как вы убедились, включать модули очень просто. Давайте включим несколько необходимых, но не включенных по умолчанию модулей:

sudo a2enmod expires
$ sudo a2enmod headers
$ sudo a2enmod rewrite
$ sudo a2enmod ssl

Модули expires и headers уменьшают нагрузку на сервер. Они возвращают заголовок Not Modified, если документ не изменился с последнего запроса. Модуль expiries позволяет устанавливать время, на которое браузер должен кэшировать полученный документ. Rewrite позволяет изменять запрашиваемые адреса на лету, очень полезно при создании ЧПУ ссылок и т д. А последний для включения поддержки шифрования по SSL. Не забудьте перезагрузить apache2 после завершения настроек.

Настройка виртуальных хостов Apache

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

Настройки хостов Apache расположены в папке /etc/apache2/hosts-available/. Для создания нового хоста достаточно создать файл с любым именем (лучше кончено с именем хоста) и заполнить его нужными данными. Обернуть все эти параметры нужно в директиву VirtualHost. Кроме рассмотренных параметров здесь будут использоваться такие:

  • ServerName — основное имя домена
  • ServerAlias — дополнительное имя, по которому будет доступен сайт
  • ServerAdmin — электронная почта администратора
  • DocumentRoot — папка с документами для этого домена

ServerName test.site
ServerAlias www.test.site
ServerAdmin webmaster@localhost
DocumentRoot /var/www/test.site/public_html
ErrorLog $/error.log
CustomLog $/access.log combined

Виртуальные хосты, как и модули нужно активировать. Для этого есть специальные утилиты. Чтобы активировать наберите:

sudo a2ensite test.site

Здесь test.site — имя файла виртуального хоста. Для отключения тоже есть команда:

sudo a2dissite test.site

Настройка виртуальных хостов Apache завершена и на публичном сервере это все бы уже работало, но если вам нужна настройка Apache на домашней машине, то вы ваш новый сайт не откроется в браузере. Браузер не знает такого сайта. И откуда ему знать? DNS службы не могут ничего сообщить об этом доменном имени. Но в системе Linux мы можем сами указать ip адреса для доменных имен в файле /etc/hosts. Поэтому добавляем в конец файла такие строки:

127.0.0.1 test.site
127.0.0.1 www.test.site

Вот, ну теперь будет работать, открывайте браузер, проверяйте.

Выводы

Вот и все. Установка и настройка Apache linux завершена, вы можете использовать программу для размещения ваших сайтов. Более того, вы не просто настроили ее, вы разобрались со всеми подробностями и теперь знаете чуточку больше. Если у вас остались еще вопросы, пишите в комментариях!

linux установка apache

linux установка apache

Apache — это веб-сервер из мира свободного ПО. Согласно данным netcraft.com, по состоянию на май 2009 года около 47 % всех сайтов работают с Apache. Если же учитывать только миллион наиболее посещаемых сайтов, то доля Apache на рынке оказывается просто баснословной — 68%. В этой главе мы лишь немного коснемся Apache.

Установка

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

В Fedora в консоли выполняется команда yum groupinstall ‘Web-Server’. В SUSE в разделе YaST, отведенном для управления пакетами, выбирается Сервер ► Веб-и LAMP-сервер, а затем устанавливаются все нужные пакеты. В Ubuntu с помощью Synaptic или apt-get устанавливается пакет apache2-mpm-prefork. Вместе с ним устанавливается и несколько других зависящих от него пакетов.

Читать еще:  Оптимизатор для андроид

Начиная с версии 2, Apache поддерживает три различных режима многопоточной работы: perchild, prefork и worker. От выбранного метода зависит, насколько эффективно Apache сможет синхронно обрабатывать несколько запросов. При установке Apache вам необходимо выбрать один из трех этих вариантов. Если вы собираетесь использовать вместе с Apache язык программирования РНР, то лучше всего выбрать prefork. При работе с другими вариантами возможны ошибки, так как их библиотеки не приспособлены к работе с потоками .

Запуск/остановка. Apache — это демон, который в некоторых дистрибутивах нужно специально запускать. Названия сценария Init-V в разных дистрибутивах могут быть различными: apache2 в Debian, SUSE и Ubuntu или httpd в Fedora и Red Hat.

Название программы и учетная запись. Названия программы, представляющей собой веб-сервер Apache, в разных дистрибутивах также различаются. По причинам, связанным с безопасностью, веб-сервер, подобно многим другим сетевым демонам, выполняется не от имени администратора, а под другой учетной записью. Чтобы узнать ее название, лучше всего выполнить ps axu.
Собственные HTML-страницы. Чтобы вместо тестовой страницы на экране появилась главная страница вашего сайта, нужно сохранить HTML-файлы в каталоге документов Apache. Ваши HTML-файлы должны быть доступны для чтения с той учетной записи, под которой выполняется веб-сервер Apache!

Конфигурация

Размеры книги не позволяют подробно описать конфигурацию Apache. Но хотя бы рассмотрим, где располагаются конфигурационные файлы различных дистрибутивов и как производятся простейшие настройки.

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

В результате в большинстве дистрибутивов стал использоваться другой метод — настройки распределялись между несколькими файлами, а затем считыва-лись из различных каталогов с помощью команд include. Такой метод позволяет сделать отдельные файлы более понятными, но сама система становится совсем запутанной. Кроме того, становится практически невозможно перенести настройки одного дистрибутива в другой. Если вы ищете в конфигурационных файлах определенное ключевое слово, то лучше всего действовать так:

В Debian/Ubuntu в каталоге mods-available содержится коллекция файлов *.load и *.conf для различных модулей Apache. Для активизации других модулей создайте в mods-enabled ссылки на эти файлы. При управлении ссылками в Debian вам пригодятся специфичные для этого дистрибутива команды a2enmod и a2dismod. В дальнейшем вы сможете активизировать и деактивизировать виртуальные хосты с помощью команд a2ensite и a2dissite. По умолчанию в sites-available содержится только файл default: он конфигурирует стандартную веб-страницу сервера (каталог / var/www), а кроме того, содержит разнообразные базовые настройки для протоколирования ошибок и обращений к страницам.

Механизм работы такой же, как и с модулями: в каталоге sites-available содержатся все конфигурационные файлы для всех хостов, а в sites-enabled находятся соответствующие ссылки.

В SUSE все CONF-файлы из каталога sysconf.d при каждом запуске Apache создаются сценарием Init-V /etc/init.d/apache2 заново! По этой причине вносить изменения в эти файлы бессмысленно. Напротив, вам следует изменить переменные, находящиеся в /etc/sysconfig/apache2. Кроме того, в данном файле определяется, какие модули должны загружаться при запуске Apache (переменная APACHE MODULES). Если хотите добавить к конфигурационным файлам SUSE собственный файл, укажите его название в переменной APACHE_CONF_INCLUDE_FILES.

Тестирование конфигурации

Изменив синтаксис, с помощью команд httpd -t, httpd2 -tnnnapache2 -t вы можете проверить, нет ли в конфигурации синтаксических ошибок. В Debian и Ubuntu сначала нужно считать из файла envvars некоторые переменные окружения:

После этого прикажите Apache заново считать конфигурационные файлы:

Обычно веб-сервер Apache запускается сразу. Но в зависимости от настроек конкретной сети вам потребуется изменить или добавить в конфигурационных файлах как минимум одну строку: переменная ServerName должна содержать имя вашего компьютера. Если эта настройка не подействует, укажите UseCanonicalName Off.

В SUSE имя компьютера записывается в файле /etc/sysconfig/apache2 в переменной APACHE_SERVERNAME.

Стандартная кодировка

Во всех распространенных дистрибутивах Linux автоматически применяется кодировка Unicode UTF-8. Иначе говоря, если вы создаете в текстовом редакторе новый текстовый файл, в котором есть специальные символы, например немецкие буквыа, б, и илиВ, они сохраняются в кодировке UTF-8.

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

Настройка кодировки. Теперь Apache должен правильно указать кодировку. Если этого не получится сделать, пользователь увидит у себя в браузере неа или й, а какие-нибудь причудливые комбинации символов. Во избежание такого в Apache предусмотрена возможность настройки конфигурации кодировки. О AddDefaultCharset off — при такой настройке Apache интерпретирует МЕТА-тег передаваемого HTML-файла и сообщает браузеру, какая кодировка указана в этом теге. Если файл HTML начинается так, как это показано ниже, то применяется кодировка Unicode UTF-8:

AddDefaultCharset charset — Apache сообщает указанную здесь кодировку всем страницам браузера. Настройка действует для HTML- и PHP-файлов. МЕТА-тег в HTML-коде игнорируется. О AddDefaultCharset charset extension—так настраивается кодировка для файлов, имеющих определенное расширение. Если указать AddCharset utf-8 .utf8, то все файлы, название которых заканчивается на .utf8, будут посланы в браузер в кодировке Unicode UTF-8. Для работы AddCharset требуется модуль Apache mod_mime, который по умолчанию активен во всех дистрибутивах.

Debian, Ubuntu. Разумеется, стандартная конфигурация в разных дистрибутивах неодинакова. Для глобальной настройки кодировки в Ubuntu предусмотрен конфигурационный файл /etc/apache2/conf.d/charset. По умолчанию он пуст, то есть действует AddDefaultCharset off.

Кроме того, AddDefaultCharset и AddCharset можно использовать в конфигурационных файлах для виртуальных хостов (каталог sites-available), а также в файлах. htaccess, если вам нужна особая конфигурация отдельно взятого хоста или каталога. Но не забывайте, что настройки кодировки, указываемые в .htaccess, учитываются лишь в тех случаях, когда для веб-каталога задан параметр AHowOverride АН или FileInfo.

Fedora, Red Hat. В Fedora и Red Hat также может применяться AddDefaultCharset UTF-8. Эта настройка находится в файле /etc/httpd/conf/httpd.conf. В том же файле находится настройка AHowOverride None для каталога /var/www/html.

В SUSE отсутствуют особые функции для задания кодировки в конфигурационных файлах. Таким образом, действует AddDefaultCharset off, то есть кодировка определяется только по данным, указанным в МЕТА-теге HTML-файла. Для настройки AddDefaultCharset хорошо подходит файл /etc/apache2/mod_mime-defaults.conf.

Кроме того, в SUSE действует AllowOvern’de None для каталога /srv/www/htdocs. Эту настройкуможно изменить в файле /etc/apache2/default-server.conf.

Обеспечение безопасности при работе дома или внутри организации

Если вы собираетесь использовать Apache только в рамках отдельно взятой фирмы или в локальной сети, то вам потребуется запретить доступ к серверу извне. Это можно сделать, используя брандмауэр (см. главу 18) либо изменив несколько строк в конфигурационных файлах.

. В принципе управление доступом к отдельным веб-каталогам происходит в разделах конфигурационных файлов (как обычно, их расположение различается от дистрибутива к дистрибутиву). При этом, если имеются настройки для корневого каталога, все остальные каталоги соблюдают их по умолчанию. Затем в иных разделах для конкретных каталогов могут быть указаны и другие настройки, отличающиеся от стандартных. Из следующего примера должно быть понятно, каковы значения ключевых слов Order, Deny и Allow.

Приведенный далее код действует так, что все веб-страницы, находящиеся в стандартном каталоге, могут быть запрошены только страницами, расположенными в локальной сети. Кроме того, перестают работать символьные ссылки, так как они зачастую серьезно угрожают безопасности сети (обратите внимание, что deny.allow указывается без пробела!). Действующие строгие правила немного смягчаются для каталога /var/www/html/public. Благодаря параметру Indexes в браузере отображается список файлов, находящихся в том или ином каталоге, если в нем отсутствует файл index.html.

Защита веб-каталогов паролем

Иногда бывает необходимо не запрещать доступ к серверу полностью, а разрешать его только после ввода верного пароля.

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

Файл с паролем

Для решения таких проблем каталог необходимо защитить с помощью файла с паролем. По возможности файл с паролем нужно сохранять за пределами веб-каталога, чтобы исключить доступ к этому файлу по адресу servername/verzeichnis/ password-file. В следующем примере предполагается, что файл с паролем сохранен в каталоге /private.

Для создания нового файла с паролем используйте команду htpasswd (htpasswd2 в SUSE) с параметром -c (create). Пароль, разумеется, зашифровывается:

ПРИМЕЧАНИЕ

He забудьте дать Apache право чтения файла с паролем и каталога, в котором этот файл находится! Из соображений безопасности Apache работает не под учетной записью администратора, а под другой учетной записью (www-date в Debian и Ubuntu, apache в Fedora и Red Hat, wwwrun в SUSE). Если ваш компьютер защищен SELinux или AppArmor, то правила этих систем безопасности также не должны мешать доступу сервера к файлу с паролем.

Существует два варианта конфигурации Apache, при которых пароли действительно учитываются. При использовании первого варианта требуется изменить центральные конфигурационные файлы (httpd.conf и пр.). Второй вариант предусматривает конфигурацию в файле .htaccess, находящемся внутри веб-каталога.

Файл httpd.conf

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

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

Настройка Require valid-user означает, что для входа в систему может применяться любое действующее сочетание имени пользователя и пароля. Вы также можете здесь указать, что вход в систему разрешен только определенному пользователю:

Описанный выше процесс можно осуществить лишь в том случае, если у вас есть доступ к центральным конфигурационным файлам Apache, то есть если вы сами являетесь администратором сети. Если вы не администратор, то можете обеспечить не менее надежную защиту с помощью файла .htaccess, который находится в каталоге, защищенном паролем. В этом файле должны быть указаны те же команды, что и в группе , то есть AuthType, AuthUserFile, AuthName и Require.

Обратите внимание — файл .htaccess учитывается лишь при условии, что в httpd.conf в группе данного каталога допускается изменение информации, связанной с аутентификацией (вместо AllowOvern’de AuthConfig также может быть указано AllowOvern’de АН). На веб-серверах, где отдельные пользователи отвечают за собственные сетевые каталоги, это условие обычно выполняется.

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

Ссылка на основную публикацию
Adblock
detector