Ошибка Adsi не может записать httpd conf 1c

Обновлено: 03.07.2024

В этом документе объясняется, как установить, настроить и запустить Apache 2.5 в Microsoft Windows. Если после просмотра документации (а также любых журналов событий и ошибок) у вас возникнут вопросы, вам следует обратиться к списку рассылки поддерживаемых коллегами пользователей.

В этом документе предполагается, что вы устанавливаете двоичный дистрибутив Apache. Если вы хотите скомпилировать Apache самостоятельно (возможно, чтобы помочь в разработке или отследить ошибки), см. раздел Компиляция Apache для Microsoft Windows.

  • Требования к операционной системе
  • Загрузка Apache для Windows
  • Настройка Apache для Windows
  • Запуск Apache как службы
  • Запуск Apache в качестве консольного приложения
  • Проверка установки
  • Настройка доступа к сетевым ресурсам
  • Настройка Windows

См. также

Требования к операционной системе ¶

Основной платформой Windows для запуска Apache 2.5 является Windows 2000 или более поздней версии. Всегда получайте и устанавливайте текущий пакет обновлений, чтобы избежать ошибок операционной системы.

Загрузка Apache для Windows ¶

Настройка Apache для Windows ¶

Apache настраивается с помощью файлов в подкаталоге conf. Это те же самые файлы, которые используются для настройки версии Unix, но есть несколько других директив для Apache в Windows. Все доступные директивы см. в указателе директив.

Поскольку Apache для Windows является многопоточным, он не использует отдельный процесс для каждого запроса, как это может делать Apache в Unix. Вместо этого обычно работают только два процесса Apache: родительский процесс и дочерний процесс, который обрабатывает запросы. Внутри дочернего процесса каждый запрос обрабатывается отдельным потоком.

Директивы управления процессами также отличаются:

MaxConnectionsPerChild: как и директива Unix, определяет, сколько соединений будет обслуживать один дочерний процесс перед выходом. Однако, в отличие от Unix, процесс замены не доступен мгновенно. Используйте MaxConnectionsPerChild по умолчанию 0 , если не указано изменить поведение для устранения утечки памяти в сторонних модулях или внутрипроцессных приложениях.

ThreadsPerChild: эта директива является новой. Он сообщает серверу, сколько потоков он должен использовать. Это максимальное количество соединений, которое сервер может обрабатывать одновременно, поэтому убедитесь, что это число достаточно велико для вашего сайта, если вы получаете много посещений. Рекомендуемое значение по умолчанию — ThreadsPerChild 150 , но его необходимо изменить, чтобы оно отражало максимальное ожидаемое количество одновременных подключений для принятия.

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

Хотя имена файлов обычно нечувствительны к регистру в Windows, URL-адреса по-прежнему обрабатываются внутренне как чувствительные к регистру, прежде чем они сопоставляются с файловой системой. Например, все директивы , Alias ​​и ProxyPass используют аргументы с учетом регистра. По этой причине особенно важно использовать эту директиву при попытке ограничить доступ к содержимому в файловой системе, поскольку эта директива применяется к любому содержимому в каталоге, независимо от того, как к нему осуществляется доступ. Если вы хотите убедиться, что в URL-адресах используются только строчные буквы, вы можете использовать что-то вроде:

При запуске Apache требуется доступ для записи только к каталогу журналов и любому сконфигурированному дереву каталогов кэша. Из-за проблемы с нечувствительными к регистру и короткими именами в формате 8.3 Apache должен проверять все заданные имена путей. Это означает, что каждый каталог, который оценивает Apache, от корня диска до листа каталога, должен иметь разрешения на чтение, перечисление и обход каталога. Если Apache2.5 установлен в C:\Program Files, то корневой каталог, Program Files и Apache2.5 должны быть видны для Apache.

Apache для Windows позволяет загружать модули во время выполнения без перекомпиляции сервера. Если Apache скомпилирован нормально, он установит несколько дополнительных модулей в каталог \Apache2.5\modules. Для активации тех или иных модулей необходимо использовать директиву LoadModule. Например, чтобы активировать модуль состояния, используйте следующее (в дополнение к директивам активации состояния в access.conf):

Также доступна информация о создании загружаемых модулей.

Apache также может загружать расширения ISAPI (Internet Server Application Programming Interface), например, используемые Microsoft IIS и другими серверами Windows. Доступна дополнительная информация. Обратите внимание, что Apache не может загружать фильтры ISAPI, а обработчики ISAPI с некоторыми расширениями функций Microsoft не будут работать.

