2008-10-18 6 views
7

Я хотел бы создать скрипт для непосредственного управления конфигурацией Apache2, чтения и записи его свойств (например, добавления нового VirtualHost, изменения настроек уже существующего).Что такое хорошая библиотека для управления конфигурационными файлами Apache2?

Есть ли там какие-либо библиотеки, для Perl, Python или Java, которые автоматизируют эту задачу?

ответ

2

Это конечная Apache конфигуратор:

http://perl.apache.org/

обнажает многие, если не все внутренние Apache для программ, написанных на Perl.

Например: http://perl.apache.org/docs/2.0/api/Apache2/Directive.html

(конечно, что он может сделать гораздо больше, чем просто его настройки).

С другой стороны, его необходимо загрузить и запустить в Apache, это не синтаксический анализатор/редактор конфигурационных файлов.

7

Вместо того, чтобы манипулировать конфигурационными файлами, вы можете использовать mod_perl для непосредственного встраивания Perl в файлы конфигурации. Это может позволить вам, например, прочитать требуемые vhosts из базы данных.

Для получения более подробной информации см. Configure Apache with Perl Example и Apache Configuration in Perl.

+0

Это круто! Я даже не думал, что такая вещь существует! Большое спасибо ... – kolrie

+0

Warning; он серьезно раздувает сервер, он делает его более хрупким (еще один источник утечек памяти), и при обновлении вашей системы у вас есть еще одна зависимость, о которой нужно заботиться. Для такого варианта использования создание конфигурации из программы кажется более безопасным. – bortzmeyer

+0

Если вы используете только блоки perl во время настройки, использование памяти не будет проблемой. Дополнительная библиотека, связанная с ней, заставит детей выглядеть больше, но это все разделяемая память. –

2

Попробуйте Apache::ConfigFile Perl module.

+1

Это фактически не пишет файлы конфигурации. В руководстве написано о функции write(): «Этот метод в настоящее время разрабатывается и не работает. Патчи приветствуются». –

3

Посмотрите на Augeas, это не специально для Apache-HTTPd конфигурации. файлов, это всего лишь общая конфигурация. file "editor". Одним из основных пунктов продажи является то, что он будет хранить комментарии/и т. Д. рад другим инструментам для изменения файлов и откажется предоставить вам возможность сохранять файлы с нарушениями.

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

+0

Augeas не имеет синтаксического анализа для конфигурационных файлов Apache - вам все равно придется писать это самостоятельно. – Teddy

+2

Augeas теперь имеет объектив Httpd. –

0

Также см. Config::General, который утверждает, что полностью совместим с файлами конфигурации Apache. Я использую его для анализа файлов конфигурации Apache для автоматического тестирования регрессии после изменений конфигурации.

Смежные вопросы