重装OpenStack Dashboard后出现ImportError: No module named django.core.wsgi
嘿,我在处理OpenStack Liberty版本的Horizon问题上碰过不少类似的坑,结合你用Ubuntu14.04的环境,咱们一步步把这个mod_wsgi加载失败的问题搞定:
1. 先彻底清理残留的“历史包袱”
之前同事改的主题、SSL配置,还有卸载时没清干净的文件,大概率是这次问题的元凶。咱们先把这些残留彻底清掉:
# 彻底卸载Horizon包及依赖 sudo apt-get purge openstack-dashboard sudo apt-get autoremove --purge # 删除残留的配置和安装目录 sudo rm -rf /usr/share/openstack-dashboard/ sudo rm -rf /etc/openstack-dashboard/ sudo rm -rf /var/lib/openstack-dashboard/
注意:如果之前有你自己需要保留的配置,先备份好再执行上面的删除命令
2. 重新安装Horizon并恢复默认配置
清理干净后,重新安装官方包,然后用默认配置初始化:
sudo apt-get update sudo apt-get install openstack-dashboard
安装完成后,复制官方默认的配置文件(别直接用空的配置):
sudo cp /usr/share/openstack-dashboard/openstack_dashboard/local/local_settings.py.example /usr/share/openstack-dashboard/openstack_dashboard/local/local_settings.py
接着编辑配置文件,设置几个关键项:
sudo nano /usr/share/openstack-dashboard/openstack_dashboard/local/local_settings.py
- 找到
OPENSTACK_HOST,改成你的Keystone服务地址(比如127.0.0.1或者集群内的Keystone节点IP) - 找到
ALLOWED_HOSTS,设置为['*',](测试用,生产环境可以改成具体主机名) - 确保
DEBUG设置为False(生产环境),如果是调试可以临时设为True
3. 修复文件权限(90%的WSGI加载失败都跟这个有关)
Apache运行的用户是www-data,如果Horizon的文件权限不对,mod_wsgi根本读不到脚本:
# 把Horizon目录的所有权改成www-data sudo chown -R www-data:www-data /usr/share/openstack-dashboard/ # 设置合理的读写权限 sudo chmod -R 755 /usr/share/openstack-dashboard/
然后重启Apache服务:
sudo service apache2 restart
4. 清理Apache的SSL配置残留
如果之前同事配置了Horizon的SSL,Apache的站点配置里可能还留着旧的SSL规则,和新安装的默认配置冲突:
# 查看所有Apache站点配置 ls /etc/apache2/sites-available/
如果看到类似openstack-dashboard-ssl.conf的文件,先禁用它:
sudo a2dissite openstack-dashboard-ssl.conf
然后确保默认的Horizon站点配置是启用的:
sudo a2ensite openstack-dashboard.conf
再次重启Apache:
sudo service apache2 restart
5. 查看详细日志定位剩余问题
如果上面几步还没解决,就得看Apache的错误日志找具体原因了:
sudo tail -f /var/log/apache2/error.log
日志里会给出精确的错误信息,比如:
- 如果提示某个Python模块缺失,就重新安装对应的依赖:
sudo apt-get install --reinstall python-openstack-dashboard - 如果提示配置文件语法错误,就检查
local_settings.py里的拼写或者括号是否匹配
内容的提问来源于stack exchange,提问作者Sbal
相关产品推荐
相关产品推荐

