mod_wsgi + Zope2 + Plone + настройка виртуального хостинга - PullRequest
1 голос
/ 15 января 2012

Я настроил Plone со следующим buildout (через http://build.pythonpackages.com/buildout/plone/4.2.x):

[buildout]
allow-hosts =
    *.plone.org
    *.python.org
extensions = buildout.bootstrap
extends = http://dist.plone.org/release/4.2b1/versions.cfg
find-links = http://dist.plone.org/thirdparty/elementtree-1.2.7-20070827-preview.zip
parts =
    mod-wsgi
    plone
    plone-mod-wsgi
    plone-paste
versions = versions

[mod-wsgi]
recipe = collective.recipe.modwsgi
eggs = ${plone:eggs}
config-file = ${buildout:directory}/plone-mod-wsgi.ini

[plone]
recipe = plone.recipe.zope2instance
eggs =
    PasteScript
    Pillow
    Plone
    WebError
    repoze.retry
    repoze.tm2
    repoze.vhm
products =
user = admin:admin
scripts = paster

[plone-mod-wsgi]
recipe = collective.recipe.template
url = http://build.pythonpackages.com/buildout/plone/plone-mod-wsgi.ini.in
output = ${buildout:directory}/plone-mod-wsgi.ini

[plone-paste]
recipe = collective.recipe.template
url = http://build.pythonpackages.com/buildout/plone/plone-paste.ini.in
output = ${buildout:directory}/plone-paste.ini

[versions]
distribute = 0.6.24
zc.buildout = 1.5.2
Zope2 = 2.13.11

и Apache со следующим конфигом:

<VirtualHost *:80>
    …

    # Use only 1 Python sub-interpreter.  Multiple sub-interpreters
    # play badly with C extensions.
    WSGIApplicationGroup %{GLOBAL}
    WSGIPassAuthorization On
    WSGIDaemonProcess plone user=aclark group=staff processes=1 \
       threads=4 \
       python-path=/srv/aclark.net/eggs
    WSGIScriptAlias / /srv/aclark.net/parts/mod-wsgi/wsgi

    <Directory /srv/aclark.net>
      WSGIProcessGroup plone
      Order allow,deny
      Allow from all
      SetEnv HTTP_X_VHM_HOST http://aclark.net
      SetEnv HTTP_X_VHM_ROOT /Plone
    </Directory>

</VirtualHost>

Моя «декларативная» конфигурация WSGI (вызывается / srv / aclark.net / parts / mod-wsgi / wsgi ) выглядит следующим образом:

[app:plone]
use = egg:Zope2#main
zope_conf = /srv/aclark.net/parts/plone/etc/zope.conf

[pipeline:main]
pipeline =
    egg:repoze.retry#retry
    egg:repoze.tm2#tm
    egg:repoze.vhm#vhm_xheaders
    plone

# Begin logging configuration

[loggers]
keys = root

[handlers]
keys = console

[formatters]
keys = generic

[logger_root]
level = WARN
handlers = console

[handler_console]
class = StreamHandler
args = (sys.stderr,)
level = NOTSET
formatter = generic

[formatter_generic]
format = %(asctime)s %(levelname)-5.5s [%(name)s][%(threadName)s] %(message)s

# End logging configuration

Это все частично работает, загружая http://aclark.net/Plone, когда вы запрашиваете http://aclark.net. Однако Zope2 все еще генерирует URL, которые начинаются с http://aclark.net/Plone.

Я что-то упустил? Или это ошибка Zope2 (при правильной настройке она не работает правильно с / 1030 * repoze.vhm )

Ответы [ 2 ]

0 голосов
/ 15 июня 2012

Полная поддержка WSGI для Zope2 все еще находится в стадии разработки.См .:

0 голосов
/ 17 января 2012

как насчет:

[filter:vhm]
use = egg:repoze.vhm#vhm_explicit
host = http://www.example.com
root = /mysite
...