Меню

Apache настройка для чайников



Apache настройка для чайников

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

  1. Запустить самый популярный веб-сервер под самой популярной платформой – Windows.
  2. Хранить файлы сайта в той директории, в которой нам это удобно, – пусть это будет C:\www.
  3. Не иметь проблем с кодировками, в первую очередь – с отображением кириллицы.
  4. Вполне возможно – одновременно работать с несколькими сайтами.

Попробуем решить все эти проблемы. Заходим туда, где установлен Apache. Находим и открываем файл httpd.conf – он находится в поддиректории conf. Здесь необходимо напомнить, что все строки этого файла, начинающиеся с «решетки» (#), существуют только в качестве текстовых комментариев, в качестве настроек сервера же используются строки, «решетки» в начале не имеющие. Сначала выполняем настройку директории, которая будет выдаваться веб-сервером в качестве корневой директории сайта. Ищем в тексте директиву DocumentRoot – строку, начинающуюся на DocumentRoot. Эта директива определяет, какая директория будет сопоставляться с корневой директорией сайта. Исправляем ее на DocumentRoot «C:/www» (следует отметить – здесь и далее в пути используются слэши, наклоненные вправо, а не влево, как привыкли пользователи Windows). Проблема с расположением сайта в нужном месте решена.

Далее устанавливаем для нее правила безопасности. Для этого в Apache используется директива Directory. Используется она следующим образом:

Options функции сервера
AllowOverride варианты
Order варианты

Список используемых параметров следующий.

Options – определяет, какие функции сервера будут доступны. Возможны следующие варианты:

  • Includes – разрешено использование SSI (Server-Side Includes);
  • IncludesNOEXEC – разрешено использование SSI с ограничениями (не допускаются #exec и #include);
  • Indexes – разрешено использование индексных файлов, причем если URL указывает на директорию на сайте (например, www.domain.ru/dir/), в которой нет индексного файла, то будет показываться содержимое этой директории, если же этой опции нет – выдается «доступ запрещен»;
  • ExecCGI – разрешено выполнение скриптов CGI;
  • FollowSymLinks – сервер следует по символическим ссылкам в директории (имеет смысл в Unix);
  • SymLinksIfOwnerMatch – то же самое, но только в том случае, если целевой файл имеет того же владельца, что и ссылка;
  • All – все вышеописанное вместе;
  • None – ничего из вышеописанного;
  • MultiViews – возможность подбора соответствующего контента и его выдачи в зависимости от предпочтений клиента (браузера) – указывается отдельно, даже если включено все (Options All).

AllowOverride – определяет, какие директивы из файлов .htaccess могут преобладать над такими же, указанными в httpd.conf. Варианты:

  • AuthConfig – позволяет использовать директивы авторизации;
  • FileInfo – позволяет использовать директивы для работы с типами документов;
  • Indexes – позволяет использовать директивы для работы с индексными файлами;
  • Limit – позволяет использовать директивы для определения доступа к хосту;
  • Options – позволяет использовать директивы для работы со специфическими функциями директорий;
  • All – все вышеуказанное;
  • None – ничего из вышеуказанного.

Order – устанавливает правила доступа к серверу. Варианты:

  • Deny,Allow – директива Deny определяется перед Allow, доступ по умолчанию разрешен, кроме хостов, указанных в следующей строке после Deny from.
  • Allow,Deny – директива Allow определяется перед Deny, доступ по умолчанию запрещен, кроме хостов, указанных в следующей строке после Allow from.
  • Mutual-failure – разрешен доступ только тех хостов, которые присутствуют в Allow и отсутствуют в Deny.

Теперь на основе всего этого начинаем настраивать наш сервер. В httpd.conf по умолчанию директива Directory существует в двух экземплярах – и . Первый вариант мы вообще не трогаем, переходим ко второму и устанавливаем следующие параметры:

Читайте также:  Панель управления графикой и медиа intel настройка для игр

Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all

В переводе на русский язык – для директории C:/www, выбранной ранее в качестве корневой для нашего сайта, а также всех ее поддиректорий выбраны такие параметры:

  • из функциональности сервера разрешены индексы в директориях и переходы по символическим ссылкам (правда, это актуально только для Unix);
  • возможность переопределения параметров с помощью файлов .htaccess отсутствует полностью, но с учетом того, что мы имеем полный доступ к серверу, она и не актуальна – все можно настроить через httpd.conf;
  • доступ к серверу разрешен со всех хостов.

Сохраняем httpd.conf и перезапускаем Apache – c помощью Apache Monitor или в командной строке командой apache -k restart. Все, настройка корневой директории сайта закончена.

Проверяем, правильно ли мы все сделали. Создаем в C:\www простейшую веб-страничку, открываем браузер и в адресной строке вводим адрес: Наша страница должна открыться. Если не открылась – самым внимательным образом надо проверить все внесенные в httpd.conf изменения – скорее всего, что-то было сделано неправильно.

Но и в том случае, если она будет открываться, вполне возможно, что вместо символов кириллицы мы увидим нечто нечитаемое. Происходит это потому, что, во-первых, Apache предоставляет браузеру, запросившему страницу, кодировку по умолчанию для этой страницы, а во-вторых – кодировка эта не кириллическая. И если Internet Explorer в большинстве таких ситуаций все равно определяет кодировку из самой страницы, то с Opera или Mozilla проблемы практически гарантированы. Конечно, можно выставлять используемый набор символов каждый раз вручную в браузере, но сколь-нибудь удобным это назвать невозможно.

Поэтому настраиваем Apache на выдачу нужной кодировки по умолчанию. Находим в httpd.conf строку, начинающуюся на AddDefaultCharset. Скорее всего, полностью она будет выглядеть как AddDefaultCharset ISO-8859-1, что соответствует кодировке ISO-8859-1, в которой символы кириллицы отсутствуют. Меняем ISO-8859-1 на windows-1251, если предполагается, что сайт будет содержать страницы в кодировке Windows, на KOI-8r, если используется KOI-8, или на ту, которая нужна. Сохраняем файл, перезапускаем Apache – и наблюдаем нормальный русский язык на нашей тестовой странице в любом браузере.

И еще. Apache достаточно легко настроить на работу с несколькими сайтами. Адреса, которые для них можно использовать, – 127.0.0.2, 127.0.0.3 и так далее. Правда, по сети виден будет только один (тот, который является сайтом по умолчанию, он же 127.0.0.1), но именно для локальной работы это не критично. Раздел httpd.conf, в котором настраивается все для этого необходимое, находится в самом конце файла и называется Virtual Hosts.

Чтобы добавить один дополнительный сайт, создадим директорию, которая будет использоваться как его корневая, например C:\www2. Предположим, что сайт должен откликаться на адрес 127.0.0.2, и дадим ему имя site2. Затем в самый конец раздела Virtual Hosts добавим следующие строки:

ServerAdmin webmaster@site2
ServerName site2
DocumentRoot «C:/www2»
ScriptAlias /cgi/ «C:/www2/cgi/»
ErrorLog «C:/www2/error.log»
CustomLog «C:/www2/custom.log» common

Перезапускаем Apache. Теперь, набрав в строке браузера 127.0.0.1, мы попадаем на первый локальный сайт, набрав 127.0.0.2 – на второй. Остается сказать только, что внутри каждого контейнера VirtualHost можно использовать практически любые директивы Apache, что дает возможность настраивать каждый сайт самым детальным образом.

Источник

HackWare.ru

Этичный хакинг и тестирование на проникновение, информационная безопасность

Настройка Apache в Windows

Это заметка по настройке веб-сервера в Windows, её можно считать продолжением статьи «Установка веб-сервера (Apache 2.4, MySQL 8.0, PHP 7, phpMyAdmin) на Windows 10». Материал в процессе подготовки, но поскольку поступил вопрос, на который она содержит ответ, было решено опубликовать его в таком виде.

Подключение виртуальных хостов Apache в Windows

Виртуальные хосты могут быть привязаны к имени хоста (например, study.loc), к IP (например, 127.0.0.3) и к порту (*:81). Второй и третий способ хороши тем, что нам не придётся решать вопрос о DNS преобразованиях имени нашего виртуального хоста (это, обычно, достигается изменением системного файла C:\Windows\System32\drivers\etc\hosts либо использованием личного DNS сервера с соответствующими записями).

Читайте также:  Для загрузки выбран некорректный файл дополнительных настроек синхронизации

Рассмотрим все три способа. Но начнём с небольшой подготовки. Создадим каталог, в котором будем размещать наши виртуальные хосты. Например, C:\Server\data\htdocs\virthosts\. А в этом каталоге создадим три новых папки: host1, host2, host3. В каждой из них создайте по индексному файлу (index.html) с любым содержанием, который позволил бы идентифицировать, что вы попали в нужный хост. Я сделаю следующие записи в соответствующих индексных файлах хостов, для первого хоста:

Теперь приступим к настройки виртуальных хостов.

В файле C:\Server\bin\Apache24\conf\httpd.conf найдите и раскоментируйте следующую строку:

В файле C:\Server\bin\Apache24\conf\extra\httpd-vhosts.conf закомментируйте (или удалите) те строки, которые приведены по умолчанию.

Виртуальные хосты на основе IP

Для виртуальных хостов, которые привязаны к IP, требуются несколько IP. Тем не менее, на своём локальном сервере вы можете проделать этот фокус, поскольку в IPv4, в 127.0.0.1 также отражается любой адрес в пределах от 127.0.0.0 до 127.255.255.255.

Попробуйте набрать в браузере 127.0.0.1, а затем попробуйте 127.0.0.2, 127.0.0.3, 127.0.0.4, 127.0.0.5 и т.д. Как видите, IP у нас много, и к каждому из них можно привязать виртуальных хост.

Добавьте в файл C:\Server\bin\Apache24\conf\extra\httpd-vhosts.conf следующие строки:

Перезапустите веб-сервер (делайте перезапуск после каждого изменения файла настройки):

А теперь откройте 127.0.0.2:

При этом на другие IP 127.0.0.*, а также на localhost наши настройки влияние не оказывают.

Виртуальные хосты на основе портов (разные сайты на разных портах)

Теперь добавьте в файл C:\Server\bin\Apache24\conf\extra\httpd-vhosts.conf строки:

Порт можете заменить на любой другой, не занятый в вашей системе. Также вместо звёздочки можете указать конкретный IP. Перезапустите и откройте в браузере http://localhost:81:

Виртуальные хосты на основе имени хоста

Следующий способ требует редактирование файла C:\Windows\System32\drivers\etc\hosts (либо внесение записи в ваш собственный DNS сервер). Придумайте любое имя хоста, желательно, не совпадающее с реальным. Примеры supersite, study.loc, video.ofme. Я возьму в качестве примера study.loc. Откройте файл C:\Windows\System32\drivers\etc\hosts и добавьте туда:

А в файл C:\Server\bin\Apache24\conf\extra\httpd-vhosts.conf добавьте строки:

Перезапустите сервер и перейдите в браузере к http://study.loc:

Аналогично настраиваются и субдомены (dir1.study.loc, dir2.study.loc, dir3.localhost и т.п.).

Автоматическое создание виртуальных хостов / субдоменов

В файле C:\Server\bin\Apache24\conf\httpd.conf найдите и раскоментируйте следующую строку:

А также, если вы не сделали этого ранее, строку:

В директории C:\Server\data\htdocs\virthosts\ создайте папку localhost (теперь именно её содержимое будет отображаться, когда вы в браузере набираете http://localhost).

В файл C:\Server\bin\Apache24\conf\extra\httpd-vhosts.conf добавьте следующую строку

Теперь любая папка, созданная в C:\Server\data\htdocs\virthosts\ будет доступна по адресу вида

При открытии http://host1.localhost мы увидим содержимое C:\Server\data\htdocs\virthosts\host1\, при открытии http://super.localhost увидим сайт в C:\Server\data\htdocs\virthosts\super\ и т.д.

Как сделать резервную копию БД MySQL в Windows?

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

Аналогично при бэкапе отдельных баз данных: перейдите на страницу интересующей БД, а далее в Экспорт.

Если вы по каким-то причинам хотите сделать бэкап базы данных MySQL из командной строки в Windows, то для этого понадобиться утилита mysqldump.exe, она поставляется вместе с MySQL и расположена в каталоге C:\Server\bin\mysql-8.0\bin\.

Для её использования откройте командную строку и перетащите туда программу. Программу можно использовать с разнообразными опциями:

Если вы хотите сделать резервную копию всех баз данных в один файл, то выполните:

Кстати, файл нужно искать в той папке, которую вы видите в приглашении командной строки.

Для того, чтобы сделать резервную копию только одной базы данных (например, rsyslog):

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

Читайте также:  Настройка аутлука для таймвеб

Чтобы сделать резервную копию только одной таблицы (wp_posts) из базы данных (wordpress):

Для того, чтобы сделать резервную копию нескольких таблиц, перечислите их через пробел после названия БД:

Краткая характеристика основных директив конфигурационных файлов Apache

Настройка ограничения доступа к папкам сервера

Настройка SSL для Apache в Windows (переход с HTTP на HTTPS)

Если вы хотите использовать SSL в веб-сервере Apache под Windows, то вам необходимы три файла: *.key, *.csr и *.crt. Если вы купили валидный SSL сертификат для вашего сайта, то эти файлы вам должны прислать после покупки. Их может быть больше – среди них могут быть промежуточные сертификаты.

Если вы хотите настроить SSL на локальном веб-сервере, то все эти файлы можно сгенерировать самостоятельно, т.е. создать самоподписанный сертификат. Этот сертификат не является валидным (не может быть проверен с участием третьей стороны), но для упражнения в переходе с HTTP на HTTPS он вполне подойдёт.

Предполагается, что вы ставили веб-сервер по этой инструкции – иначе замените абсолютные пути на свои собственные.

Откройте командную строку Windows (WIN + x, далее выберите «Командная строка»). В командной строке введите команды:

При вводе последней команды появятся запросы на английском языке. Ниже следует их перевод.

Вас попросят ввести информацию, которая будет включена в запрос вашего сертификата. То, что вы будете вводить, называется Distinguished Name или DN. Там всего несколько полей, которые можно оставить пустыми. В некоторых полях будут значения по умолчанию. Если вы введёте ‘.’, то поле будет оставлено пустым.

Двухбуквенное имя страны (двухбуквенный код)

Название штата или провинции/области (полное имя)

Название населённого пункта (например, города)

Название организации (т.е. компании).

Подразделение организации (т.е. отдел)

Общее имя (например, FQDN сервера или ВАШЕ имя). Можете ввести localhost.

Пожалуйста, введите следующие «дополнительные» атрибуты для отправки с вашим запросом сертификата

  • Пароль запроса:
  • Опциональное имя компании:

Теперь выполните команду:

В результате в каталоге C:\Server\bin\Apache24\bin\ должны появиться три новых файла:

Из них нам понадобятся только два:

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

Для настройки использования SSL на локальном веб-сервере Apache в Windows следуйте инструкции ниже.

В каталоге C:\Server\ создайте новую папку certs и переместите туда файлы localhost.key и localhost.crt.

В директории C:\Server\bin\Apache24\conf\ откройте текстовым редактором файл httpd.conf. В самый низ добавьте туда строки:

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

  • DocumentRoot — укажите путь до сайтов на сервере
  • ServerName — укажите имя вашего хоста, если то не локалхост

Обратите внимание, что мы не просто поместили эти строки в конфигурационный файл, а заключили их в контейнер VirtualHost. Дело в том, что если этого не сделать, то директива SSLEngine on включит SSL для всего веб-сервера, и даже при попытке открыть сайты на 80 порту, эти подключения будут обрабатываться как HTTPS, что вызовет ошибку «Bad Request. Your browser sent a request that this server could not understand». По этой причине эти настройки помещены в контейнер виртуального хоста. Обратите внимание, что используется ключевое слово _default_ — то есть сюда будут собираться все запросы на 443 порт если они не предназначены для другого хоста, который также настроен. То есть при желании вы можете создать больше виртуальных хостов для работы с HTTPS, при этом вместо _default_ указывайте IP хоста или символ * (звёздочка).

После этого сохраните изменения, закройте файл и перезапустите веб-сервер.

Для проверки сделанных изменений, перейдите по адресу https://localhost/ (протокол HTTPS). Поскольку сертификат является самоподписанным, то появится такое сообщение:

К самоподписанным сертификатам нет доверия и эту ошибку нельзя убрать без добавления таких сертификатов в доверенные. Для перехода нажмите «Всё равно продолжить».

Настоящие валидные сертификаты для своих сайтов (в том числе бесплатно на любое количество времени), вы сможете получить здесь.

Источник

Adblock
detector