При запуске сценариев CGI метод, используемый Apache для поиска интерпретатора сценария, настраивается с помощью директивы ScriptInterpreterSource.

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

Любые ошибки во время запуска Apache регистрируются в журнале событий Windows при работе в Windows NT. Этот механизм действует как резервная копия для тех ситуаций, когда Apache еще не готов использовать файл error.log. Вы можете просмотреть журнал событий приложений Windows с помощью средства просмотра событий, например. Пуск-Настройка-Панель управления-Администрирование-Просмотр событий.

Запуск Apache как службы ¶

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

Вы можете установить Apache как службу Windows NT, выполнив следующие действия из командной строки в подкаталоге Apache bin:

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

httpd.exe -k install -n "MyServiceName"

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

httpd.exe -k install -n "MyServiceName" -f "c:\files\my.conf"

Удалить службу Apache очень просто. Просто используйте:

Конкретную службу Apache, которую нужно удалить, можно указать с помощью:

httpd.exe -k удалить -n "MyServiceName"

Обычный запуск, перезапуск и завершение работы службы Apache обычно выполняется с помощью монитора службы Apache с помощью таких команд, как NET START Apache2.5 и NET STOP Apache2.5, или с помощью обычного управления службами Windows. Прежде чем каким-либо образом запускать Apache как службу, вы должны протестировать файл конфигурации службы, используя:

httpd.exe -n "MyServiceName" -t

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

httpd.exe -k start -n "MyServiceName"

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

httpd.exe -k stop -n "MyServiceName"

httpd.exe -k shutdown -n "MyServiceName"

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

httpd.exe -k restart -n "MyServiceName"

По умолчанию все службы Apache зарегистрированы для запуска от имени системного пользователя (учетная запись LocalSystem). Учетная запись LocalSystem не имеет прав доступа к вашей сети через какой-либо защищенный Windows механизм, включая файловую систему, именованные каналы, DCOM или безопасный RPC. Однако локально он имеет широкие привилегии.

Никогда не предоставляйте никакие сетевые привилегии учетной записи LocalSystem! Если вам нужно, чтобы Apache мог получить доступ к сетевым ресурсам, создайте отдельную учетную запись для Apache, как указано ниже.

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

Обычно хорошей практикой является предоставление пользователю службы Apache, работающей в режиме чтения и выполнения (RX), доступа ко всему каталогу Apache2.5, за исключением подкаталога logs, где пользователь должен иметь как минимум изменения (RWXD) права.

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

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

При запуске Apache в качестве службы вы можете столкнуться с сообщением об ошибке от диспетчера управления службами Windows. Например, если вы попытаетесь запустить Apache с помощью апплета «Службы» в панели управления Windows, вы можете получить следующее сообщение:

Не удалось запустить службу Apache2.5 на \\COMPUTER
Ошибка 1067; Процесс неожиданно завершился.

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

Запуск Apache как консольного приложения ¶

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

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

Apache запустится и продолжит работу до тех пор, пока не будет остановлен нажатием Control-C.

Если Apache работает как служба, вы можете остановить его, открыв другое окно консоли и введя:

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

Но если сервер запущен в окне консоли, остановить его можно, только нажав Control-C в том же окне.

Вы также можете перезапустить Apache. Это заставляет его перечитать файл конфигурации. Любые выполняемые операции могут выполняться без перерыва. Чтобы перезапустить Apache, либо нажмите Control-Break в окне консоли, которое вы использовали для запуска Apache, либо введите

если сервер работает как служба.

Примечание для людей, знакомых с Unix-версией Apache: эти команды предоставляют Windows-эквивалент kill -TERM pid и kill -USR1 pid . Используемый параметр командной строки -k был выбран как напоминание о команде kill, используемой в Unix.

Затем подождите, пока Apache остановится, или нажмите Control-C. Затем введите следующее:

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

-f указывает абсолютный или относительный путь к определенному файлу конфигурации:

httpd.exe -f "c:\my server files\anotherconfig.conf"

-n указывает установленную службу Apache, файл конфигурации которой будет использоваться:

httpd.exe -n "MyServiceName"

В обоих этих случаях в файле конфигурации должен быть установлен правильный ServerRoot.

Затем Apache попытается определить корневой сервер, выполнив следующие действия в указанном порядке:

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

Проверка установки ¶

После запуска Apache (в окне консоли или в качестве службы) он будет прослушивать порт 80 (если только вы не изменили директиву Listen в файлах конфигурации или не установили Apache только для текущего пользователя). Чтобы подключиться к серверу и получить доступ к странице по умолчанию, запустите браузер и введите этот URL-адрес:

