- Как проверить конфигурационный файл Apache
- Как проверить настройки Apache без запуска
- Как узнать, какие конфигурационные файлы использует Apache
- Как узнать все виртуальные хосты на сервере
- Как узнать, с какими настройками запущен Apache
- Как узнать все загруженные модули Apache
- Как узнать настройки, с которыми скомпилирован Apache
- Как узнать скомпилированные модули Apache
- HackWare.ru
- Этичный хакинг и тестирование на проникновение, информационная безопасность
- Настройка Apache в Windows
- Подключение виртуальных хостов Apache в Windows
- Как сделать резервную копию БД MySQL в Windows?
- Краткая характеристика основных директив конфигурационных файлов Apache
- Настройка ограничения доступа к папкам сервера
- Настройка SSL для Apache в Windows (переход с HTTP на HTTPS)
- Решение проблем с портами в Apache в Windows
Как проверить конфигурационный файл Apache
Как проверить настройки Apache без запуска
С помощью опции -t вы можете проверить правильность конфигурации веб-сервера без запуска Apache:
Он означает, что с точки зрения синтаксиса в конфигурационном файле всё в порядке и веб-сервер может быть успешно запущен.
Кроме проверки дефолтного конфигурационного файла можно проверить файл настроек расположенной в любом месте в системе. Для этого используйте опцию -f, после которой укажите файл для проверки:
Пример вывода, если в конфигурации обнаружена ошибка:
Как узнать, какие конфигурационные файлы использует Apache
Чтобы узнать, какой файл настроек использует Apache, а также где находится конфигурационный файл Apache, используйте сочетание опций -t -D DUMP_INCLUDES:
Как узнать все виртуальные хосты на сервере
Для показа всех настроенных на сервере виртуальных хостов Apache, запустите с опцией -t -D DUMP_VHOSTS:
Как узнать, с какими настройками запущен Apache
Для показа всех значений директив веб-сервера, запустите его с опциями -t -D DUMP_RUN_CFG:
Кстати, можно использовать опцию -S, которая является сокращением для сочетаний -t -D DUMP_VHOSTS -D DUMP_RUN_CFG.
Как узнать все загруженные модули Apache
Чтобы вывести список модулей веб-сервера (например, чтобы узнать, подхватились ли настройки включающие PHP модуль) запустите программу с опциями -t -D DUMP_MODULES:
Вместо длинной записи -t -D DUMP_MODULES можно использовать сокращение -M.
Как узнать настройки, с которыми скомпилирован Apache
При компиляции веб-сервера Apache устанавливаются некоторые параметры, в том числе значение некоторых настроек по умолчанию. Чтобы увидеть их все, используйте опцию -V:
Как узнать скомпилированные модули Apache
Для показа скомпилированных модулей Apache сделайте запуск с опцией -l:
HackWare.ru
Этичный хакинг и тестирование на проникновение, информационная безопасность
Настройка Apache в Windows
Подключение виртуальных хостов 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\ и т.д.
Обратите внимание на обозначение «%1» — оно значит первую часть имени, запрошенного виртуального хоста. То есть для запрошенного хоста super.localhost символы «%1» будут обозначать «super».
Вместо «%1» вы можете указать «%0» — это означает полное имя, то есть для запрошенного хоста super.localhost символы «%0» будут обозначать super.localhost и, следовательно, будет искаться папка super.localhost, а не super (как это происходит при использовании %1).
Помните, имена хостов вида *.localhost автоматически преобразуются в локальные IP адреса. Но если вы хотите использовать другие имена хостов, то укажите их в файле C:\Windows\System32\drivers\etc\hosts, чтобы компьютер понимал, какое имя какому IP адресу соответствует.
Если в файл C:\Server\bin\Apache24\conf\extra\httpd-vhosts.conf вместо предыдущей строки с «%1» добавить следующую:
То теперь любая папка, созданная в C:\Server\data\htdocs\virthosts\ будет доступна по адресу вида http://имя_папки
Обратите внимание, что теперь не учитывается .localhost. На самом деле, вы можете использовать и .localhost, просто создав папки «host1.localhost», «host2.localhost» и так далее.
Как сделать резервную копию БД 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). Поскольку сертификат является самоподписанным, то появится такое сообщение:
К самоподписанным сертификатам нет доверия и эту ошибку нельзя убрать без добавления таких сертификатов в доверенные. Для перехода нажмите «Всё равно продолжить».
Настоящие валидные сертификаты для своих сайтов (в том числе бесплатно на любое количество времени), вы сможете получить здесь.
Решение проблем с портами в Apache в Windows
Уже не раз сталкивался с проблемой, что Apache не может запустится из-за того, что другой процесс уже использует 80 порт. Собственно после долгого и мучительного серфинга по просторам русскоязычного, а потом и англоязычного интернета насобирал всесозможные способы устранения и причины появления данной проблемы. Эти самые причины и способы их решения и хочу перечислить здесь.
(OS 10048) Only one usage of each socket address (protocol/network address/port) is normally permitted. : make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
Самая простая и обыденная причина появления данной проблемы это Skype.
Первым делом необходимо проверить настройки Skype. Идем в Инструменты/Настройки/Дополнительно/Соединение/ и убираем галочку «Использовать порты 80 и 443 в качестве входящих альтернатив». Сохраняем и перезапускаем Skype чтобы настройки вступили в силу. Да и лучше повторно перепроверить эту настройку, потому что бывало, что она не сохранялась по неизвестной причине.
Если не помогло, то надо поискать что за процесс использует наш порт.
Открываем консоль: Главное меню->Выполнить-> вводим cmd и жмем enter.
В консоли вводим следующую команду
netstat -aon | findstr 0.0:80
Левая часть команды вернет нам текущее состояние всех портов, а правая найдет в них нужный нам 80 порт.
Смотрим результат и ищем последний столбец PID. Запоминаем его. Это идентификатор требуемого процесса.
Если это процесс с PID не равный 4, то делаем следующее.
Идем в Диспетчер задач и ищем необходимый нам процесс. По умолчанию PID не выводится. Для этого идем в Вид/Выбрать столбцы и ставим галочку у «ИД процесса(PID)». Сохраняем и видим что рядом с именем процесса появился столбец «ИД процесса».
Ищем процесс с требуемым идентификатором. Там поступаете с этим процессом как хотите, можете просто убить его, убрать из автозагрузки, удалить всё приложение и т.п.
В случае, когда PID был равен 4, это означает что 80 порт используется системой (системным процессом) и в Диспетчере задач вы увидите имя процесса System.
Более быстрый способ найти имя процесса предложил 074909, за что ему отдельное спасибо:
В консоли надо ввести следующую команду:
for /f «tokens=1,2,3,4,5*» %i in (‘netstat -aon ^| findstr «:80» ^| findstr /i listening’) do echo %j %l & @tasklist | findst
r %m
которая и вернет имя необходимого процесса.
Тут существует несколько решений и какое вам подойдет одному только богу известно.
Первое.
Это проделки некоторых служб:
- Windows Remote Management — Службы удаленного управления
- Sql server reporting services(MSSQLSERVER) — Cлужбы Reporting Services (SSRS) — Службы отчетов SQL Server
- Web Deployment Agent Service
Собственно необходимо эти службы отключить.
- ПКМ по «Мой компьютер»
- Управление
- Службы и приложения
- Службы
- Находим необходимые службы и останавливаем их.
Если не помогло, то можете включить их обратно =) и переходить к следующему пунтку. Тоже самое нужно сделать если вы не нашли этих служб у себя( я у себя на win7 только WinRM нашел).
Второе.
Проделки ‘http.sys’
Тут я нашел 2 способа, не сильно отличающиеся друг от друга, мне помог именно 2ой, однако судя по комментариям 1ой тоже помог не малому количеству народа.
Начинаются они одинаково.
1) Идем в реестр. Выполнить->regedit
2) В ветку HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP
И отличие в этих способах:
3) Создаем параметр типа Dword c именем «NoRun» и присваиваем ему значение «1» без кавычек.
или
3) Ищем параметр «Start» и меняем значение на «0» без кавычек естественно.
4) Перезагружаем компьютер.