任何用于解析 apache 配置文件的 python 库,或者如果不是 python,任何人都知道其他语言(perl、php、java、c#)中的此类内容?因为我将能够用 python 重写它们。

有帮助吗?

解决方案

我在这里找到了一个有趣的Apache Config解析器: http://www.poldylicious.de/节点/ 25

提到的Apache Config Parser没有记录,但确实有效。

其他提示

Red Hat的Emerging Technologies小组 Augeas (用C编写,但提供Python绑定),一个通用系统具有“镜头”的配置工具用于读写几种不同的配置文件格式。我会考虑调查Apache镜头的可用性。

截至2016年,有一个新的图书馆使用pyparsing编写:

https://pypi.python.org/pypi/parse_apache_configs/

有一些粗糙的边缘,但允许我添加指令并保存到新文件。

来自 https://github.com/alextricity25/parse_apache_configs

我知道没有Python库,但这里有一个perl: http://packages.debian.org/sid/libapache-configfile-perl

Package: libapache-configfile-perl
Priority: optional
Section: interpreters
Installed-Size: 124
Maintainer: Michael Alan Dorman
Version: 1.18-1
Depends: perl (>= 5.6.0-16)
Description: Parse an Apache style httpd.conf configuration file

This module parses the Apache httpd.conf, or any
compatible config file, and provides methods for
you to access the values from the config file.

如果您在Python中重写它,请更新您的帖子,在PyPI上提及您的包名称! :)

还发布了一种新的解析器。

它仍然缺乏文档,但是非常容易理解。


例子

import apache_conf_parser
import pprint

DEFAULT_VHOST = '/etc/apache2/sites-available/000-default.conf'

vhost_default = apache_conf_parser.ApacheConfParser(DEFAULT_VHOST)

print vhost_default.nodes
print vhost_default.nodes[0].body.nodes

pprint.pprint( 
    {
        i.name: [i.arguments for i in vhost_default.nodes[0].body.nodes]
    }
)

我认为,ZConfig过去常常附带用于解析Apache配置文件的模式;它似乎不再存在,但它的目的是解析这些类型的文件并将配置转换为Python对象。快速浏览文档表明,设置与您要解析和验证的任何Apache选项相对应的ZConfig架构并不会太难。

http://pypi.python.org/pypi/ZConfig/2.6.0

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top