我正在按照以下说明设置 pylons 应用程序 CKAN: http://packages.python.org/ckan/deployment.html
但是当我使用 IP 或主机名指向服务器(尚未设置 DNS)时,我只看到 apache 的问候页面,表明 ckan 应用程序尚未加载。
这是我的 mod_wsgi 脚本:
import os
instance_dir = '/home/flavio/var/srvc/ckan.emap.fgv.br'
config_file = 'ckan.emap.fgv.br.ini'
pyenv_bin_dir = os.path.join(instance_dir, 'pyenv', 'bin')
activate_this = os.path.join(pyenv_bin_dir, 'activate_this.py')
execfile(activate_this, dict(__file__=activate_this))
from paste.deploy import loadapp
config_filepath = os.path.join(instance_dir, config_file)
from paste.script.util.logging_config import fileConfig
fileConfig(config_filepath)
application = loadapp('config:%s' % config_filepath)
这是我的虚拟主机配置:
<VirtualHost *:80>
ServerName dck093
ServerAlias dck093
WSGIScriptAlias / /home/flavio/var/srvc/ckan.emap.fgv.br/pyenv/bin/ckan.emap.fgv.br.py
# pass authorization info on (needed for rest api)
WSGIPassAuthorization On
ErrorLog /var/log/apache2/ckan.emap.fgv.br.error.log
CustomLog /var/log/apache2/ckan.emap.fgv.br.custom.log combined
<Directory /home/flavio/var/srvc/ckan.emap.fgv.br/pyenv/bin>
Order deny,allow
Allow from all
</Directory>
</VirtualHost>
我尝试禁用 000-default 站点(使用 a2dissite),但无济于事。执行此操作后,我收到内部服务器错误页面,但没有日志消息。有人能指出我遗漏了什么吗?
答案1
如果您使用 IP 访问服务器,ServerName
则您应该具有ServerAlias
您正在使用的 IP,否则虚拟主机将无法加载。
答案2
我发现 Pylons 的调试功能不适用于 apache mod_wsgi 的默认多进程配置。
看:https://stackoverflow.com/questions/5485790/mod-wsgi-pylons-ckan-installation-not-working
更多细节。