在apache上运行django

时间:2017-09-02 21:59:37

标签: django apache digital-ocean

首先:请不要责怪我犯新手错误或其他类似错误。我还在学习,需要一些帮助。 所以我用ubuntu 16.04在digitalocean上创建了一个droplet并登录并运行:

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install python-setuptools python-pip apache2 libapache2-mod-wsgi

并安装了django:

sudo pip install Django==11.1.4

并在目录中创建了项目(没有virtualenv):

django-admin.py startproject mysite

但是,如果我做“runserver”

python manage.py runserver

并在firefox中输入xxx.xxx.xxx.xx:8000即使我在终端中看到runserver确实有效,也没有任何内容。如果我输入xxx.xxx.xxx.xx,那么我会看到apache的默认页面。我的目标是在apache上运行django,但我甚至无法启动,因为仅用于测试的runserver甚至无法工作。我怎样才能做到这一点,我在哪里弄错了?

编辑:runserver的输出是:

Performing system checks...

System check identified no issues (0 silenced).
September 02, 2017 - 22:21:12
Django version 1.11.4, using settings 'mysite.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.

2 个答案:

答案 0 :(得分:2)

manage.py runserver NOT 用于通过Apache提供网页,意味着作为轻量级本地开发服务器,用于在编写代码时运行代码它

相反,您应该关注guide to run DJango on Apache using mod_wsgi

在这种情况下,我愿意给出的唯一一点建议是,如果您尝试在虚拟机或Docker容器中托管runserver,则需要明确设置主机绑定到

manage.py runserver 0.0.0.0:8000
  

请注意,无法从网络上的其他计算机访问默认IP地址127.0.0.1。要使您的开发服务器可以在网络上的其他计算机上查看,请使用自己的IP地址(例如192.168.2.1)或0.0.0.0或::(启用IPv6)。

同样,runserver用于本地开发 NOT 使用它来尝试通过Apache来托管网站,因为这就是mod_wsgi等托管驱动程序的用途。

答案 1 :(得分:0)

runserver和apache有两个不同的东西。

开发人员使用本地runserver在本地编写和运行Web应用程序。通常本地加载的设置是不同的,例如生产网站使用设置,在本地使用settings_local.py来生成设置(非常简化的示例)。

如果您运行runserver并加载http://127.0.0.1:8000/,您应该能够看到一些内容,并且您应该在终端上看到runserver对来自浏览器的请求的响应。

如果您的目标是部署Web应用程序而不是需要apache之类的内容,而不是本地。恕我直言,我建议你避免Apache并使用Nginx + Gunicorn + supervisord来管理你的生产服务器上的webapp。更容易配置。