Установка и настройка сервера Apache
Apache — это популярнейший свободный веб-сервер. Состоянием на 2020 год он используется на 33% всех сайтов интернета, а это приблизительно 304 миллиарда сайтов. Этот веб-сервер был разработан в далеком 1995, как замена для популярного того сервера NCSA и исправил множество его проблем. Ходят слухи что его имя походит от a patchy, заплатка, так как он исправлял ошибки NCSA. Сейчас же, это кроссплатформенная программа, поддерживающая Windows, Linux и MacOS и обеспечивающая достаточную гибкость, настраиваемость и функциональность. Программа имеет модульную структуру, что позволяет расширять ее функциональность почти до бесконечности с помощью модулей.
Установить 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. Вообще говоря, можно было бы обойтись без этих папок, взять все и по старинке свалить в один файл, и все бы работало, но сейчас так никто не делает.
Сначала давайте рассмотрим главный файл конфигурации:
vi /etc/apache2/apache2.conf
Timeout — указывает как долго сервер будет пытаться продолжить прерванную передачу или прием данных. 160 секунд будет вполне достаточно.
KeepAlive On — очень полезный параметр, позволяет передавать несколько файлов, за одно соединение, например, не только саму html страницу, но и картинки и css файлы.
MaxKeepAliveRequests 100 — максимальное количество запросов за одно соединение, чем больше, тем лучше.
KeepAliveTimeout 5 — таймаут соединения, обычно для загрузки страницы достаточно 5-10 секунд, так что больше ставить не нужно, но и рвать соединение раньше чем загрузились все данные тоже не нужно.
User, Group — пользователь и группа, от имени которых будет работать программа.
HostnameLookups — записывать в логи вместо ip адресов доменные имена, лучше отключить, чтобы ускорить работу.
LogLevel — уровень логирования ошибок. По умолчанию используется warn, но чтобы логи заполнялись медленнее достаточно включить error
Include — все директивы include отвечают за подключение рассмотренных выше конфигурационных файлов.
Директивы Directory отвечают за настройку прав доступа к той или иной директории в файловой системе. Синтаксис здесь такой:
<Directory /адрес/в/файловой/системе/>
Параметр значение
</Directory>
Здесь доступны такие основные опции:
AllowOverride — указывает нужно ли читать .htaccess файлы из этой директории, это такие же файлы настроек и таким же синтаксисом. All — разрешать все, None — не читать эти файлы.
DocumentRoot — устанавливает из какой папки нужно брать документы для отображенияа пользователю
Options — указывает какие особенности веб-сервера нужно разрешить в этой папке. Например, All — разрешить все, FollowSymLinks — переходить по символическим ссылкам, Indexes — отображать содержимое каталога если нет файла индекса.
Require
Order — позволяет управлять доступом к директории. Принимает два значения Allow,Deny — разрешить для всех, кроме указанных или Deny,Allow — запретить для всех, кроме указанных. Теперь мы можем запретить доступ к директории для всех: Deny from all, а затем разрешить только для приложения от losst.pro: Allow from losst.pro.
Здесь все эти директивы не используются, поскольку нас устраивают значения по умолчанию, но вот в файлах .htaccess они могут быть очень полезны.
У нас остался файл /etc/apache2/ports.conf:
В нем только одна директива, Listen, которая указывает программе на каком порту нужно работать.
Последний файл /etc/apache2/envvars, его вы вряд ли будете использовать, в нем указанны переменные, которые можно использовать в других конфигурационных файлах.
Дальше поговорим немного о htacess. Совсем немного.
Настройка сервера Apache через htaccess
Файлы .htaccess позволяют настраивать веб-сервер на Ubuntu для поведения в определенной директории. Все инструкции, указанные в этом файле выполняются как бы они были обвернуты в тег <directory адрес_папки> если бы находились в основном файле.
Важно заметить, что для того, чтобы сервер читал инструкции из .htaccess настройки для этой папки в основном файле или файле виртуального хоста не должны содержать AllowOverride None, чтобы могли работать все настройки нужно AllowOverride All.
А в остальном, здесь может выполняться любая настройка сервера apache, от включения модулей, до обычного изменения доступа к папке. Поскольку все параметры мы уже рассмотрели просто приведем пару примеров:
Order Deny,Allow
Deny from all
Запрещает всем доступ к этой папке, важно применить, для папок с конфигурацией. /\.]+)/?$ product.php?id=$1 [L]
Но это очень обширная тема и выходит за рамки этой статьи.
Настройка модулей Apache
Как я уже говорил, Apache — модульная программа, ее функциональность можно расширять с помощью модулей. Все доступные модули загрузчики и конфигурационные файлы модулей находятся в папке /etc/apache/mods-available. А активированные в /etc/apache/mods-enable.
Но вам необязательно анализировать содержимое этих папок. Настройка Apache 2.4 с помощью добавления модулей выполняется с помощью специальных команд. Посмотреть все запущенные модули можно командой:
apache2ctl -M
Включить модуль можно командой:
sudo a2enmod имя_модуля
А отключить:
sudo a2dismod имя_модуля
После включения или отключения модулей нужно перезагрузить apache:
sudo systemctl restart apache2
Во время выполнения одной из этих команд создается или удаляется символическая ссылка на файл модуля с расширением load в директории mods-available. Можете посмотреть содержимое этого файла, там только одна строка. Например:
vi /etc/apache2/mods-available/deflate.load
Это к тому, что активировать модуль можно было просто добавив эту строчку в файл apache2.conf. Но принято делать именно так, чтобы избежать путаницы.
Настройки модулей находятся в той же папке, только в файле с расширением .conf вместо load. Например, посмотрим настройки того же модуля для сжатия deflate:
vi /etc/apache2/mods-available/deflate.conf
Файлы в папке conf-available, это такие же модули, только они установлены отдельно от apache, это может быть конфигурационные файлы для включения модуля php или любого другого языка программирования. Здесь работает все точно так же, только команды для включения и отключения этих модулей немного другие:
a2enconf имя_модуля
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/sites-available/. Для создания нового хоста достаточно создать файл с любым именем (лучше кончено с именем хоста) и заполнить его нужными данными. Обернуть все эти параметры нужно в директиву VirtualHost. Кроме рассмотренных параметров здесь будут использоваться такие:
- ServerName — основное имя домена
- ServerAlias
- ServerAdmin — электронная почта администратора
- DocumentRoot — папка с документами для этого домена
Например:
vi /etc/apache2/sites-available/test.site.conf
<VirtualHost *:80>
ServerName test.site
ServerAlias www.test.site
ServerAdmin webmaster@localhost
DocumentRoot /var/www/test.site/public_html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Виртуальные хосты, как и модули нужно активировать. Для этого есть специальные утилиты. Чтобы активировать наберите:
sudo a2ensite test.site
Здесь test. site — имя файла виртуального хоста. Для отключения тоже есть команда:
sudo a2dissite test.site
Настройка виртуальных хостов Apache завершена и на публичном сервере это все бы уже работало, но если вам нужна настройка Apache на домашней машине, то вы ваш новый сайт не откроется в браузере. Браузер не знает такого сайта. И откуда ему знать? DNS службы не могут ничего сообщить об этом доменном имени. Но в системе Linux мы можем сами указать ip адреса для доменных имен в файле /etc/hosts. Поэтому добавляем в конец файла такие строки:
vi /etc/hosts
127.0.0.1 test.site
127.0.0.1 www.test.site
Вот, ну теперь будет работать, открывайте браузер, проверяйте.
Выводы
Вот и все. Установка и настройка Apache linux завершена, вы можете использовать программу для размещения ваших сайтов. Более того, вы не просто настроили ее, вы разобрались со всеми подробностями и теперь знаете чуточку больше. Если у вас остались еще вопросы, пишите в комментариях!
Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.
Как настроить виртуальные хосты в Apache на Ubuntu 18.04/20.04
Каждый владелец VPS сталкивается с вопросом, как разместить несколько сайтов на одном сервере с одним IP-адресом. Если вы используете в качестве веб-сервера Apache, виртуальные хосты (virtual hosts) — верное решение для разделения ресурсов и отдельной конфигурации для каждого сайта.
Предварительная настройка
Все действия осуществляются на сервере через подключение по SSH. Перед тем как приступить к настройке виртуальных хостов, необходимо произвести настройку сервера.
Создание пользователя
По умолчанию после создания сервера для доступа к нему создаётся root пользователь. В целях безопасности не рекомендуем работать под суперюзером.
Чтобы создать пользователя, введите команду:
adduser userName
Где UserName — имя нового пользователя.
Система попросит ввести пароль для нового пользователя и дополнительную информацию:
Теперь установите права доступа, чтобы новый пользователь мог использовать команду sudo.
usermod -aG sudo UserName
Где UserName — имя созданного ранее пользователя.
Готово, новый пользователь создан. Завершите SSH-сеанс под root и подключитесь к серверу под новым пользователем.
Установка Ubuntu Apache
Чтобы выполнить действия ниже, у вас должен быть установлен Apache. Для полноценной работы сайта рекомендуем установить LAMP (Linux Apache MySQL PHP). Это минимальный набор ПО, который чаще всего используется для размещения и запуска сайта. Как установить LAMP, вы можете узнать в инструкции.
Подготовка доменов
Ваши домены должны быть привязаны к облачному серверу. Сделать это вы можете по инструкции.
Обратите внимание
В данной инструкции будут приведены примеры с доменами faq-reg.ru и support-faq.ru. В тех местах, где они будут встречаться, измените домены на свои.
Подготовка каталогов
Подготовим структуру каталогов. Рабочая директория Apache — /var/www. В данной директории мы будем создавать отдельные каталоги для каждого домена (виртуального хоста).
Чтобы создать каталоги, выполните команды:
sudo mkdir -p /var/www/faq-reg.ru/
sudo mkdir -p /var/www/support-faq.ru/
В этих каталогах будут храниться файлы вашего сайта. Далее необходимо установить права доступа к ним:
sudo chmod -R 755 /var/www
sudo chown -R $USER:$USER /var/www/faq-reg.ru/
sudo chown -R $USER:$USER /var/www/support-faq.ru/
Готово, структура каталогов и права доступа настроены. Далее подготовим демостраницы.
Создание демостраниц
Перед тем как настроить конфигурационный файл, для удобной проверки финального результата мы создадим демостраницу для каждого виртуальная хоста. В каждую папку мы поместим файл index.html, в котором будет строка с именем домена.
Для faq-reg.ru:
echo "<h2>faq-reg.ru</h2>" > /var/www/faq-reg.ru/index.html
Для support-faq. ru:
echo "<h2>support-faq.ru</h2>" > /var/www/support-faq.ru/index.html
Не забудьте заменить доменные имена на ваши.
Готово, теперь после настройки виртуальных хостов мы сможем проверить корректность их работы.
Создание конфигурационных файлов и настройка
Файл конфигурации Ubuntu Apache virtual hosts отвечает за обработку запросов к разным доменам. У Apache существует дефолтный файл конфигурации, который можно использовать в качестве шаблона. Его название может отличаться в зависимости от настроек сервера. В качестве примера мы обозначим название конфига как 000-default.conf. Для каждого виртуального хоста необходимо будет скопировать его, задать произвольное имя (рекомендуем использовать имя домена) и произвести определённые настройки. Обязательное условие — соблюдение расширения файла: .conf
Создание конфига для faq-reg.ru
-
1.
Скопируйте шаблон конфига для первого домена с помощью команды:
sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/faq-reg.ru.conf
Где 000-default.conf — название конфигурационного файла по умолчанию.
-
2.
Откройте созданный файл командой:
sudo nano /etc/apache2/sites-available/faq-reg.ru.conf
-
3.
В файле присутствует секция VirtualHost для обработки запросов на 80 порт (порт для HTTP-запросов). Заполните оставшиеся поля:
- ServerAdmin — укажите электронный адрес администратора;
- ServerName — укажите домен, для которого вы создаёте конфигурационный файл;
- ServerAlias — раскомментируйте эту строку: удалите решётку в начале строки. В ней укажите псевдоним домена. Часто используется вид www.domain.ru;
- DocumentRoot — укажите каталог домена, который вы создали на этапе подготовки;
- ErrorLog и CustomLog — упомяните домен в названии файла. Так вы сможете быстрее идентифицировать файлы логов;
- Directory — ещё раз укажите каталог домена, который вы создали на этапе подготовки.
Затем сохраните изменения в файле и закройте его:
-
4.
Настройка виртуального хоста для первого домена завершена. Скопируйте этот файл для второго домена с помощью команды:
sudo cp /etc/apache2/sites-available/faq-reg.ru.conf /etc/apache2/sites-available/support-faq.ru.conf
Не забудьте изменить faq-reg.ru.conf и support-faq.ru.conf на имена ваших доменов.
org/HowToStep»>
5.
-
6.
Заполните поля:
- ServerAdmin — укажите электронный адрес администратора;
- ServerName — укажите домен, для которого вы создаёте конфигурационный файл;
- ServerAlias — раскомментируйте эту строку: удалите решётку в начале строки. В ней укажите псевдоним домена. Часто используется вид www.domain.ru;
- DocumentRoot — укажите каталог домена, который вы создали на этапе подготовки;
- ErrorLog и CustomLog — упомяните домен в названии файла. Так вы сможете быстрее идентифицировать файлы логов;
- Directory — ещё раз укажите каталог домена, который вы создали на этапе подготовки.
Затем сохраните изменения и закройте файл:
org/HowToStep»>
7.
-
8.
Перезапустите Apache командой:
sudo service apache2 restart
Откройте файл для редактирования:
sudo nano /etc/apache2/sites-available/support-faq.ru.conf
Деактивируйте конфиг по умолчанию командой:
sudo a2dissite 000-default.conf
И активируйте созданные конфиги:
sudo a2ensite faq-reg.ru.conf
sudo a2ensite support-faq.ru.conf
Готово, создание и настройка виртуальных хостов завершена. Далее можем проверить результат.
Проверка работы виртуальных хостов
Если вы заранее привязали ваши домены к серверу и делегирование уже произошло, при переходе по домену должна открыться страница, которую мы создали на этапе «Создание демостраниц».
Если с момента изменения DNS прошло менее 24 часов и домен ещё не делегирован, увидеть результат вы можете, настроив локальные хосты в файле hosts. Подробнее в инструкции.
При переходе по домену faq-reg. ru:
При переходе по домену support-faq.ru:
Готово, файл index.html можно удалить. Далее вы можете загрузить файлы сайта в созданные директории.
Помогла ли вам статья?Да
раз уже
помогла
Установка и настройка Apache | Убунту
1. Обзор
Apache — это веб-сервер с открытым исходным кодом, который бесплатно доступен для серверов Linux.
В этом руководстве мы рассмотрим этапы настройки сервера Apache.
Чему вы научитесь
- Как настроить Apache
- Некоторая базовая конфигурация Apache
Что вам понадобится
- Сервер Ubuntu 16.04 LTS
- Secure Shell (SSH) доступ к вашему серверу
- Базовые знания командной строки Linux
Все готово? Давайте перейдем к следующему шагу!
Автор: Аден Падилья
2. Установка Apache
Чтобы установить Apache, установите последний метапакет apache2
, выполнив:
sudo подходящее обновление sudo apt установить apache2
После запуска команды все необходимые пакеты установлены, и мы можем проверить это, введя наш IP-адрес для веб-сервера.
Если вы видите страницу выше, это означает, что Apache был успешно установлен на вашем сервере! Давайте двигаться дальше.
3. Создание собственного веб-сайта
По умолчанию Apache поставляется с включенным базовым сайтом (тот, который мы видели на предыдущем шаге). Мы можем изменить его содержимое в /var/www/html
или настройки, отредактировав его файл виртуального хоста, найденный в /etc/apache2/sites-enabled/000-default.conf
.
Мы можем изменить способ обработки входящих запросов Apache и запустить несколько сайтов на одном сервере, отредактировав его файл Virtual Hosts.
Сегодня мы собираемся оставить конфигурацию виртуального хоста Apache по умолчанию, указывающую на www.example.com
, и настроить свою собственную на gci.example.com
.
Итак, давайте начнем с создания папки для нашего нового веб-сайта в /var/www/
, запустив
sudo mkdir /var/www/gci/
Здесь он называется gci
, но любое имя будет работать, если мы укажем его позже в файле конфигурации виртуальных хостов.
Теперь, когда у нас есть каталог, созданный для нашего сайта, давайте поместим в него файл HTML. Давайте зайдем в наш только что созданный каталог и создадим его, набрав:
.компакт-диск /var/www/gci/ нано index.html
Вставьте следующий код в файл index.html
:
<голова>Ubuntu рулит! название> голова> <тело> Я запускаю этот веб-сайт на сервере Ubuntu Server! тело>
Довольно круто, правда?
Теперь давайте создадим файл VirtualHost, чтобы он отображался при вводе gci.example.com
.
4. Настройка файла конфигурации VirtualHost
Мы начинаем этот шаг, заходя в каталог файлов конфигурации:
cd /etc/apache2/доступные сайты/
Поскольку Apache поставляется с файлом VirtualHost по умолчанию, давайте возьмем его за основу. ( gci.conf
используется здесь, чтобы соответствовать имени нашего поддомена):
sudo cp 000-default. conf gci.conf
Теперь отредактируйте файл конфигурации:
судо нано gci.conf
У нас должна быть наша электронная почта в ServerAdmin
, чтобы пользователи могли связаться с вами в случае возникновения какой-либо ошибки Apache:
ServerAdmin yourname@example.com
Мы также хотим, чтобы директива DocumentRoot
указывала на каталог, в котором размещены файлы нашего сайта:
DocumentRoot /var/www/gci/
Файл по умолчанию не имеет ServerName
директива, поэтому нам нужно добавить и определить ее, добавив эту строку под последней директивой:
имя_сервера gci.example.com
Это гарантирует, что люди попадут на правильный сайт вместо сайта по умолчанию, когда они введут gci.example.com
.
Теперь, когда мы закончили настройку нашего сайта, давайте сохраним и активируем его на следующем шаге!
5. Активация файла VirtualHost
После настройки нашего веб-сайта нам нужно активировать файл конфигурации виртуальных хостов, чтобы включить его. Мы делаем это, выполнив следующую команду в каталоге файла конфигурации:
sudo a2ensite gci.conf
Вы должны увидеть следующий вывод
Включение сайта gci. Чтобы активировать новую конфигурацию, вам нужно запустить: служба apache2 перезагрузить root@ubuntu-server:/etc/apache2/сайты-доступны#
Чтобы загрузить новый сайт, мы перезапускаем Apache, набрав:
служба apache2 перезагрузить
Конечный результат
Теперь настал момент истины, давайте наберем имя нашего хоста в браузере. Ура!
Дальнейшее чтение:
- Примеры VirtualHost
Было ли это руководство полезным?
Спасибо за отзыв.
Компиляция и установка — HTTP-сервер Apache версии 2.
4HTTP-сервер Apache версии 2.4
Доступные языки: de | ru | да | фр | я | ко | тр
Этот документ описывает компиляцию и установку HTTP-сервера Apache. только в Unix и Unix-подобных системах. Для составления и установка в Windows, см. Использование HTTP-сервера Apache с Microsoft Windows и компиляция Apache для Microsoft Windows. Для других платформ см. документацию по платформе.
Apache httpd использует libtool
и autoconf
для создания среды сборки, похожей на многие другие Open Source
проекты.
Если вы обновляете одну минорную версию до другой (для например, с 2.4.8 по 2.4.9), перейдите к разделу обновления.
- Обзор для нетерпеливый
- Требования
- Скачать
- Экстракт
- Настройка исходного дерева
- Сборка
- Установить
- Настроить
- Тест
- Модернизация
- Сторонние пакеты
См.
также- Настройка исходного дерева
- Запуск Apache httpd
- Остановка и перезапуск
- Комментарии
- Установка на Fedora/CentOS/Red Hat Enterprise Linux
sudo yum установить httpd sudo systemctl включить httpd sudo systemctl начать httpd
Более новые версии этих дистрибутивов используютdnf
вместоyum
. См. Документация проекта Fedora для заметок по платформе.- Установка в Ubuntu/Debian
sudo apt установить apache2 запуск службы sudo apache2
См. документацию Ubuntu для примечаний по конкретным платформам.
- Установка из исходников
Скачать Загрузите последнюю версию с http://httpd.apache.org/download.cgi. Экстракт $ gzip -d httpd- NN .tar. gz
$ tar xvf httpd- NN .tar
$ cd httpd- NNНастройка $ ./configure --prefix= ПРЕФИКС
Компиляция $ сделать
Установить $ сделать установить
Настроить $ vi ПРЕФИКС /conf/httpd.conf
Тест $ ПРЕФИКС /bin/apachectl -k start
NN необходимо заменить на текущую версию номер, а ПРЕФИКС необходимо заменить на путь файловой системы, под которым должен быть установлен сервер. Если ПРЕФИКС не указывается, по умолчанию
/usr/local/apache2
.Каждый раздел процесса компиляции и установки более подробно описано ниже, начиная с требований для компиляции и установки Apache httpd.
Ваша любимая платформа не упоминается здесь? Приходите помочь нам улучшить этот документ.
Для сборки Apache httpd существуют следующие требования:
- APR и APR-Util
- Убедитесь, что на вашем компьютере уже установлены APR и APR-Util.
ваша система. Если вы не используете или предпочитаете не использовать предоставленную системой
версии, загрузите последние версии как APR, так и APR-Util
из Apache APR, распаковать
их в
/httpd_source_tree_root/srclib/apr
и/httpd_source_tree_root/srclib/apr-util
(убедитесь, что в именах каталогов нет номеров версий; например, дистрибутив APR должен находиться в /httpd_source_tree_root/srclib/apr/) и использовать./configure
‘s--with-included-apr
вариант. На некоторых платформах вам, возможно, придется установить соответствующие пакеты-dev
, позволяющие httpd собирать против вашей установленной копии APR и APR-Util. - Perl-совместимая библиотека регулярных выражений (PCRE)
- Эта библиотека необходима, но больше не входит в состав httpd.
Загрузите исходный код с http://www.pcre.org,
или установите порт или пакет. Если ваша система сборки не может найти
скрипт pcre-config, установленный сборкой PCRE, укажите на него
используя параметр
--with-pcre
. На некоторых платформах возможно, вам придется установить соответствующий-dev
пакет, позволяющий httpd собираться против вашей установленной копии ПКРЕ. - Место на диске
- Убедитесь, что у вас есть не менее 50 МБ временного свободного места на диске. доступное пространство. После установки сервер занимает около 10 МБ дискового пространства. Фактическое место на диске требования будут значительно различаться в зависимости от выбранного вами параметры конфигурации, любые сторонние модули и, конечно же, размер веб-сайта или сайтов, которые у вас есть на сервере.
- Компилятор ANSI-C и система сборки
- Убедитесь, что у вас установлен компилятор ANSI-C. GNU C
компилятор (GCC) от Free Software Foundation (FSF)
Рекомендовано. Если у вас нет GCC
тогда хотя бы убедитесь, что компилятор вашего поставщика — ANSI
совместимый. Кроме того, ваш
PATH
должен содержать основные инструменты сборки, такие как, делают
. - Точное измерение времени
- Элементы протокола HTTP выражаются в виде времени
день. Итак, пришло время исследовать настройку какое-то время
средства синхронизации в вашей системе. Обычно
9Программы 0036 ntpdate или
xntpd
используются для этой цели, которые основаны на протоколе сетевого времени (NTP). См. НПТ домашняя страница для получения более подробной информации о программном обеспечении NTP и общедоступных серверы времени. - Перл 5 [ДОПОЛНИТЕЛЬНО]
- Для некоторых сценариев поддержки, таких как
apxs
илиdbmmanage
(которые написан на Perl) требуется интерпретатор Perl 5 (версии 5. 003 или новее достаточно). Если интерпретатор Perl 5 не найденнастройте скрипт
, вы не сможете использовать затронутые сценарии поддержки. Конечно, вы еще сможете собрать и использовать Apache httpd.
HTTP-сервер Apache можно загрузить с HTTP-сервера Apache.
сайт загрузки, в котором перечислены несколько зеркал. Большинство пользователей
Apache в unix-подобных системах будет лучше загружать и
компиляция исходной версии. Процесс сборки (описан ниже)
легко, и это позволяет настроить сервер в соответствии с вашими потребностями.
Кроме того, бинарные версии часто не соответствуют последним
исходные релизы. Если вы загружаете бинарный файл, следуйте инструкциям
в Файл INSTALL.bindist
внутри дистрибутива.
После загрузки важно убедиться, что у вас есть полная и неизмененная версия HTTP-сервера Apache. Этот можно выполнить, протестировав загруженный tarball на соответствие PGP-подпись. Подробности о том, как это сделать, доступны для скачивания странице и доступен расширенный пример, описывающий использование ПГП.
Извлечение исходного кода из tar-архива HTTP-сервера Apache — это простой вопрос распаковки, а затем распаковки:
$ gzip -d httpd- NN .tar.gz
$ tar xvf httpd- NN .tar
Это создаст новый каталог в текущем каталоге
содержащий исходный код дистрибутива. Вам следует cd
в этот каталог, прежде чем продолжить
компиляция сервера.
Следующим шагом является настройка исходного дерева Apache для вашего
конкретной платформы и личных требований. Это делается с помощью
сценарий настроить
включить в
корневой каталог дистрибутива. (Разработчики скачивают
неизданная версия исходного дерева Apache должна иметь autoconf
и libtool
установлены и будут
необходимо запустить buildconf
, прежде чем переходить к следующему
шаги. Для официальных выпусков это не требуется.)
Чтобы настроить исходное дерево, используя все параметры по умолчанию,
просто введите ./configure
. Чтобы изменить значение по умолчанию
варианты, настроить
принимает различные переменные
и параметры командной строки.
Самый важный параметр — адрес --префикс
где Apache должен быть установлен позже, потому что Apache должен быть
настроен для правильной работы этого местоположения. Более тонкая настройка
контроль расположения файлов возможен при дополнительном конфигурировании
параметры.
Также на этом этапе вы можете указать, какие функции вы
хотите включить в Apache, включив и отключив модули. Apache поставляется с широким набором модулей.
включены по умолчанию. Они будут составлены как
общие объекты (DSO), которые можно загрузить
или выгружается во время выполнения.
Вы также можете выбрать статическую компиляцию модулей, используя опцию --enable- модуль =статический
.
Дополнительные модули включаются с помощью --enable- модуль
опция, где модуль это имя модуля с mod_
удалена строка и преобразовано любое подчеркивание
до тире. Точно так же вы можете отключить модули с помощью --отключить- модуль
опция. Будьте осторожны, когда
используя эти параметры, поскольку configure
не может вас предупредить
если указанный вами модуль не существует; он просто проигнорирует
вариант.
Кроме того, иногда необходимо предоставить настроить сценарий
с дополнительной информацией о
расположение вашего компилятора, библиотек или заголовочных файлов. Это
делается путем передачи либо переменных среды, либо командной строки
опции настроить
. Для получения дополнительной информации см. настроить
справочную страницу. Или вызвать настроить
с помощью параметра --help
.
Для краткого ознакомления с вашими возможностями здесь
это типичный пример, который компилирует Apache для установки
дерево /sw/pkg/apache
с определенным компилятором и флагами
плюс два дополнительных модуля mod_ldap
и mod_lua
:
$ CC="pgcc" CFLAGS="-O2" \
./configure --prefix=/sw/pkg/apache \
--enable-ldap=shared \
--enable-lua=shared
При запуске configure
потребуется несколько минут для
проверить наличие функций в вашей системе и собрать
Makefiles, которые позже будут использоваться для компиляции сервера.
Подробная информация обо всех различных параметрах configure
приведена
доступно на странице руководства configure
.
Теперь вы можете собирать различные части, из которых состоит Apache. пакет, просто выполнив команду:
$ make
Пожалуйста, будьте терпеливы, так как базовая конфигурация требует несколько минут для компиляции, и время будет сильно различаться в зависимости от вашего оборудования и количества модулей, которые вы включили.
Теперь пришло время установить пакет под настроенным
установка ПРЕФИКС (см. параметр --prefix
выше), выполнив:
$ make install
Этот шаг обычно требует привилегий root, поскольку ПРЕФИКС обычно является каталогом с ограниченной записью. разрешения.
Если вы обновляете, установка не перезапишет ваши конфигурационные файлы или документы.
Далее вы можете настроить HTTP-сервер Apache, отредактировав
файлы конфигурации под ПРЕФИКС /conf/
.
$ vi ПРЕФИКС /conf/httpd.conf
См. руководство Apache в разделе ПРЕФИКС /docs/manual/
или посетите http://httpd.apache.org/docs/2.4/ для получения последней
версия этого руководства и полный справочник доступных директив конфигурации.
Теперь вы можете запустить свой Apache HTTP-сервер, сразу запустив:
$ ПРЕФИКС /bin/apachectl -k start
После этого вы сможете запросить свой первый документ
через URL-адрес http://localhost/
. Веб-страница, которую вы видите, расположена
под DocumentRoot
,
обычно это ПРЕФИКС /htdocs/
.
Затем снова остановите сервер,
работает:
$ ПРЕФИКС /bin/apachectl -k stop
Первым шагом в обновлении является чтение объявления о выпуске
и файл ИЗМЕНЕНИЙ
в исходном дистрибутиве на
найти любые изменения, которые могут повлиять на ваш сайт. При переключении между
основные выпуски (например, с 2.0 до 2.2 или с 2.2 до 2.4),
скорее всего, будут большие различия во времени компиляции и
конфигурации во время выполнения, которая потребует ручных корректировок. Все
модули также необходимо будет обновить, чтобы учесть изменения в
API модуля.
Обновление с одной минорной версии на другую (например, с
2.2.55 до 2.2.57) проще. сделать установить
процесс не перезапишет ни один из ваших существующих документов, журнал
файлы или файлы конфигурации. Кроме того, разработчики делают
все усилия, чтобы избежать несовместимых изменений в настроить параметры
, конфигурацию во время выполнения или
модуль API между младшими версиями. В большинстве случаев вы должны быть в состоянии
используйте идентичный configure
командная строка, идентичная
файл конфигурации, и все ваши модули должны продолжать
работа.
Чтобы обновить младшие версии, начните с поиска файла config.nice
в каталоге сборки
ваш установленный сервер или в корне исходного дерева для вашего
старая установка. Это будет содержать точное настроить
командную строку, которую вы использовали для
настроить исходное дерево. Затем, чтобы перейти с одной версии на
следующий, вам нужно только скопировать config.nice
файл в
исходное дерево новой версии, отредактируйте его, чтобы сделать любой желаемый
изменения, а затем запустите:
$ . /config.nice
$ make
$ make install
$ ПРЕФИКС /bin/apachectl -k graceful-stop
$ ПРЕФИКС /bin/apachectl -k start
--префикс
и
другой порт (путем настройки директивы Listen
) для проверки любого
несовместимости перед окончательным обновлением. Вы можете передать дополнительные аргументы в config.nice
,
который будет добавлен к вашему исходному configure
опции:
$ ./config.nice --prefix=/home/test/apache --with-port=90
Большое количество третьих сторон предоставляют свои собственные упакованные дистрибутивы HTTP-сервера Apache для установки на конкретные платформы. Сюда входят различные дистрибутивы Linux, различные сторонние пакеты Windows, Mac OS X, Solaris и многие другие более.