Apache должен отобразить страницу приветствия, и вы должны увидеть сообщение "Это работает!". Если ничего не происходит или вы получаете сообщение об ошибке, посмотрите файл error.log в подкаталоге logs. Если ваш хост не подключен к сети или у вас есть серьезные проблемы с конфигурацией DNS (службы доменных имен), возможно, вам придется использовать этот URL-адрес:

Если вы запускаете Apache на альтернативном порту, вам необходимо явно указать это в URL-адресе:

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

Поскольку Apache не может использовать один и тот же порт с другим приложением TCP/IP, перед запуском Apache может потребоваться остановить, удалить или перенастроить некоторые другие службы. К таким конфликтующим службам относятся другие WWW-серверы, некоторые реализации брандмауэра и даже некоторые клиентские приложения (например, Skype), которые будут использовать порт 80 для обхода проблем с брандмауэром.

Настройка доступа к сетевым ресурсам ¶

Доступ к файлам по сети можно указать с помощью двух механизмов, предоставляемых Windows:

Буквы подключаемых дисков, например, псевдоним /images/ Z:/ UNC-пути, например, псевдоним /images/ //imagehost/www/images/

Пример DocumentRoot с путем UNC

Пример DocumentRoot с IP-адресом в пути UNC

Пример псевдонима и соответствующего каталога с путем UNC

Настройка Windows ¶

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

Комментарии

Авторское право 2021 г. The Apache Software Foundation.
Под лицензией Apache License, версия 2.0.

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

Ошибку можно обнаружить с помощью apachectl configtest до того, как будет загружена недопустимая конфигурация. Его также можно найти с помощью команд systemctl и journalctl. В последних двух случаях Apache не сможет запуститься из-за ошибки.

Если вы обнаружили ошибку с помощью apachectl, перейдите к разделу «Устранение неполадок с помощью встроенной команды apachectl» этого руководства.В противном случае в следующем разделе объясняется, как использовать systemctl для устранения ошибки.

Устранение неполадок с помощью systemctl

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

В дистрибутивах Linux, производных от Ubuntu и Debian, выполните следующую команду, чтобы проверить состояние Apache:

В системах CentOS и Fedora используйте эту команду для проверки состояния Apache:

Флаг -l гарантирует, что systemctl выведет все содержимое строки вместо замены длинных строк многоточием ( … ). Флаг --no-pager выведет весь журнал на ваш экран, не вызывая такой инструмент, как less, который показывает только экран содержимого за раз.

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

В этом случае Apache не работает из-за синтаксической ошибки. Ошибка вызвана лишним символом S в начале строки SSSLCertificateFile в файле /etc/apache2/sites-enabled/000-default.conf. Правильная директива должна быть SSLCertificateFile , поэтому редактирование файла для исправления имени директивы в этом примере устранит ошибку и позволит запустить Apache.

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

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

Устранение неполадок с журналами journalctl

Если ваши выходные данные systemctl не содержат подробностей о синтаксической ошибке AH00526, вы можете продолжить использовать команду journalctl для проверки журналов systemd для Apache.

В системах, производных от Ubuntu и Debian, выполните следующую команду:

В системах, производных от CentOS, Fedora и RedHat, используйте эту команду для проверки журналов:

Флаг --since today ограничивает вывод команды только записями журнала, начинающимися с 00:00:00 текущего дня. Использование этого параметра поможет ограничить объем записей журнала, которые необходимо проверять при проверке на наличие ошибок.

Если в конфигурации Apache возникла ошибка AH00526, просмотрите вывод команды journalctl на наличие строк, подобных следующим:

Первая строка вывода — это ошибка AH00526. Поскольку эта ошибка является общей ошибкой, связанной с недопустимой настройкой или опечаткой в ​​файле конфигурации, в следующей строке объясняется, что вызвало ошибку. В данном случае это директива SSLCertificateFile, которая будет действительна только в том случае, если модуль ssl включен.

Если вы столкнулись с ошибкой AH00526, связанной с недопустимой директивой SSLCertificateFile, вы можете устранить ее, включив модуль ssl, а затем перезапустив Apache, чтобы ошибка исчезла.

Для систем Ubuntu и Debian выполните следующее, чтобы включить модуль:

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

Однако, если ошибок больше, Apache и systemctl status будут продолжать сообщать о них и пытаться объяснить, почему сервер не может быть запущен. systemctl будет выводить сообщения об ошибках, подобные этому, в системах Ubuntu и Debian:

А в системах, производных от CentOS, Fedora и RedHat, сообщение о неудачном запуске будет похоже на следующее:

