2012-01-14 2 views
1

Я устанавливал Plone со следующим билдаутом (через http://build.pythonpackages.com/buildout/plone/4.2.x):mod_wsgi + Zope2 + Plone + виртуальный хостинг конфигурация

[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 ошибка (не делать правильные вещи, когда conifgured ж/repoze.vhm)

+0

Я думаю, что вам нужно сделать VirtualHostMonster как-то с WSGI тоже? #RewriteRule^(. *)/VirtualHostBase/http /% {HTTP_HOST}: 80/Plone/VirtualHostRoot/$ 1 [L] Вы также можете использовать виртуальные хосты на основе скриптов на основе Python внутри обычного установщика Windows Zope. –

+0

Нет, вам не нужна VHM с repoze.vhm (см .: http://pythonpackages.com/info/repoze.vhm#repoze-vhm-vhm-xheaders-wsgi-filter) И да, я не хочу сделать что-нибудь взломанное. Попытка заставить это работать элегантным способом. – aclark

ответ

0

насчет:

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

IIRC, что даже меньше, чем vhm_xheaders, но я попробую еще раз, чтобы убедиться, спасибо. – aclark

 Смежные вопросы

  • Нет связанных вопросов^_^