在apache上运行django

在apache上运行django,django,apache,digital-ocean,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 Djang

首先:请不要因为我犯了新手错误或诸如此类的事情而责怪我。我还在学习,只需要一点帮助。 因此,我使用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”

然后在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.
它不是用来通过Apache为您的页面提供服务的,它只是一个轻量级的本地开发服务器,用于在编写代码时运行代码

相反,你应该遵循一个原则

在这种情况下,我唯一愿意给出的建议是,如果您试图在虚拟机或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
仅用于本地开发。不要使用它来尝试通过Apache托管一个站点,因为这就是像
mod_wsgi
这样的托管驱动程序的用途。

这个不是用来通过Apache为您的页面提供服务的,它只是一个轻量级的本地开发服务器,用于在编写代码时运行您的代码

相反,你应该遵循一个原则

在这种情况下,我唯一愿意给出的建议是,如果您试图在虚拟机或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
仅用于本地开发。不要使用它来尝试通过Apache托管站点,因为这是像
mod_wsgi
这样的托管驱动程序的用途。

runserver和Apache是两种不同的东西

开发人员使用本地runserver在本地编写和运行web应用程序。通常本地加载的设置是不同的,例如,生产网站使用设置,而您在本地使用覆盖生产设置的设置\ u local.py(非常简单的示例)

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


如果您的目标是部署web应用程序,那么您需要类似于apache的东西,而不是本地。IMHO,我建议您避免使用Apache,使用Nginx+Gunicorn+supervisord在生产服务器上管理您的webapp。更容易配置。

runserver和apache是两种不同的东西

开发人员使用本地runserver在本地编写和运行web应用程序。通常本地加载的设置是不同的,例如,生产网站使用设置,而您在本地使用覆盖生产设置的设置\ u local.py(非常简单的示例)

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


如果您的目标是部署web应用程序,那么您需要类似于apache的东西,而不是本地。IMHO,我建议您避免使用Apache,使用Nginx+Gunicorn+supervisord在生产服务器上管理您的webapp。更容易配置。

您能粘贴
python manage.py运行服务器的输出吗?
?我编辑了它。到目前为止,我没有发现任何错误。你能粘贴
python manage.py运行服务器的输出吗?
?我编辑了它。到目前为止,我看不出有什么错误,我理解。我想测试django是否安装正确。即使我以后不使用runserver,这难道不应该工作吗?不一定,这根本不是它的目的。所以你建议继续配置apache?是的。如果您试图从服务器获取应用程序托管,请配置apache。如果您正在进行一些本地开发,请使用runserver。不要把两者混为一谈,我明白。我想测试django是否安装正确。即使我以后不使用runserver,这难道不应该工作吗?不一定,这根本不是它的目的。所以你建议继续配置apache?是的。如果您试图从服务器获取应用程序托管,请配置apache。如果您正在进行一些本地开发,请使用runserver。不要把两者混为一谈。