Если Apache по-прежнему не запускается из-за ошибок, использование команды apachectl configtest может быть наиболее эффективным и действенным способом диагностики проблем. В следующем разделе объясняется, как использовать утилиту для устранения ошибки AH00526, которая снова связана с недопустимой директивой SSLCertificateFile.

Устранение неполадок с помощью apachectl

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

Команда apachectl configtest полезна для обнаружения синтаксических ошибок перед перезагрузкой apache с новой конфигурацией. Этот тест может помочь вам избежать перебоев в обслуживании в случае неправильной настройки параметров в ваших файлах Apache.

Следующий пример команды проверки конфигурации вернет сообщение об ошибке синтаксиса AH00526 и пояснит, что вероятная проблема заключается в том, что Apache ссылается на пустой SSLCertificateFile:

Успешный вызов apachectl configtest должен привести к следующему выводу:

Заключение

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

Хотите узнать больше? Присоединяйтесь к сообществу DigitalOcean!

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

Серия руководств: распространенные ошибки Apache

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

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

Обратите внимание, что веб-сервер nginx доступен только в виде коллекции программного обеспечения для Red Hat Enterprise Linux 7. См. примечания к выпуску коллекций программного обеспечения Red Hat для получения информации о получении доступа к nginx, использовании коллекций программного обеспечения и прочем.

14.1.1. Заметные изменения

    Мягкий перезапуск используется по умолчанию при перезагрузке службы.

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

Модули аутентификации и авторизации LDAP теперь предоставляются в отдельном подпакете, mod_ldap . Новый модуль mod_session и связанные с ним вспомогательные модули предоставляются в новом подпакете mod_session. Новые модули mod_proxy_html и mod_xml2enc предоставляются в новом подпакете mod_proxy_html. Все эти пакеты находятся в дополнительном канале.

Прежде чем подписываться на дополнительные и дополнительные каналы, ознакомьтесь с подробной информацией об объеме покрытия. Если вы решите установить пакеты из этих каналов, выполните действия, описанные в статье Как получить доступ к необязательным и дополнительным каналам, а также к пакетам -devel с помощью Red Hat Subscription Manager (RHSM)? на клиентском портале Red Hat.

Двоичный файл apxs, используемый для сборки модулей из исходного кода, перемещен из /usr/sbin/apxs в /usr/bin/apxs .

14.1.2. Обновление конфигурации

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

Дополнительную информацию о концепции целей и об управлении системными службами в Red Hat Enterprise Linux в целом см. в Главе 10, Управление службами с помощью systemd.

14.1.3.1. Запуск службы

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

14.1.3.2. Останов службы

Чтобы предотвратить автоматический запуск службы во время загрузки, введите:

14.1.3.3. Перезапуск службы

Чтобы полностью перезапустить службу, введите следующую команду от имени пользователя root :

Чтобы только перезагрузить конфигурацию от имени пользователя root , введите:

Чтобы перезагрузить конфигурацию, не затрагивая активные запросы, введите следующую команду от имени пользователя root :

Дополнительную информацию об управлении системными службами в Red Hat Enterprise Linux 7 см. в главе 10, Управление службами с помощью systemd.

14.1.3.4. Проверка статуса службы

14.1.4. Редактирование файлов конфигурации

Основной файл конфигурации.

Дополнительный каталог для файлов конфигурации, включенных в основной файл конфигурации.

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

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

14.1.5. Работа с модулями

14.1.5.1. Загрузка модуля

Пример 14.1. Загрузка DSO mod_ssl

14.1.5.2. Написание модуля

Этот пакет содержит включаемые файлы, заголовочные файлы и утилиту APache eXtenSion ( apxs ), необходимые для компиляции модуля.

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

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

Пример 14.2. Пример конфигурации виртуального хоста

Обратите внимание, что ServerName должно быть допустимым DNS-именем, назначенным машине. Контейнер легко настраивается и принимает большинство директив, доступных в конфигурации основного сервера. Директивы, которые не поддерживаются в этом контейнере, включают User и Group , которые были заменены SuexecUserGroup .

14.1.7.Настройка SSL-сервера

14.1.7.1. Обзор сертификатов и безопасности

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

Для обеспечения безопасной связи с использованием SSL сервер SSL должен использовать цифровой сертификат, подписанный центром сертификации ( CA ). В сертификате перечислены различные атрибуты сервера (то есть имя хоста сервера, название компании, ее местонахождение и т. д.) и подпись, созданная с использованием закрытого ключа ЦС. Эта подпись гарантирует, что определенный центр сертификации подписал сертификат и что сертификат не был каким-либо образом изменен.

