【发布时间】:2016-05-25 11:01:58
【问题描述】:
我有一个 Django 项目,我想在我的共享网络空间(1und1 网络空间)上运行,该项目在 linux 上运行。我没有 root 访问权限,因此无法编辑 apache 的 httpd.conf 或在系统范围内安装软件。
到目前为止我做了什么:
- 在本地安装了 squlite,因为它在服务器上不可用
- 在 ~/.localpython 中安装了 Python 3.5.1
- 为我的本地 python 安装了 virtualenv
- 在 ~/ve_tc_lb 中创建了一个虚拟环境
- 在我的虚拟环境中安装了 Django 和 Pillow
- 从 git 服务器克隆了我的 django 项目
在这些步骤之后,我可以在我的项目目录中运行python manage.py runserver,它似乎正在运行(我可以在本地机器上使用 lynx 访问登录屏幕)。
我阅读了很多关于如何配置 fastCGI 环境的帖子,但是由于我使用的是 Django 1.9.1,所以我依赖于 wsgi。我看到很多关于为 wsgi 和 virtualenv 配置 django 的内容,但是所有示例都需要访问 httpd.conf。
共享的网络服务器是 apache。
我可以使用示例 hello.py 在我的家中创建一个新目录,当我输入 url 时它正在工作,但它(当然)是使用服务器提供的 python 而不是我的本地安装。
当我将指示要使用哪个 python 版本的第一行更改为我的虚拟环境 (#!/path/to/home/ve_tc_lb/bin/python) 时,它似乎在虚拟环境中使用了正确的版本。由于我使用不同的系统进行开发和部署,我不确定是否是一个好主意,例如在我的djangoproject/wsgi.py 中添加这样一行。
2016-06-02 更新 我尝试了更多的东西:
- 我了解到我无权访问 apache 错误日志
- 在各种来源中阅读了很多关于 mod_wsgi 和 django 的内容,我只想在这里分享,以防将来有人需要它们:
- 我关注了the wsgi test script installation here - 但 wsgi 文件只是显示在我的浏览器中,而不是被执行。
总而言之,我的提供商 1und1 似乎没有安装 wsgi 扩展(即使支持人员在一周前告诉我它会安装)
2016 年 6 月 12 日更新:我收到了支持人员的回复(大约一周后 :-S),确认他们没有 mod_wsgi 但 wsgiref...
所以我有点卡在这里 - 我接下来应该执行哪些步骤? 我会根据 cmets 和备注定期更新问题。任何帮助表示赞赏。
【问题讨论】:
-
我个人对任何通用 AMP 共享主机 ISP 的体验总是很痛苦。有一些针对 Django 的廉价 ISP,有像 Heroku 这样的 PaaS 提供商和像 DigitalOcean 这样的廉价 VPS。遗憾的是,WSGI 应用程序不像部署 PHP。
标签: python linux django apache wsgi