Настройка VDS на Ubuntu 14.04. Часть 6. Установка и настройка APACHE

Мы продолжаем рассказывать о пошаговой настройке VDS с операционной системой Ubuntu 14.04.
Предыдущая статья нашего цикла была посвящена веб-серверу Nginx, а сегодня мы поговорим об Apache.
Наряду с Nginx, Apache является одним из самых распространенных веб-серверов в мире и демонстрирует свою надежность уже не один десяток лет. Впрочем, подробнее о нем мы уже рассказывали в одной из предыдущих статей.
Для начинающих администраторов Apache может стать даже более подходящим выбором, чем его альтернативы — являясь гибким и мощным инструментом, Apache при этом достаточно прост в настройке и использовании.
Установка Apache
Для того чтобы установить веб-сервер Apache, мы будем использовать менеджер пакетов Ubuntu apt:
После завершения установки введите в адресной строке браузера IP-адрес Вашего сервера. Если установка прошла успешно, Вы увидите стандартное приветственное окно Apache:

На этом же этапе можно установить дополнительные необходимые модули.
Например, если Вам в дальнейшем потребуются инструменты для анализа работы сервера, рекомендуем установить модуль utils — он содержит полезные утилиты для тестирования и администрирования сервера.
Если Вам будет необходимо разделять права между пользователями, рекомендуем также установить модуль mpm-itk. При этом нужно будет настроить дополнительные параметры виртуальных хостов — информацию об этом Вы можете найти в открытых источниках сети.
В рамках данной инструкции мы не будем касаться установки и настройки данного модуля.
Для работы сервера с различными языками программирования (а также для расширения функционала сервера) можно установить библиотеки.
Если Ваш сайт использует PHP, необходимая библиотека устанавливается следующим образом:
При использовании python полезно расширение libapache2-mod-wsgi;
при использовании Rails and Rack — libapache2-mod-passenger.
Установка происходит аналогичным образом — просто замените наименование библиотеки в команде.
Теперь перейдем к непосредственной настройке Apache.
Настройка виртуальных хостов
Важной особенностью Apache является возможность создания виртуальных хостов, настраиваемых независимо друг от друга, что позволяет размещать на VDS-сервере сразу несколько сайтов. За конфигурацию каждого сайта будет отвечать конкретный виртуальный хост.
Даже если на начальном этапе Вы планируете размещать только один сайт на сервере, мы рекомендуем в любом случае использовать виртуальные хосты. Это обеспечит Вам удобство администрирования и обслуживания Вашего проекта, а в дальнейшем и легкость расширения при необходимости.
По умолчанию Apache содержит стандартный файл конфигурации 000-default.conf, который хранится в директории /etc/apache2/sites-available.
Файлы наших виртуальных хостов будут храниться здесь же, и мы сформируем их на основе 000-default.conf.
Однако сначала мы отключим стандартный файл конфигурации командой:
Теперь скопируем его содержимое в файл, который будет содержать настройки Вашего сайта.
В наших примерах в качестве имени сайта мы будем использовать site1, Вам необходимо заменить это значение на имя Вашего сайта.
Вы можете давать конфигурационным файлам любые названия, но мы рекомендуем обозначать их так, чтобы в дальнейшем Вы легко могли определить, к какому сайту относится конкретный файл.
Далее нам нужно отредактировать конфигурационный файл. Откроем его командой:
Приведем содержимое файла к следующему виду:
Поясним приведенные выше параметры.
Блок <VirtualHost> включает в себя набор директив, задающих настройки для конкретного виртуального хоста.
Имя этого хоста Вы указали в параметре ServerName — полное доменное имя Вашего сайта.
Далее следует директива DocumentRoot — она задает путь до директории, в которой хранятся файлы сайта site1 (все необходимые директории мы создадим позже).
Следующий параметр — блок <Directory>. Он задает настройки, которые будут применены для конкретной папки.
В данном случае:
- AllowOverride All — разрешение допускать настройки, заданные в .htaccess;
- Require all granted — доступ к каталогу разрешен всем.
В параметре ErrorLog мы указали расположение файла с логами ошибок.
В CustomLog — расположение файла с логами доступа.
Этого набора директив достаточно для функционирования виртуального хоста, хотя список не является исчерпывающим. Дополнительно могут указываться, например, ServerAdmin (e-mail администратора сервера), ServerAlias (альтернативное имя сайта), AssignUserID (пользователь; настройка этого параметра необходима при использовании mpm-itk) и др. Со списком всех возможных директив и их описанием можно ознакомиться на сайте Apache (информация на английском языке).
После указания всех необходимых параметров закройте файл, сохранив изменения.
Далее мы создадим все необходимые папки, которые мы прописали в конфигурационном файле, и установим права на них:
На этом этапе настройка виртуального хоста завершена, но желательно, конечно, проверить корректность его работы.
Для этого рекомендуем Вам создать index-файл в директории public_html:
Внесите в него любой самый простой html-код для проверки и сохраните документ.
Например:
Далее включите сайт следующей командой:
И выполните перезагрузку Apache:
Теперь необходимо ввести в браузере адрес сайта, виртуальный хост для которого Вы настраивали. Если все работает, как нужно, на экране будет отражено содержимое созданного Вами индексного файла.
Надеемся, все получилось 🙂
Модули Apache
Apache имеет множество разнообразных модулей, с помощью которых можно расширять его функциональность.
Список доступных модулей можно просмотреть в директории /etc/apache2/mods-available
Список уже включенных модулей — в директории /etc/apache2/mods-enabled
Перейти в директорию можно командой cd, например:
Чтобы просмотреть содержимое текущего каталога, наберите:
Для включения и выключения нужных Вам модулей используйте команды a2enmod и a2dismod.
Например, Вы можете включить CGI-скрипты следующей командой:
С информацией о каждом модуле можно ознакомиться на сайте Apache.
Команды для управления сервером Apache
Для запуска веб-сервера используйте команду:
Если Вам требуется сделать «мягкую» перезагрузку, то есть перезапуск без завершения всех процессов, вводите:
Для остановки веб-сервера существует следующая команда:
Мы надеемся, что информация в этой статье оказалась для Вас полезной и помогла справиться с установкой и настройкой веб-сервера Apache.
Если у Вас возникли вопросы, спрашивайте в комментариях, мы будем рады Вам помочь.
Источник
Apache настройка при установке
Веб-сервер — это программа, которая предназначена для обработки запросов к сайтам и отправки пользователям страниц веб-сайтов. Самый популярный пример веб-сервера это Apache.
PHP — это язык программирования. Также называется среда для выполнения скриптов, написанных на PHP. В операционной системе, в том числе и Windows, PHP может быть установлен самостоятельно, без веб-сервера. В этом случае программы (скрипты) на PHP можно запускать из командной строки. Но веб-приложения очень часто используют PHP, данный интерпретатор стал, фактически, стандартом веб-серверов и поэтому они почти всегда устанавливаются вместе.
MySQL — это система управления базами данных (СУБД). Это также самостоятельная программа, она используется для хранения данных, поиска по базам данных, для изменения и удаления данных. Веб-приложения нуждаются в постоянном хранилище, поэтому для веб-сервера дополнительно устанавливается и СУБД. Кстати, вполне возможно, что вы слышали про MariaDB — это тоже СУБД. Первой появилась MySQL, а затем от неё ответвилась MariaDB. Для веб-приложений обе эти СУБД являются взаимозаменяемыми, то есть никакой разницы нет. В этой инструкции я буду показывать установку на примере MySQL, тем не менее если вы хотите попробовать новую MariaDB, то смотрите статью «Инструкция по установке веб-сервера Apache c PHP, MariaDB и phpMyAdmin в Windows».
Что касается phpMyAdmin, то это просто скрипт на PHP, который предназначен для работы с базами данных — наглядно выводит их содержимое, позволяет выполнять в графическом интерфейсе такие задачи как создавать базы данных, создавать таблицы, добавлять, изменять и удалять информацию и т. д. По этой причине phpMyAdmin довольно популярен, хотя и не является обязательной частью веб-сервера.
Особенность Apache и других компонентов веб-сервера в том, что их корни уходят в Linux. И эти программы применяют в своей работе основные концепции этой операционной системы. Например, программы очень гибки в настройке — можно выполнить установку в любую папку, сайты также можно разместить в любой папке, в том числе на другом диске, не на том, где установлен сам веб-сервер. Даже файлы журналов можно вынести на третий диск и так далее. У веб-сервера много встроенных модулей — можно включить или отключить их в любом сочетании, можно подключить внешние модули. Можно создать много сайтов на одном веб-сервере и для каждого из них установить персональные настройки. Но эта гибкая настройка выполняется через текстовые файлы — именно такой подход (без графического интерфейса) позволяет описать любые конфигурации
Не нужно этого боятся — я расскажу, какие файлы нужно редактировать и что именно в них писать.
Мы не будем делать какие-то комплексные настройки — наша цель, просто установить веб-сервер на Windows. Тем не менее было бы странно совсем не использовать такую мощь в настройке. Мы разделим сервер на две директории: в первой будут исполнимые файлы, а во второй — данные (файлы сайтов и баз данных). В будущем, когда возникнет необходимость делать резервные копии информации или обновлять веб-сервер, вы поймёте, насколько удобен этот подход!
Мы установим сервер в отдельную директорию. Для этого в корне диска C:\ создайте каталог Server. В этом каталоге создайте 2 подкаталога: bin (для исполнимых файлов) и data (для сайтов и баз данных).
Перейдите в каталог data и там создайте подпапки DB (для баз данных) и htdocs (для сайтов).
Перейдите в каталог C:\Server\data\DB\ и создайте там пустую папку data.
Для работы всех компонентов веб-сервера необходим файл «Visual C++ Redistributable for Visual Studio 2015-2019» — это официальный файл от Microsoft. Чтобы его скачать перейдите по ссылке. После скачивания, запустите этот файл и выполните установку.
Подготовительные действия закончены, переходим к установке компонентов веб-сервера.
Как установить Apache на Windows
Перейдите на сайт apachelounge.com/download и скачайте .zip архив с веб-сервером:
Распакуйте папку Apache24 из этого архива в C:\Server\bin\.
Перейдите в каталог C:\Server\bin\Apache24\conf\ и откройте файл httpd.conf любым текстовым редактором.
В нём нам нужно заменить ряд строк.
Сохраняем и закрываем файл. Всё, настройка Apache завершена! Описание каждой изменённой директивы вы найдёте на этой странице.
Откройте командную строку (это можно сделать нажав одновременно клавиши Win+x).
Выберите там Windows PowerShell (администратор) и скопируйте туда:
Если поступит запрос от файервола в отношение Apache, то нажмите Разрешить доступ.
Теперь вводим в командную строку:
И нажмите Enter.
Теперь в браузере набираем http://localhost/ и видим следующее:
Это означает, что веб-сервер работает. Чтобы увидеть там файлы, добавьте их в каталог c:\Server\data\htdocs\ — это главная папка для данных сервера, где будут размещаться все сайты.
Как установить PHP на Windows
PHP 8 скачайте со страницы windows.php.net/download/. Выберите версию Thread Safe, обратите внимание на битность. Если вы затрудняетесь, какой именно файл скачать, то посмотрите эту заметку.
В папке c:\Server\bin\ создаём каталог PHP и копируем в него содержимое только что скаченного архива.
В файле c:\Server\bin\Apache24\conf\httpd.conf в самый конец добавляем строчки:
И перезапускаем Apache:
В каталоге c:\Server\data\htdocs\ создаём файл с названием i.php, копируем в этот файл:
В браузере откройте ссылку http://localhost/i.php. Если вы видите что-то похожее, значит PHP работает:
Настройка PHP 8
Настройка PHP происходит в файле php.ini. В zip-архивах, предназначенных для ручной установки и для обновлений, php.ini нет (это сделано специально, чтобы при обновлении случайно не удалить ваш файл с настройками). Зато есть два других, которые называются php.ini-development и php.ini-production. Любой из них, при ручной установке, можно переименовать в php.ini и настраивать дальше. На локалхосте мы будем использовать php.ini-development.
Открываем файл php.ini любым текстовым редактором, ищем строчку
и заменяем её на
Теперь найдите группу строк:
и замените её на:
теперь раскомментируйте эту группу строк:
Этими действиями мы включили расширения. Они могут понадобиться в разных ситуациях для разных скриптов. Сохраняем файл и перезапускаем Apache.
Материалы по дополнительной настройке, в том числе подключение поддержки PERL, Ruby, Python в Apache (только для тех, кому это нужно):
- Как тестировать отправку писем в PHP на Windows
- Настройка веб-сервера Apache для запуска программ Ruby на Windows
- Настройка веб-сервера Apache для запуска программ Perl на Windows
- Как настроить веб-сервер Apache на запуск Python в Windows
Как установить MySQL в Windows
Бесплатная версия MySQL называется MySQL Community Server. Её можно скачать на странице https://dev.mysql.com/downloads/mysql/. На этой же странице есть установщик в виде исполнимого файла, но я рекомендую скачать ZIP-архив.
На странице скачивания нам предлагают зарегистрироваться или войти в существующую учётную запись — но это делать необязательно. Достаточно нажать на ссылку «No thanks, just start my download».
В каталог c:\Server\bin\ распаковываем файлы из только что скаченного архива. Распакованная папка будет называться примерно mysql-8.0.17-winx64 (зависит от версии), переименуйте её в mysql-8.0.
Заходим в эту папку и создаём там файл my.ini. Теперь открываем этот файл любым текстовым редактором и добавьте туда следующие строки:
Сохраните и закройте его.
Настройка завершена, но нужно ещё выполнить инициализацию и установку, для этого открываем командную строку от имени администратора и последовательно вводим туда:
По окончанию этого процесса в каталоге C:\Server\data\DB\data\ должны появиться автоматически сгенерированные файлы.
Теперь служба MySQL будет запускаться при каждом запуске Windows.
Как установить phpMyAdmin в Windows
Сайт для скачивания phpMyAdmin: phpmyadmin.net.
Прямая ссылка на самую последнюю версию: phpMyAdmin-latest-all-languages.zip.
В каталог c:\Server\data\htdocs\ копируем содержимое только что скаченного архива. Переименовываем эту папку в phpmyadmin.
В каталоге c:\Server\data\htdocs\phpmyadmin\ создаём файл config.inc.php и копируем туда:
В качестве имя пользователя вводим root. Поле пароля оставляем пустым.
Заключение
Вот и всё — теперь у вас есть свой персональный локальный веб-сервер на своём домашнем компьютере.
Если вдруг у вас что-то не получилось, то скорее всего вы пропустили какой-то шаг или сделали его неправильно — попробуйте всё сделать в точности по инструкции. Если проблема осталась, то ознакомьтесь со справочным материалом «Ошибки при настройке и установке Apache, PHP, MySQL/MariaDB, phpMyAdmin» и если даже он не помог, то напишите о своей ошибке в комментарии.
Большое количество материалов по Apache на русском языке специально для Windows вы найдёте на этой странице.
Источник
Установка и настройка сервера 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. Вообще говоря, можно было бы обойтись без этих папок, взять все и по старинке свалить в один файл, и все бы работало, но сейчас так никто не делает.
Сначала давайте рассмотрим главный файл конфигурации:

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 — устанавливает, какие пользователи имеют доступ к этому каталогу. 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 для поведения в определенной директории. Все инструкции, указанные в этом файле выполняются как бы они были обвернуты в тег <directory адрес_папки> если бы находились в основном файле.
Важно заметить, что для того, чтобы сервер читал инструкции из .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/sites-available/. Для создания нового хоста достаточно создать файл с любым именем (лучше кончено с именем хоста) и заполнить его нужными данными. Обернуть все эти параметры нужно в директиву VirtualHost. Кроме рассмотренных параметров здесь будут использоваться такие:
- ServerName — основное имя домена
- ServerAlias — дополнительное имя, по которому будет доступен сайт
- ServerAdmin — электронная почта администратора
- DocumentRoot — папка с документами для этого домена

