首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用nokogiri解析apache2配置

使用nokogiri解析apache2配置
EN

Stack Overflow用户
提问于 2012-04-03 13:16:10
回答 3查看 447关注 0票数 0

如何使用apache2或任何其他nokogiri解析器解析nokogiri配置文件?我尝试用以下方式使用Nokogiri::XML解析该文件:

代码语言:javascript
运行
复制
parsed = Nokogiri::XML(File.open("/home/user/config"))

这没什么用。当尝试使用parsed.errors检查对象时,我得到以下信息:

代码语言:javascript
运行
复制
[#<Nokogiri::XML::SyntaxError: Start tag expected, '<' not found>]

是否有任何用于解析apache、编辑和保存它的宝石或其他东西?

UPD:

下面是我的配置文件:

代码语言:javascript
运行
复制
LoadModule passenger_module /home/user/.rvm/gems/ree-1.8.7-2012.02@gemset/gems/passenger-3.0.11/ext/apache2/mod_passenger.so
PassengerRoot /home/user/.rvm/gems/ree-1.8.7-2012.02@gemset/gems/passenger-3.0.11
PassengerRuby /home/user/.rvm/wrappers/ree-1.8.7-2012.02@gemset/ruby

<VirtualHost *:80>
ServerAdmin user@localhost

    RailsEnv staging

DocumentRoot /path_to_project/public
    Alias /webdav /path_to_project/public/dir
    Alias /webdav-some-dir path_to_project/public/dir/another_dir

ServerSignature On
    <Directory path_to_project/public>

         AllowOverride all     
         Options -MultiViews  
     AddDefaultCharset utf-8

    </Directory>

<Location /webdav>
        DAV On
        AuthType Basic
        AuthName "webdav"
        AuthUserFile /var/www/project_name/passwd.dav
    PassengerEnabled off
    Require globalAdministrator
    <Limit GET OPTIONS PROPFIND>
        Require user username #valid-user
    </Limit>
    <Limit PUT POST DELETE PROPPATCH MKCOL COPY MOVE LOCK UNLOCK>
        Require user username #globalAdministrator
    </Limit>
   </Location>
   <LocationMatch "/webdav/.+/.+/.+/.+/.+/.+">
    <Limit PUT POST DELETE PROPFIND PROPPATCH MKCOL COPY MOVE LOCK UNLOCK>
        Require user username #valid-user
    </Limit>
   </LocationMatch> 

<Location /webdav-some-dir>
        DAV On
        AuthType Basic
        AuthName "webdav"
        AuthUserFile /var/www/project_name/passwd.dav
    PassengerEnabled off
    Require globalAdministrator
    <Limit GET OPTIONS PROPFIND>
        Require user username #valid-user
    </Limit>
    <Limit PUT POST DELETE PROPPATCH MKCOL COPY MOVE LOCK UNLOCK>
        Require user username #valid-user
    </Limit>
   </Location>
   <LocationMatch "/webdav-some-dir/.+/.+/.+/.+/.+">
    <Limit PUT POST DELETE PROPFIND PROPPATCH MKCOL COPY MOVE LOCK UNLOCK>
        Require user username #valid-user
    </Limit>
   </LocationMatch> 

ErrorLog ${APACHE_LOG_DIR}/error.log

LogLevel warn

CustomLog ${APACHE_LOG_DIR}/access.log combined

EN

回答 3

Stack Overflow用户

发布于 2012-04-03 13:26:30

Apache配置文件是无效的XML。它有类似XML的标记(很可能是类似SGML的)标记来分组选项,但它绝不是XML。尝试使用apache_config gem来解析配置文件,尽管它似乎没有得到维护。

票数 4
EN

Stack Overflow用户

发布于 2012-04-03 13:26:08

代码语言:javascript
运行
复制
Hash.from_xml(File.open("/path/to/config", "r").read)

如果这不起作用,你也应该在这里张贴配置文件的内容.

票数 0
EN

Stack Overflow用户

发布于 2012-04-04 01:22:34

你想做什么?我认为你的应用程序不应该担心它正在运行的apache设置.

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9994079

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档