Apacheの設定ファイルを解析するためのPythonライブラリはありますか?
-
04-07-2019 - |
質問
Apache設定ファイルを解析するためのPythonライブラリ、またはPythonでない場合は他の言語(perl、php、java、c#)でそのようなことを知っている人はいますか? 私はPythonでそれらを書き換えることができるので。
解決
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スキーマをセットアップするのはそれほど難しくないことがわかります。