Когда веб-браузер устанавливает новое соединение SSL, он проверяет сертификат, предоставленный веб-сервером. Если сертификат не имеет подписи доверенного ЦС или если имя хоста, указанное в сертификате, не совпадает с именем хоста, используемым для установления соединения, он отказывается обмениваться данными с сервером и обычно представляет пользователю соответствующую ошибку. сообщение.

По умолчанию большинство веб-браузеров настроены на доверие к набору широко используемых центров сертификации. По этой причине при настройке защищенного сервера следует выбрать соответствующий ЦС, чтобы целевые пользователи могли доверять соединению, в противном случае им будет представлено сообщение об ошибке, и им придется принять сертификат вручную. Поскольку побуждение пользователей переопределять ошибки сертификата может позволить злоумышленнику перехватить соединение, по возможности следует использовать доверенный ЦС. Дополнительную информацию об этом см. в Табл. 14.2, «Информация о списках ЦС, используемых распространенными веб-браузерами».

Таблица 14.2. Информация о списках ЦС, используемых распространенными веб-браузерами

Предупреждение

25.5.1. Общие советы по настройке

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

Сразу после директивы AccessFileName набор тегов Files применяет контроль доступа к любому файлу, начинающемуся с .ht . Эти директивы запрещают веб-доступ к любым файлам .htaccess (или другим файлам, начинающимся с .ht ) по соображениям безопасности.

Действие указывает тип содержимого MIME и пару сценариев CGI, поэтому при запросе файла этого типа мультимедиа выполняется определенный сценарий CGI.

При использовании FancyIndexing в качестве параметра IndexOptions директива AddDescription может использоваться для отображения заданных пользователем описаний для определенных файлов или типов файлов в сгенерированном сервером списке каталогов. Директива AddDescription поддерживает перечисление определенных файлов, выражений с подстановочными знаками или расширений файлов.

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

AddHandler сопоставляет расширения файлов с определенными обработчиками. Например, обработчик cgi-script может быть сопоставлен с расширением .cgi, чтобы автоматически рассматривать файл, оканчивающийся на .cgi, как сценарий CGI. Ниже приведен пример директивы AddHandler для расширения .cgi.

Эта директива позволяет CGI за пределами cgi-bin функционировать в любом каталоге на сервере, который имеет опцию ExecCGI в контейнере каталогов. Обратитесь к Каталогу для получения дополнительной информации о настройке параметра ExecCGI для каталога.

Помимо сценариев CGI директива AddHandler используется для обработки проанализированных сервером HTML-файлов и файлов изображений-карт.

AddIcon указывает, какой значок должен отображаться в сгенерированных сервером списках каталогов для файлов с определенными расширениями. Например, веб-сервер настроен на отображение значка binary.jpg для файлов с расширениями .bin или .exe.

Эта директива называет значки, которые отображаются файлами с кодировкой MIME в списках каталогов, созданных сервером. Например, по умолчанию веб-сервер показывает значок сжатого.jpg рядом с закодированными MIME файлами x-compress и x-gzip в списках каталогов, созданных сервером.

Эта директива называет значки, которые отображаются рядом с файлами с типами MIME в списках каталогов, созданных сервером. Например, сервер показывает значок text.jpg рядом с файлами с MIME-типом text в созданных сервером списках каталогов.

Настройка Псевдоним разрешает доступ к каталогам за пределами каталога DocumentRoot. Любой URL-адрес, оканчивающийся на псевдоним, автоматически преобразуется в путь псевдонима. По умолчанию один псевдоним для папки icons/ уже настроен.Веб-сервер может получить доступ к каталогу icons/, но этот каталог не находится в DocumentRoot .

Разрешить указывает, какой клиент может получить доступ к данному каталогу. Клиент может быть всем, доменным именем, IP-адресом, частичным IP-адресом, парой сеть/сетевая маска и так далее. Каталог DocumentRoot настроен на Разрешить запросы от всех , что означает, что доступ есть у всех.

Директива AllowOverride определяет, могут ли какие-либо параметры быть переопределены объявлениями в файле .htaccess. По умолчанию и корневой каталог, и DocumentRoot настроены так, чтобы не допускать переопределения .htaccess.

CacheEnable — указывает, является ли кэш дисковым, памятью или кешем файловых дескрипторов. По умолчанию CacheEnable настраивает дисковый кеш для URL-адресов на уровне / или ниже / .

