Модули Apache установлены, но, похоже, не загружаются в Ubuntu - PullRequest
3 голосов
/ 10 июня 2010

Я довольно новичок в Linux.Я вчера установил VPS, установил Apache2, PHP5 и MySQL.

Когда я делаю apache2 -l, я получаю это:

Compiled in modules:
  core.c
  mod_log_config.c
  mod_logio.c
  prefork.c
  http_core.c
  mod_so.c

Когда я делаю sudo a2enmod rewrite, я получаю это:

Module rewrite already enabled

И rewrite.load в /etc/apache2/mods-enabled.

Может кто-нибудь сказать, что не так?

1 Ответ

3 голосов
/ 10 июня 2010

Это действительно относится к ServerFault, но, поскольку он, вероятно, будет в конечном итоге перенесен, я продолжу и скажу, что есть разница между модулями, которые компилируются в Apache, и модулями, которые динамически загружаются.умеет загружать модули двумя разными способами.«Более простой» способ состоит в том, что модуль статически компилируется в сервер.Это означает, что исполняемый файл apache2 буквально включает в себя код модуля.Преимущество этого подхода заключается в том, что модуль всегда доступен, и Apache не нужно делать ничего особенного, чтобы получить доступ к его коду, но, с другой стороны, если вы хотите добавить, удалить или обновить статически скомпилированный модуль,Вы должны перекомпилировать весь Apache.Кроме того, чем больше статически компилируемых модулей, тем больше становится исполняемый файл.По этим причинам нормально, чтобы этот список включал в себя только несколько наиболее важных модулей, в основном минимум, необходимый для работы Apache.Эти несколько модулей появляются в списке, который вы видите при запуске apache2 -l.

. Все остальные модули, которые использует Apache, включая mod_rewrite, загружаются динамически.То есть их код хранится в виде отдельных файлов, которые Apache находит и считывает после запуска.Это сводит на нет недостатки подхода статической компиляции: поскольку модули хранятся в отдельных файлах, если вы хотите добавить / удалить / изменить один, вам нужно только перезапустить сервер, а не перекомпилировать его.Вы можете указать Apache, какие модули загружать, поместив директивы LoadModule в файл конфигурации Apache.Это в основном то, что делает a2enmod: он добавляет директиву LoadModule в файл конфигурации.(На самом деле, это символическая ссылка на файл конфигурации заглушки в каталог, который получен из основной конфигурации)

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

apache2 -M

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...