问题 任何用于解析apache配置文件的python库?


用于解析apache配置文件的任何python库,或者如果没有python任何人在其他语言中知道这样的东西(perl,php,java,c#)? 因为我将能够在python中重写它们。


11902
2017-10-25 23:36


起源

要求我们推荐或找到书籍,工具,软件库,教程或其他场外资源的问题都是Stack Overflow的主题,因为它们往往会吸引固执己见的答案和垃圾邮件。 - GhostCat
有时,即使你没有任何事情可以做出明智的答案。现在我不再需要那个了,因为这个问题在过去是被问到的,但有时候即使他们是自以为是也能获得建议。 - daniels
让我们这样说:我不知道这个问题在9年前是否有效。但我相信如果今天会被问到它会被关闭;因为它显然违反了“无建议”规则。你看,;这里发生的是 - 所有这些答案都是(实际上只能是) 仅链接 那些。所以,迟早......这些链接可能会破裂;然后答案变得毫无用处。 - GhostCat
你想在哪里想知道他有什么选择来做事情x和/或人们对那件事有什么经验(假设那些回应也使用他们推荐的东西)的人会去哪里?诚实的问题。如果SO不是正确的地方,只是想知道在哪里可以获得这种反馈。 - daniels
由于我不知道,stackexchange.com网络上有一个“新的”软件推荐网站。可能应该加强密切的理由来指出这种可能性。 - GhostCat


答案:


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

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


7
2018-03-15 22:27



如何使用你指向的模块? - Anand


红帽新兴技术集团拥有 Augeas (用C语言编写,但有Python绑定可用),一个通用的系统配置工具,带有“镜头”,用于读写几种不同的配置文件格式。我会考虑调查Apache镜头的可用性。


3
2017-10-26 05:12



Apache配置文件不存在镜头。 - Teddy
现在有一个Httpd镜头。 - ℝaphink
在Debian / Ubuntu上,使用pypi库 pypi.python.org/pypi/python-augeas 似乎依赖 launchpad.net/ubuntu/+source/augeas 首先安装在目标系统上。 - ThorSummoner


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

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

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

来源于 https://github.com/alextricity25/parse_apache_configs


2
2018-05-10 12:04





我不知道有没有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上提及您的包名称! :)


1
2017-10-25 23:50





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

它仍然缺乏文档,但理解起来非常简单。


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]
    }
)

1
2018-05-16 11:18



我能够让这个工作。不得不使用很多互动 help() 和 dir() 和 .__dict__,但这也是python令人敬畏的原因。 - ThorSummoner


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

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


0
2017-10-26 04:04