CacheMaxExpire — указывает, как долго HTML-документы хранятся (без перезагрузки с исходного веб-сервера) в кэше. Значение по умолчанию – 24 часа (86 400 секунд).

CacheLastModifiedFactor — определяет создание даты истечения срока действия для документа, который не поступил с исходного сервера с собственным набором срока действия. CacheLastModifiedFactor по умолчанию имеет значение 0,1 , что означает, что срок действия таких документов составляет одну десятую от времени, прошедшего с момента последнего изменения документа.

CacheDefaultExpire — указывает срок действия в часах для документа, полученного с использованием протокола, не поддерживающего срок действия. По умолчанию установлено значение 1 час (3600 секунд).

NoProxy — указывает разделенный пробелами список подсетей, IP-адресов, доменов или хостов, содержимое которых не кэшируется. Этот параметр наиболее полезен для сайтов интрасети.

По умолчанию веб-сервер просит прокси-серверы не кэшировать какие-либо документы, которые были согласованы на основе содержимого (то есть они могут меняться со временем или из-за ввода запрашивающей стороны). Если для CacheNegotiatedDocs установлено значение on , эта функция отключена, и прокси-серверы могут кэшировать такие документы.

DefaultIcon определяет значок, отображаемый в сгенерированных сервером списках каталогов для файлов, для которых не указан другой значок. Файл изображения unknown.jpg используется по умолчанию.

DefaultType устанавливает тип содержимого по умолчанию для веб-сервера, который будет использоваться для документов, типы MIME которых невозможно определить. По умолчанию используется text/plain .

Запретить работает аналогично Разрешить, за исключением того, что он указывает, кому запрещен доступ. По умолчанию DocumentRoot не настроен на отклонение запросов от кого бы то ни было.

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

По умолчанию к корневому каталогу ( / ) применяются очень строгие параметры с использованием директив Options (см. Options) и AllowOverride (см. AllowOverride). В этой конфигурации любой каталог в системе, для которого требуются дополнительные разрешающие настройки, должен быть явно задан этими настройками.

Контейнер Directory также можно использовать для настройки дополнительных каталогов cgi-bin для серверных приложений за пределами каталога, указанного в директиве ScriptAlias ​​(дополнительную информацию см. в ScriptAlias).

Далее необходимо раскомментировать директиву AddHandler, чтобы идентифицировать файлы с расширением .cgi как сценарии CGI. Обратитесь к AddHandler за инструкциями по настройке AddHandler .

Чтобы это работало, разрешения для сценариев CGI и весь путь к сценариям должны быть установлены на 0755.

DirectoryIndex — это страница по умолчанию, обслуживаемая сервером, когда пользователь запрашивает индекс каталога, указав косую черту (/) в конце имени каталога.

DocumentRoot – это каталог, содержащий большинство файлов HTML, которые обслуживаются в ответ на запросы. DocumentRoot по умолчанию как для незащищенных, так и для безопасных веб-серверов — это каталог /var/www/html. Например, сервер может получить запрос на следующий документ:

Чтобы изменить DocumentRoot таким образом, чтобы он не использовался безопасным и незащищенным веб-серверами, см. Раздел 25.7, «Виртуальные хосты».

Важно

Директива ExtendedStatus определяет, будет ли Apache генерировать базовую ( off ) или подробную информацию о состоянии сервера ( on ) при вызове обработчика состояния сервера. Обработчик состояния сервера вызывается с помощью тегов Location. Дополнительная информация о вызове server-status содержится в разделе «Местоположение».

HeaderName называет файл, который, если он существует в каталоге, добавляется к началу списков каталогов, созданных сервером. Как и ReadmeName , сервер пытается включить его как HTML-документ, если это возможно, или как обычный текст, если нет.

Поиск имени хоста может быть включен, выключен или удвоен. Если для HostnameLookups установлено значение on , сервер автоматически разрешает IP-адрес для каждого подключения.Разрешение IP-адреса означает, что сервер устанавливает одно или несколько подключений к DNS-серверу, что увеличивает нагрузку на обработку. Если для параметра HostnameLookups задано значение double , сервер выполняет двойной обратный поиск DNS, что еще больше увеличивает нагрузку на обработку.

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

Теги IfDefine окружают директивы конфигурации, которые применяются, если «тест», указанный в теге IfDefine, верен. Директивы игнорируются, если проверка неверна.

Проверкой в ​​тегах IfDefine является имя параметра (например, HAVE_PERL ). Если параметр определен, что означает, что он предоставляется в качестве аргумента команде запуска сервера, то проверка верна. В этом случае при запуске веб-сервера проверка выполняется и применяются директивы, содержащиеся в тегах IfDefine.

