Недопустимая команда ‘DirectoryIndex’

#apache #.htaccess #httpd.conf

#апач #.htaccess #httpd.conf

Вопрос:

У меня запущена новая версия Apache 2.4, установленная через homebrew. Кажется, все работает в корне документа, localhost отображает мой образец HTML-страницы и info.php отображается нормально. Когда я пытаюсь получить доступ к одному из моих сайтов разработчиков в корне, я получаю 500 внутренних ошибок сервера и вижу это сообщение в журнале ошибок apache: Invalid command 'DirectoryIndex', perhaps misspelled or defined by a module not included in the server configuration . Похоже, это происходит из объявления DirectoryIndex в моем .htaccess файле для сайта. Удаление его избавляет от ошибки, но затем сайт отображается как индекс каталога, а не пытается отобразить фактическое index.php досье.

Моя конфигурация httpd выглядит следующим образом

 DocumentRoot "/Path/To/My/Doc/Root"
<Directory "Path/To/My/Doc/Root">
    #
    # Possible values for the Options directive are "None", "All",
    # or any combination of:
    #   Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
    #
    # Note that "MultiViews" must be named *explicitly* --- "Options All"
    # doesn't give it to you.
    #
    # The Options directive is both complicated and important.  Please see
    # http://httpd.apache.org/docs/2.4/mod/core.html#options
    # for more information.
    #
    Options Indexes FollowSymLinks MultiViews

    #
    # AllowOverride controls what directives may be placed in .htaccess files.
    # It can be "All", "None", or any combination of the keywords:
    #   AllowOverride FileInfo AuthConfig Limit
    #
    AllowOverride All
    #
    # Controls who can get stuff from this server.
    #
    Require all granted
</Directory>
 

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

Ответ №1:

Убедитесь, что mod_dir загружен в conf.modules.d/00-base.conf файл.

 LoadModule dir_module modules/mod_dir.so

 

Комментарии:

1. Похоже, это было причиной, и мой Macbook не прочитал изменения, пока я не выполнил полную перезагрузку системы. Перезапуск только Apache / httpd не сделал этого по какой-либо причине.