Apache構成ファイルを解析するためのPythonライブラリ、またはPythonでない場合は、他の言語(perl、php、java、c#)でそのようなことを知っている人はいますか?Pythonで書き直すことができるので。
6 に答える
ここで、Python 用の興味深い Apache Config パーサーを見つけました: http://www.poldylicious.de/node/25
言及されている Apache Config Parser は文書化されていませんが、機能します。
Red Hat の Emerging Technologies グループには、いくつかの異なる構成ファイル形式を読み書きするための「レンズ」を備えた汎用システム構成ツールであるAugeas (C で記述されていますが、Python バインディングが利用可能) があります。Apache 用のレンズの入手可能性を調査することを検討します。
pyparsing を使用して作成された 2016 年の新しいライブラリがあります。
https://pypi.python.org/pypi/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でパッケージの名前を記載してください。:)
また、1 つの新しいパーサーがリリースされました。
まだドキュメントが不足していますが、理解するのは非常に簡単です。
例
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 スキーマをセットアップするのはそれほど難しくないことがわかります。