Теги

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

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

Важно

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

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

Опция AddDescription при использовании в сочетании с FancyIndexing представляет краткое описание файла в списках каталогов, созданных сервером.

IndexOptions имеет ряд других параметров, которые можно настроить для управления внешним видом созданных сервером каталогов. Параметры IconHeight и IconWidth требуют, чтобы сервер включал теги HTML HEIGHT и WIDTH для значков на веб-страницах, созданных сервером. Параметр IconsAreLinks объединяет графический значок с якорем ссылки HTML, который содержит целевой URL-ссылку.

KeepAlive определяет, разрешает ли сервер более одного запроса на одно соединение, и может использоваться для предотвращения чрезмерного потребления ресурсов сервера каким-либо одним клиентом.

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

LanguagePriority устанавливает приоритет для разных языков, если в клиентском веб-браузере не заданы языковые предпочтения.

Директива Listen также может использоваться для указания конкретных IP-адресов, через которые сервер принимает соединения.

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

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

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

Директива LogFormat настраивает формат различных файлов журналов веб-сервера. Фактически используемый LogFormat зависит от настроек, заданных в директиве CustomLog (см. CustomLog).

Перечисляет удаленный IP-адрес запрашивающего клиента. Если для параметра HostnameLookups установлено значение on , записывается имя хоста клиента, если оно недоступно из DNS.

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

LogLevel определяет, насколько подробными будут сообщения об ошибках в журналах ошибок. LogLevel может быть установлен (от наименее подробных до наиболее подробных) на emerg , alert , crit , error , warn , note , info или debug . LogLevel по умолчанию — warn .

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

Примечание

Чтобы включить виртуальный хостинг на основе имени, раскомментируйте директиву конфигурации NameVirtualHost и добавьте правильный IP-адрес.Затем добавьте дополнительные контейнеры VirtualHost для каждого виртуального хоста, если это необходимо для вашей конфигурации.

Директива Options определяет, какие функции сервера доступны в определенном каталоге. Например, в ограничительных параметрах, указанных для корневого каталога, для параметра «Параметры» задана только директива «FollowSymLinks». Никакие функции не включены, за исключением того, что серверу разрешено переходить по символическим ссылкам в корневом каталоге.

По умолчанию в каталоге DocumentRoot параметр Options включает индексы и FollowSymLinks . Индексы позволяют серверу генерировать список каталогов для каталога, если не указан DirectoryIndex (например, index.html ). FollowSymLinks позволяет серверу переходить по символическим ссылкам в этом каталоге.

Примечание

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

Директива Order определяет порядок, в котором оцениваются разрешающие и запрещающие директивы. Сервер настроен на оценку директив Allow перед директивами Deny для каталога DocumentRoot.

Теги

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

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

При перемещении веб-страницы можно использовать перенаправление для сопоставления местоположения файла с новым URL-адресом. Формат следующий:

В этом примере замените старую информацию о пути для и и на текущий домен и информацию о пути для .

В этом примере любые запросы в старом местоположении автоматически перенаправляются в новое местоположение.

Директива ScriptAlias ​​определяет, где находятся сценарии CGI. Как правило, не рекомендуется оставлять CGI-скрипты в DocumentRoot, где они потенциально могут просматриваться как текстовые документы. По этой причине специальный каталог за пределами каталога DocumentRoot, содержащий исполняемые файлы и сценарии на стороне сервера, определяется директивой ScriptAlias. Этот каталог называется cgi-bin и по умолчанию установлен в /var/www/cgi-bin/.

Возможно установить каталоги для хранения исполняемых файлов за пределами каталога cgi-bin/. Инструкции по этому поводу см. в AddHandler и Directory.

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

При указании ServerName убедитесь, что пара IP-адрес и имя сервера включены в файл /etc/hosts.

Директива ServerRoot указывает каталог верхнего уровня, содержащий содержимое веб-сайта. По умолчанию для ServerRoot установлено значение «/etc/httpd» как для защищенных, так и для незащищенных серверов.

Для ServerSignature можно задать значение EMail, которое добавляет HTML-тег mailto:ServerAdmin в строку подписи автоматически сгенерированных ответов. Для параметра ServerSignature также можно установить значение Off, чтобы Apache не отправлял номер своей версии и информацию о модуле. Также проверьте настройки ServerTokens.