<VirtualHost *:80>
ServerName test.site
ServerAlias www.test.site
ServerAdmin webmaster@localhost
DocumentRoot /var/www/test.site/public_html
ErrorLog $/error.log
CustomLog $/access.log combined
</VirtualHost>
Виртуальные хосты, как и модули нужно активировать. Для этого есть специальные утилиты. Чтобы активировать наберите:
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 завершена, вы можете использовать программу для размещения ваших сайтов. Более того, вы не просто настроили ее, вы разобрались со всеми подробностями и теперь знаете чуточку больше. Если у вас остались еще вопросы, пишите в комментариях!
Источник
Устранение неполадок установки и настройки Apache
Apache – это популярный веб-сервер с открытым исходным кодом, который отличается гибкостью, производительностью и широкой поддержкой. Данный мануал ознакомит вас с общими процедурами по поддержке Apache, включая управление сервисом, работу с виртуальными хостами и редактирование конфигураций.
Примечание: Мануал предназначен для пользователей, которые работают с Apache в Ubuntu. Если вы используете CentOS или другой дистрибутив RHEL, обратитесь к мануалу Установка LAMP stack на CentOS 7.
Каждый раздел может использоваться независимо от других, поэтому вы можете пропустить разделы, которые вам не нужны. Все условные значения в командах выделены красным; вместо этих значений вы можете подставить свои данные.
Каждый раздел предлагает ссылки на другие руководства, с которыми можно проконсультироваться.
Установка Apache
Чтобы установить сервис Apache, обновите индекс пакетов и запустите следующую команду:
sudo apt-get update
sudo apt-get install apache2
Автозагрузка Apache
Сервис Apache запускается автоматически. Если вы хотите изменить это поведение, введите:
sudo systemctl disable apache2.service
Чтобы снова добавить Apache в автозагрузку, введите:
sudo systemctl enable apache2.service
Управление сервисом Apache
Чтобы остановить сервер Apache, введите следующую команду:
sudo systemctl stop apache2
Чтобы запустить сервер Apache, введите:
sudo systemctl start apache2
Чтобы остановить сервис и запустить его снова, введите:
sudo systemctl restart apache2
Если вы изменили конфигурацию, вы можете перезагрузить Apache в текущей сессии. Введите следующую команду:
sudo systemctl reload apache2
Проверка состояния Apache
Чтобы проверить состояние Apache, введите команду:
sudo systemctl status apache2
Эта команда сообщит, работает ли Apache и покажет вам последние несколько строк логов.
Создание корневого каталога для статического сайта
При создании сайтов на Apache разработчики часто используют виртуальные хосты – это хосты, которые обслуживают отдельные сайты или домены. Для этого нужно создать document root, каталог верхнего уровня, который Apache проверяет при обслуживании контента.
sudo mkdir -p /var/www/example.com/public_html
Передайте права на каталог пользователю с доступом к sudo.
sudo chown -R $USER:$USER /var/www/example.com/public_html
Предоставьте остальным пользователям права на чтение контента:
find /var/www -type d -exec chmod 775 <> \;
Помните, что права доступа должны меняться в соответствии с ситуацией.
Создание корневого каталога для динамических файлов
Если ваш сайт использует динамические модули типа PHP, создайте каталог document root для этих файлов:
sudo mkdir -p /var/www/example.com/public_html
Передайте права на каталог пользователю sudo и группе www-data:
sudo chown -R 8host:www-data /var/www/example.com/public_html
Изменение конфигурации
При работе с виртуальными хостами необходимо изменить параметры конфигурации и добавить данные о домене, чтобы сервер Apache мог правильно реагировать на запросы.
Откройте файл виртуального хоста:
sudo nano /etc/apache2/sites-available/example.com.conf
Измените следующие строки:
ServerAdmin admin@example.com
ServerName example.com
ServerAlias www.example.com
DocumentRoot /var/www/example.com/public_html
После изменения файл будет выглядеть так:
<VirtualHost *:80>
ServerAdmin admin@example.com
ServerName example.com
ServerAlias www.example.com
DocumentRoot /var/www/example.com/public_html
ErrorLog $/error.log
CustomLog $/access.log combined
</VirtualHost>
Прежде чем сохранить файл, убедитесь, что в директивах нет ошибок.
Включение и отключение конфигурационных файлов
Виртуальные хосты
Чтобы включить виртуальный хост, введите:
sudo a2ensite example.com.conf
Чтобы отключить конфигурационный файл (в данном примере это стандартный виртуальный хост):
sudo a2dissite 000-default.conf
Модули
Чтобы включить модули из каталога /etc/apache2/mods-available, введите:
sudo a2enmod example_mod
Чтобы отключить конкретный модуль:
sudo a2dismod example_mod
Конфигурационные файлы
Чтобы включить конфигурационные файлы из каталога /etc/apache2/conf-available (файлы, не связанные с виртуальными хостами), введите:
sudo a2enconf example-conf
Чтобы отключить файл, введите:
sudo a2disconf example-conf
Тестирование конфигурации
Каждый раз, когда вы вносите изменения в конфигурационные файлы Apache, обязательно выполните следующую команду, чтобы проверить наличие синтаксических ошибок:
sudo apache2ctl configtest
Важные файлы и каталоги Apache
Контент
Каталог /var/www/html хранит весь контент сайта (это корневой каталог сайта). Вы можете изменить стандартные настройки Apache и указать другие каталоги в var/www.
Конфигурация сервера
- /etc/apache2: конфигурационный каталог Apache (здесь хранятся все конфигурационные файлы веб-сервера).
- /etc/apache2/apache2.conf: главный конфигурационный файл веб-сервера, в котором находятся все глобальные параметры. Все остальные файлы загружаются через этот файл. Также тут хранятся директивы FollowSymLinks, которые отвечают за включение и отключение конфигурационных файлов.
- /etc/apache2/sites-available/: здесь находятся все виртуальные хосты (в том числе и отключенные). В этом каталоге происходят все изменения в настройке виртуального хоста. Эти файлы включаются с помощью команды a2ensite.
- /etc/apache2/sites-enabled/: здесь хранятся файлы включенных виртуальных хостов. При запуске или перезагрузке Apache читает конфигурационные файлы и ссылки в этом каталоге, чтобы собрать полную конфигурацию.
- /etc/apache2/conf-available и /etc/apache2/conf-enabled: работают по тому же принципу, что и sites-available и sites-enabled. Эти каталоги предназначены для хранения фрагментов конфигурации, которые не входят в виртуальные хосты.
- /etc/apache2/mods-available и /etc/apache2/mods-enabled: эти каталоги работают аналогичным образом. Они предназначены для хранения модулей. В них находятся файлы двух типов: файлы с расширением .load загружают модули, а файлы .conf хранят их конфигурации.
- /var/log/apache2/access.log – это лог, который регистрирует все запросы Apache (если в конфигурации веб-сервера не сказано другого).
- /var/log/apache2/error.log – это лог ошибок. Настроить уровень логирования можно с помощью параметра LogLevel в /etc/apache2/apache2.conf.
Другой способ доступа к информации о компонентах Apache – через journald. Этот инструмент собирает информацию логов приложений и ядра. Чтобы просмотреть записи для модуля Apache, введите:
sudo journalctl -u apache2
Заключение
Данный мануал перечислил общие процедуры по поддержке сервера Apache. Чтобы узнать больше о работе с Apache, ознакомьтесь со следующими руководствами:
Источник
Apache: установка и настройка веб-сервера
Веб-сервер – программа, которая запущена на локальной или удаленной машине, и главное её предназначение – позволять пользователю просматривать веб-документы. Когда в адресной строке вводится адрес сайта, при нажатии клавиши Enter браузер формирует некий запрос, направленный удаленному компьютеру — веб-серверу.
Apache HTTP-сервер (сокращение от англ. a patchy server) – одна из наиболее популярных и распространенных программ, созданных для веб-разработчиков и администраторов интернет-ресурсов. По данным независимых исследователей, Apache установлен на 50% компьютеров всех пользователей HTTP-серверов.
Главными преимуществами Apache являются стабильность, быстродействие и гибкость, и обусловлены они модульной организацией, а также тем, что разработку ведёт открытая группа программистов, хоть и под официальным названием Apache Software Foundation.
Apache поддерживает огромное количество операционных систем и аппаратных платформ, и довольно часто его используют под управлением операционной системы Windows. Немаловажно и то, что данный web-сервер распространяется совершенно бесплатно.
О том, как установить сервер Apache для операционной системы Windows 7, пойдет речь в данной статье.
Установка Apache
В первую очередь необходимо скачать последнюю версию дистрибутива Apache без поддержки SSL и запустить установку. В приветственном окне нужно кликнуть на «Next», прочесть лицензионное соглашение разработчика и подтвердить свое согласие с ним.
Затем, в окне установки необходимо заполнить поля так, как показано на картинке ниже, а в поле «Administrator’s Email Address» указать адрес своей электронной почты, кликнуть «Next» и установить переключатель в положение «Custom».
Далее, переходим к следующему шагу процесса «установка Apache». По умолчанию веб-сервер производит инсталляцию в папку C:Program FilesApache Software FoundationApache 2.2.
Далее необходимо создать директорию www на диске C и указать её в качестве установочной папки для Apache, кликнуть «Next» в этом и «Install» в следующем окне. Когда установка закончится, нажмите на «Finish».
Если все прошло успешно, в трее должен появиться значок управления веб-сервером Apache. Остановить и перезагрузить его можно, кликнув на значке левой кнопкой мыши.
Кликнув по тому же значку правой кнопкой мыши, можно перейти к различным системным службам операционной системы или открыть монитор Apache.
Для того чтобы проверить работает ли установленный сервер Apache, наберите в адресной строке вашего браузера http://localhost
Если появилась страница с воодушевляющей надписью «It works!», значит, установка Apache прошла успешно, и он функционирует правильно.
Базовая настройка веб-сервера
Хоть Apache и является весьма удобным и исключительно надёжным, не все готовы его использовать как локальный сервер по ряду причин, и основная — отсутствие даже в среде Microsoft Windows какого-либо графического конфигуратора, что довольно непривычно для большинства пользователей.
Настройка сервера производится с помощью ручного редактирования конфигурационного файла httpd.conf. Однако, вопреки представлениям о непонятности и сложности данного процесса, ничего сложного в данной операции нет по двум причинам: во-первых, для того, чтобы сделать из только что установленного Apache сервер, который настроен для приемлемой и комфортной работы, в файле конфигурации нужно поменять совсем немного данных, а во-вторых — комментарии httpd.conf содержат немало полезной информации, необходимой для того, чтобы разобраться с настройкой.
Что необходимо?
- Запустить Apache под платформой Windows 7;
- Хранить в удобной для пользователя директории файлы будущего сайта (например, C:www);
- Не испытывать проблем с кодировкой, а в частности — с отображением кириллицы;
- Возможность работать с несколькими сайтами одновременно.
Чтобы успешно решить эти проблемы, зайдите в папку с установленным Apache, найдите и откройте в подпапке conf файл httpd.conf. Обратите внимание, что строки, начинающиеся с «решётки», являются текстовыми комментариями, а в качестве настроек веб-сервера использованы строки, в начале которых значок «решётки» отсутствует.
Для начала нужно выполнить настройку той директории, которая будет использоваться сервером в качестве папки веб-сайта. Найдите в тексте строку, которая начинается с DocumentRoot. Данная директива определяет, какая папка будет являться корневой.
Исправьте её на DocumentRoot “C:/www”. Следует уточнить, что слэши в этом файле должны быть наклонены вправо, а не влево, как, вероятно, уже привыкли пользователи Windows. После вышеуказанных манипуляций, проблема с месторасположением вашего сайта решена.
Далее необходимо установить для директории правила безопасности. В Apache для этой цели используется директива Directory:
Список используемых параметров:
Options. Возможны следующие варианты:
- Includes – использование SSI разрешено;
- IncludesNOEXEC – использование SSI разрешено с ограничениями (не допускаются #include и #exec);
- Indexes – разрешено использование индексных файлов, и если URL-адрес указывает на директорию сайта (например, www.domain.ru/dir/), в которой не существует индексного файла, будет показано содержимое данной директории, а если этой опции нет – выдается оповещение о том, что доступ запрещён;
- ExecCGI – выполнение скриптов CGI разрешено;
- FollowSymLinks – сервер следует по имеющимся символическим ссылкам директории (используется в Unix-системах);
- SymLinksIfOwnerMatch – сервер следует по имеющимся символическим ссылкам директории лишь в том случае, если целевой файл имеет одного владельца со ссылкой;
- All – все вышеописанное вместе разрешено;
- None – все вышеописанное вместе запрещено;
- MultiViews – возможность подбора определенного контента и его выдачи в зависимости от предпочтений браузера (даже если включено все (Options All). Указывается отдельно).
AllowOverride. Варианты:
- AuthConfig – позволяет использовать директивы для авторизации;
- FileInfo – разрешает использование директив для работы с различными типами документов;
- Indexes – разрешает использование директив для работы с файлами индексации;
- Limit – разрешает использование директив для определения доступа к хосту;
- Options – разрешает использование директив для работы с определенными специфическими функциями директорий;
- All – все вышеуказанное вместе;
- None – ничего из вышеуказанного вместе.
Order. Варианты:
- Deny, Allow – Deny определяется перед директивой Allow, доступ разрешен по умолчанию, кроме хостов, которые указаны в следующей после Deny from строке;
- Allow,Deny – Allow определяется перед директивой Deny, доступ запрещен по умолчанию, кроме хостов, которые указаны в следующей после Allow from строке;
- Mutual-failure – разрешен доступ только таких хостов, которые отсутствуют в Deny и присутствуют в Allow.
На основе всего вышесказанного, попробуйте настроить ваш сервер. В файле httpd.conf директива Directory по умолчанию существует сразу в двух экземплярах — <Directory/> и <Directory «корневая директория вашего сайта»>. Первый вариант трогать не следует, поэтому во втором установите параметры следующим образом:
Говоря другими словами, для папки C:/www и всех её подпапок выбраны следующие параметры:
- Из возможной функциональности имеющегося сервера разрешены индексы в директориях и переходы по символическим ссылкам;
- Возможность параметрического переопределения с помощью файлов .htaccess полностью отсутствует, однако учитывая то, что вы имеете полный доступ к серверу, она не является актуальной – все можно настроить через httpd.conf;
- Доступ к веб-серверу разрешен со всех хостов.
Теперь, сохраните файл httpd.conf и перезапустите Apache с помощью Apache Monitor либо командой apache –k restart в командной строке. Настройка корневой папки сайта закончена.
Следует проверить, правильно ли вы всё сделали. Создайте простейшую веб-страницу в папке C:www, откройте ваш браузер и введите http://127.0.0.1/ваша_созданная_страница. Страницы должна открыться. В ином случае необходимо тщательно проверить все изменения в файле httpd.conf на правильность.
Если страница успешно открылась, есть вероятность, что вместо кириллических символов вы увидите нечитаемые символы. Отображаться они могут по двум причинам. Во-первых, веб-сервер предоставляет вашему браузеру, который запросил страницу, кодировку по умолчанию. Во-вторых, как ни странно, кодировка эта кириллической не является.
Если пресловутый Internet Explorer в подобных случаях определяет кодировку из самой страницы, то, к примеру, Mozilla Firefox и Opera к подобным действиям склонности совершенно не имеют, и способ выставления кодировки в браузере вручную едва ли можно назвать удобным. Следовательно, необходимо настроить Apache на выдачу по умолчанию необходимой кодировки.
Найдите в файле httpd.conf строку, которая начинается на AddDefaultCharset. Скорее всего, там указана кодировка ISO-8859-1, в которой отсутствуют кириллические символы. Поменяйте ISO-8859-1 на windows-1251, сохраните файл и перезапустите Apache. Теперь корректное отображение русского языка на вашем сайте будет работать в любом браузере.
В сервере Apache достаточно просто настроить работу с несколькими сайтами. Адреса, которые можно использовать для них — 127.0.0.2, 127.0.0.3 и т.д. При этом по сети виден будет только тот, который является сайтом по умолчанию (127.0.0.1), однако для локальной работы это не является критичным. Раздел файла httpd.conf, в котором производится настройка всего необходимого для этого, находится в самом конце и именуется VirtualHosts.
Для того чтобы добавить дополнительный сайт, создайте директорию, использующуюся в качестве его корневой, к примеру, C:www2. Предположив, что сайт будет откликаться на адрес 127.0.0.2, дайте ему имя site911 и в самом конце раздела VirtualHosts добавьте следующие строки:
Перезапустите сервер Apache. Набрав в адресной строке браузера 127.0.0.1, вы попадёте на ваш первый локальный сайт, а набрав 127.0.0.2 – на второй локальный сайт. Следует иметь в виду, что внутри каждого контейнера VirtualHosts могут использоваться абсолютно любые директивы веб-сервера Apache, благодаря чему можно каждый сайт настраивать наидетальнейшим образом.
Установка и настройка завершена, и теперь вы можете полноценно приступить к изучению работы сервера Apache на практике.
Если же вы решили вплотную заняться администрированием веб-сайтов, следующим вашим шагом должно стать изучение связки Apache PHP MySQL, ведь без системы управления базами данных, а также без поддержки одного из самых распространенных языков веб-программирования и веб-инструмента для администрирования системы MySQL не обходится ни один сервер на просторах всемирной сети. Как говорится, «тяжело в учении, но легко в бою».
Источник