Trac faz com que RuntimeError: instance .__ dict__ não seja acessível no modo restrito

1

Eu tenho a configuração abaixo do Apache. Os seguintes serviços estão em cada porta:

8022 - Apache. Testing port, in the long run it will be port 80.

8002 - XDV, a themeing proxy which sits in front of a number of other services.

8202 - Trac, Python based bug tracker, which is one of the services xdv needs to sit in front of, hence the separation.

8082 - Plone CMS. Not shown in apache. XDV proxies requests to it.

A idéia é que todos os pedidos vêm via Apache (8022), através do proxy xdv (8002), que aplica um tema a cada uma das fontes de conteúdo (8082 & 8202)

No entanto, notei que durante o teste, se eu acessar o site do Trac via 8202, os erros do site 8022 com RuntimeError: instance.__dict__ not accessible in restricted mode e não funcionarão novamente até que o Apache seja reiniciado. O 8202 ainda funciona independentemente de o 8022 estar com erro ou acessado.

Isso parece relacionado a esse bug do Trac . Mas eu não estou usando mod_python e WSGIProcessGroup e WSGIApplicationGroup são o mesmo valor.

Por que isso está acontecendo Existe uma maneira melhor de configurar o Apache? Ou seja, o elemento wsgi?

Em uma iteração anterior dessa configuração estava dentro do host 8022, mas isso significava que também servia dessa porta e evitava o proxy

<VirtualHost foo.bar.com:8022>
        ServerName foo.bar.com
        ServerAlias foo.bar.com

        ProxyRequests Off
        <Proxy *>
            Order deny,allow
            Allow from all
        </Proxy>

        ProxyPreserveHost On

        RewriteEngine On
        RewriteCond %{HTTP:Authorization} ^(.*)
        RewriteRule ^/(.*) http://0.0.0.0:8002/$1 [P]


</VirtualHost>


<VirtualHost foo.bar.com:8202>
        ServerName foo.bar.com
        ServerAlias foo.bar.com

        <Directory "/home/web/foo/parts/trac/tracwsgi/cgi-bin">
                WSGIDaemonProcess trac stack-size=524288 python-path=/usr/lib/python2.5/site-packages
                WSGIScriptAlias /trac /home/web/foo/parts/trac/tracwsgi/cgi-bin/trac.wsgi
                WSGIProcessGroup %{GLOBAL}
                WSGIApplicationGroup %{GLOBAL}
                Options +Indexes FollowSymLinks
                AllowOverride None
                Allow from all
                Order allow,deny
        </Directory>

        <Location "/trac">
                AuthBasicProvider ldap
                AuthType Basic
                AuthzLDAPAuthoritative off
                AuthName "Login"
                AuthLDAPURL "ldap://127.0.0.1:389/dc=foo-bar,dc=org?uid"
                AuthLDAPBindDN "cn=admin, dc=foo-bar, dc=org"
                AuthLDAPBindPassword secretword
                require valid-user
        </Location>

</VirtualHost>
    
por Jon Hadley 14.09.2010 / 09:33

1 resposta

3

Para começar, você deve ter:

WSGIProcessGroup trac

e não% {GLOBAL} como você tem.

A forma como você o possui, ainda em execução no modo incorporado e algum outro módulo do Apache ou aplicativo WSGI integrado pode estar interferindo.

    
por 14.09.2010 / 09:47