Any python libs for parsing apache config files?

前端 未结 6 2080
离开以前
离开以前 2020-12-29 11:40

Any python libs for parsing apache config files or if not python anyone aware of such thing in other languages (perl, php, java, c#)? As i\'ll be able to rewrite them in pyt

相关标签:
6条回答
  • 2020-12-29 11:50

    There is a new library as of 2016 written using pyparsing:

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

    Has a few rough edges, but allowed me to add in directives and save to a new file.

    Source at https://github.com/alextricity25/parse_apache_configs

    0 讨论(0)
  • 2020-12-29 11:51

    No Python libraries exist that I know of, but here's a perl one: 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.
    

    If you do rewrite it in Python, please update your post to mention the name of your package on PyPI! :)

    0 讨论(0)
  • 2020-12-29 11:52

    ZConfig, I think, used to ship with a schema for parsing Apache configuration files; it doesn't seem to anymore, but it's oriented around parsing those types of files and turning the config into a Python object. A quick glance at the documentation suggests it wouldn't be too hard to set up a ZConfig schema corresponding to whatever Apache options you'd like to parse and validate.

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

    0 讨论(0)
  • 2020-12-29 11:59

    There is also one new parser released.

    • http://pypi.python.org/pypi/apache_conf_parser/

    It still lacks documentation, however is quite straightforward for understanding.


    Example

    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]
        }
    )
    
    0 讨论(0)
  • 2020-12-29 12:05

    I did find an interesting Apache Config parser for python here: http://www.poldylicious.de/node/25

    The Apache Config Parser mentioned is not documented, but it does work.

    0 讨论(0)
  • 2020-12-29 12:08

    Red Hat's Emerging Technologies group has Augeas (written in C, but with Python bindings available), a generic system configuration tool with "lenses" for reading and writing several different configuration file formats. I would consider investigating the availability of a lens for Apache.

    0 讨论(0)
提交回复
热议问题