Директива ServerTokens определяет, должно ли поле заголовка ответа сервера, отправляемое обратно клиентам, включать сведения о типе операционной системы и сведения о скомпилированных модулях. По умолчанию для ServerTokens установлено значение Full, которое отправляет информацию о типе операционной системы и скомпилированных модулях. Установка для ServerTokens значения Prod отправляет только название продукта и рекомендуется, так как многие хакеры проверяют информацию в заголовке сервера при сканировании на наличие уязвимостей. Вы также можете установить для ServerToken значение Min (минимальный) или OS (операционная система).

Директива SuexecUserGroup, происходящая из модуля mod_suexec, позволяет указывать привилегии пользователя и группы на выполнение CGI-программ. Запросы не CGI по-прежнему обрабатываются пользователем и группой, указанными в директивах User и Group.

Примечание

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

TypesConfig присваивает имя файлу, который устанавливает список сопоставлений типов MIME по умолчанию (расширения имен файлов для типов содержимого). Файл TypesConfig по умолчанию — /etc/mime.types. Вместо редактирования /etc/mime.types рекомендуется добавлять сопоставления типов MIME с помощью директивы AddType.

Примечание

UserDir – это подкаталог в домашнем каталоге каждого пользователя, в который он должен помещать личные HTML-файлы, обслуживаемые веб-сервером. По умолчанию эта директива отключена.

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

В приведенном выше примере /home/username/ — это домашний каталог пользователя (обратите внимание, что путь по умолчанию к домашним каталогам пользователей может отличаться).

Убедитесь, что права доступа к домашним каталогам пользователей установлены правильно. Домашние каталоги пользователей должны быть установлены на 0711. Биты чтения (r) и выполнения (x) должны быть установлены в каталогах пользователей public_html (0755 также работает). Файлы, которые обслуживаются в пользовательских каталогах public_html, должны иметь значение не ниже 0644.

Теги

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

Если я изменю (в строке 35) на

Я проверил, и modules/mod_access_compat.so существует, поэтому я не могу понять, как это исправить.

Любая помощь будет оценена

14 ответов 14

Просто запустите setup_xampp.bat из оболочки (оболочка из панели управления XAMPP), и пути должны быть установлены автоматически для переносимой версии XAMPP для Windows. Мне помогло.

Перейдите к строке ServerRoot= ".." и измените значение на путь, по которому находится apache, например "C:\Program Files\Apache24"

Я думал, вы не должны устанавливать XAMPP в программные файлы из-за проблем с правами доступа в Windows?

Пути к модулям, например. modules/mod_actions.so , все указаны относительно, и они относятся к значению, установленному ServerRoot . ServerRoot определяется в верхней части httpd.conf (ctrl-F для ServerRoot ").

ServerRoot обычно устанавливается абсолютно, что означает K:/../../../xampp/apache/ в вашем сообщении.

Если рабочим каталогом является папка Apache, этого будет достаточно:

Если рабочим каталогом является папка C: (на одну папку выше папки Apache), используйте это:

Для служб Apache рабочим каталогом будет C:\Windows\System32 , поэтому используйте это:

  • /etc/apache2/apache2 для Linux
  • "C:\Program Files\Apache24" для Windows

Я думаю, что ServerRoot должен быть абсолютным. Используйте что-то вроде "/apache/docroot"

Если вы используете актуальную версию, в корневом каталоге есть скрипт setup_xampp.bat/.sh. Путь должен быть абсолютным, но скрипт изменяет все необходимые пути на ваше текущее местоположение.

Для начала используйте букву диска с косой чертой (c:/apache/. ).

У меня это сработало, если у вас не сработает, просто прокомментируйте значение ошибки после открытия xampp_start.exe

Запустите «setup_xampp.bat/.sh», а затем удалите «\» в конце, чтобы ваш ServerRoot был похож на «C. \apache» НЕТ «C. \apache\»

Решено ниже. Я неправильно указал bin /directory/, поэтому столкнулся с проблемой:

Надеюсь, это поможет

Я проверил строку 35 xampp/apache/conf/httpd.conf, и это было:

ServerRoot "/xampp/apache"

Который не существует. .

Создайте каталог или измените путь к каталогу, содержащему ваши гипертекстовые документы.

У меня была точно такая же проблема с портативным Xampp в Windows 10 Home. Я просмотрел все предложения, и ни одно не сработало. Мне удалось заставить его работать с настройками брандмауэра Windows и ошибкой с моей стороны.

Моя флешка была помечена как "Диск E" на моем ноутбуке и "Диск F" на моем рабочем столе. Однажды я исправил это с помощью раздела диска и изменил букву диска на E для моего рабочего стола, чтобы Windows запросила доступ для брандмауэра, и все щелкнуло.

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

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