Apache - Включает conf Файлы Относительно ServerConfigFile (-f аргумент)

Я не уверен, что Вы спрашиваете. 4 VMs от Предприятия означают, что единая лицензия, которую Вы покупаете, допускает 1 физическую установку плюс установка той лицензии в 4VMs. 4 не предел VMs, который можно выполнить в Hyper-V, это - просто предел, который можно выполнить, не имея необходимость покупать дополнительные лицензии.

3
задан 8 May 2010 в 04:34
2 ответа

Хорошо, я понял это (благодарен за то, что joschi предлагает изменить ServerRoot, который был частью решения).


То, что я имею, является двумя связанными с Apache местами, например:

  Y:\Servers\HTTP\Apache   - двоичные файлы
  X:\Docs\Settings\Apache  - конфигурационные файлы

Таким образом, то, что я сделал, было:

  1. Я переместился conf и logs каталоги от двоичного каталога до каталога документов. В …Settings\Apache\conf httpd.conf, который почти идентичен httpd.conf.default. Это имеет следующую запись:

      ServerRoot "Y:\Servers\HTTP\Apache"  Нормальный #as

  2. Затем у основания файла, добавил я

      ServerRoot "X:\Docs\Settings\Apache"  - измените ServerRoot
      Include "conf/Includes.conf"          - включайте настройки

  3. Следующий шаг должен был просто отредактировать несколько моих Включенных .conf файлов, которые используют LoadModule и передачу полного пути в .so файл.

    Если бы у меня было много LoadModule, призывает мои специализированные .conf файлы, вместо того, чтобы использовать полные пути, что я сделал бы, должен создать два новых .conf файла, (например, BinLoc.conf и ConfLoc.conf) каждый содержащий единственную директиву ServerRoot для установки его на каталоги двоичного файла/документов. Затем я мог перенести вызовы LoadModule как таковые:

      Include "conf/BinLoc.conf"                  
        LoadModule ssl_module modules/mod_ssl.so  
      Include "conf/ConfLoc.conf"                 

    (К сожалению, вторые Включают, должен был бы использовать полный путь для каталога настроек, таким образом, он будет вид поражения цель.)

  4. Наконец, я установил Apache для загрузки httpd.conf файла из моего каталога документов (т.е. загрузка X:\Docs\Settings\Apache\httpd.conf). Было несколько способов сделать это. Установщик использует ключ реестра ConfigArgs для сервиса Apache, но я решил не использовать это и опустошил его. Я попробовал установку HKLM\SOFTWARE\Apache Software Foundation\Apache\2.2.15\ServerRoot к X:\Docs\Settings\Apache, но Apache, кажется, не берет это. Я решил пойти с командной строкой. Я изменил свой Install.bat так, чтобы, когда это создает сервис Apache, это передало httpd.conf файл с помощью -f аргумент (редактирующий пакетный файл намного более легко/быстрее, чем изменение мультистроки в реестре).

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

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


(О, и журналы в другом месте, например, X:\Docs\Logs\Apache. Связанные с журналом записи в httpd.conf используют полный путь для этого, но если я когда-либо изменяю каталог журнала, это - простой вопрос search-and-replace-in-files для обновления, точно так же, как это было бы с полными путями для директив LoadModule в моих пользовательских .conf файлах, если бы я изменил местоположение двоичных файлов.)

2
ответ дан 3 December 2019 в 06:49

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

1
ответ дан 3 December 2019 в 06:49
  • 1
    А-ч, я вижу. У меня создалось впечатление, что ServerRoot был то, где сервер, который является двоичными файлами, расположен (вероятно, потому что каждый пример замеченный I’ve имеет conf файлы в том же месте как двоичные файлы). Я на самом деле имею -d аргумент, но так как установщик автоматически устанавливает его на местоположение двоичных файлов, я думал that’s, каково это было. (К счастью, что я храню свои файлы журнала в другой папке, не проблема.) I’ll обновляют установку приблизительно в 2½ минуты.:) Спасибо! –  Synetech 8 May 2010 в 18:09
  • 2
    Apache ищет свои модули (т.е. двоичные файлы ) в ServerRoot так, чтобы didn’t вполне работали. –  Synetech 8 May 2010 в 18:29
  • 3
    Вы могли поместить символьную ссылку на modules каталог каталог, на который Вы указываете ServerRoot. –  joschi 8 May 2010 в 20:59
  • 4
    На самом деле я can’t; диск является FAT32. –  Synetech 9 May 2010 в 19:23

Теги

Похожие вопросы