【问题标题】:Django + Apache deployment on Ubuntu在 Ubuntu 上部署 Django + Apache
【发布时间】:2014-12-02 16:55:16
【问题描述】:

我浏览了关于这个主题的大量链接,专门用于在 Ubuntu 服务器上部署 Django 和 Apache。最后,我找到了这个链接Django Deployement Installation to Ubuntu 12.04 Server,它让我比任何其他指南都走得更远。所以,现在,我在这一点上 - 我安装了所有软件和依赖项,启用了 mod_WSGI,安装了 Python 环境和 Django,开始了一个新项目等。我将我的域名称为“动态”。所以,我在/etc/apache2/sites-available 文件夹中的dynamics 文件现在看起来像这样:

<VirtualHost *:80>
 ServerAdmin root@dynamics
 ServerName dynamics

 Alias /site_media/ /srv/my_project/app/webapp/site_media/
 Alias /static/ /srv/my_project/venv/lib/python2.7/site-packages/django/contrib/admin /static/
 Alias /robots.txt /srv/my_project/app/webapp/site_media/robots.txt
 Alias /favicon.ico /srv/my_project/app/webapp/site_media/favicon.ico

 CustomLog "|/usr/sbin/rotatelogs /srv/my_project/logs/access.log.%Y%m%d-%H%M%S 5M" combined
 ErrorLog "|/usr/sbin/rotatelogs /srv/my_project/logs/error.log.%Y%m%d-%H%M%S 5M"
 LogLevel warn

 WSGIDaemonProcess dynamics user=itsme group=itsme processes=1 threads=15 maximum-  requests=10000 python-path=/srv/my_project/venv/lib/python2.7/site-packages python- eggs=/srv/my_project/run/eggs
 WSGIProcessGroup dynamics
 WSGIScriptAlias / /srv/my_project/app/conf/apache/django.wsgi

 <Directory /srv/my_project/app/webapp/site_media>
  Order deny,allow
  Allow from all
  Options -Indexes FollowSymLinks
 </Directory>

 <Directory /srv/my_project/app/conf/apache>
  Order deny,allow
  Allow from all
 </Directory>

 </VirtualHost>

但是,当我启动 apache 并转到 localhost我看到 Not found 错误,如果我尝试转到 http://dynamics/ 我被重定向到谷歌搜索页面。我想我需要做一些额外的配置,但我不知道是哪些。可能,我需要在apache.conf 中指定 ServerRoot(但对于所有这些 django 文件夹,我不知道我应该准确指向哪里)。

编辑 现在,情况更糟。我试图重新安装 apache,但是当我转到 localhost 时,浏览器想要加载一个像文件一样的页面。所以,我一步一步做了什么:

1. sudo apt-get remove apache2 # remove to install from scratch
2. sudo apt-get update
3. sudo apt-get install apache2
4. sudo a2dissite default # disable the default site
5. create dynamics file in /etc/apache2/sites-available
6. dynamics file contains these lines:

<VirtualHost *:80>
 ServerAdmin root@dynamics
 ServerName dynamics
 DocumentRoot /home/username/Sites/dynamics
 <Directory /home/username/Sites/dynamics/>
   Options Indexes FollowSymLinks MultiViews
   AllowOverride Node
   Order allow,deny
   allow from all
 </Directory>
</VirtualHost>
7. /etc/apache2/apache2.conf contains `ServerName dynamics`. 

如果我也将 SeverRoot 指定为 /home/username/Sites/dynamics 我会收到数百个错误,当我重新启动 apache 时,所以我没有指定它。 问题:

1. If I go to `http://dynamics`, I'm redirected to google search page
2. If I go to localhost, the browser wants to load a page like a file

所以,重新安装后我什至退了一步。我什至无法制作虚拟主机。在这个过程中,我遇到了一件事——如果你做sudo apt-get removesudo apt-get purge,不管他们怎么说,我仍然看到 apache 配置文件没有被修改——就像卸载之前一样。所以,我现在有一个额外的问题:

1. How to uninstall completely apache. All guides and tips that I followed left apache config files just as they were.

编辑

好吧,我从一开始就重新安装了 apache,添加了一个虚拟主机 dynamics(首先,没有任何与 django 的链接),然后我按照 Daniel Roseman 的建议 - 稍微更正了 hosts 文件。至少,这部分不起作用。我可以将 index.html 文件添加到动态文件夹,如果我转到 http://dynamics/ 我会看到此页面呈现。但是,我所有构建 django 项目并在同一 URL http://dynamics 上运行的尝试都以失败告终。每次我收到此错误“未找到”。大量的指南、数百个博客和大量的手册似乎对(我认为)最简单的任务毫无用处——只是在 Apache 上运行一个 django 项目。

编辑

我将开始一个赏金问题。现在,我只想事先将所有内容正式化。问题是如何在 Ubuntu 上部署 Django 和 Apache?要求:

Strongly required:
1. Ubuntu 12.04
2. Python 3.3.4
3. Apache 2.2.22
4. mod_wsgi

不是那么强烈: 5. 如果有人会制作一个正在运行的测试用例,那会很酷。所以,我的最终目标是制作一个小型网络项目,我可以在其中使用f2py 调用fortran 子例程。如果在这种环境下可以建立这种联系,我将完全欣喜若狂。假设我想要一个名为dynamics 的具体虚拟主机。所以,我想将所有项目的文件存储在这个目录 /home/victor/dynamics/ 中。我需要一步一步的指导,而不仅仅是一些提示。并且希望这个指令,如果有人能做到的话,会在像我这样的 django newbeis 中非常受欢迎。

【问题讨论】:

  • 哈哈,用户名 Jacobian 让我们 Django 人认为你是 Jacob Kaplan-Moss
  • 附注默认的 /etc/apache2/apache2.conf 在 sites-enabled 中查找配置(不是可用的站点!所以可能在那里进行符号链接)
  • 如果你想彻底重新安装一个包,你必须清除它,而不是删除它:sudo apt-get purge apache2。它还将删除属于包的所有配置文件。
  • 我以不同的方式做了三遍。 removepurge 都保持 apache2.conf 不变
  • 我也有很多问题。也许阅读我采取的步骤以及其他人向我提出的建议会有所帮助stackoverflow.com/questions/24233282/…

标签: python django apache ubuntu f2py


【解决方案1】:

您需要运行 sudo a2ensite dynamics 以启用动态配置(或者您可以手动将其符号链接到启用站点),然后使用 sudo /etc/init.d/apache2 restart 重新启动 Apache。

编辑 看起来另一个问题是您试图将您的虚拟主机与一个不存在且与您的机器无关的域名相关联,即dynamics。如果您想这样访问它,您需要编辑您的 /etc/hosts 以将该名称指向您的本地主机:将此行添加到该文件:

127.0.0.1    dynamics

别忘了,这只是对您机器的破解。对于实际部署,您需要一个可通过 DNS 解析的正确域名。

【讨论】:

  • 我做了所有这些,但仍然有同样的问题。我会尝试一步一步地再做一次。真正让我发疯的是,有大量的教程、指南和手册,但是没有一个文档可以让您一步一步地得到您想要的。
  • 谢谢,我现在去看看!
【解决方案2】:

您是否从以下路径检查了您的本地主机文件,其中包含作为本地主机的“动态”?

文件位置: /etc/hosts

127.0.0.1   localhost
127.0.1.1   dynamics

【讨论】:

  • 正如我所写的,我听从了 Danel Roseman 的建议。而且,是的,我是这样做的。但它并没有解决django的部分问题。
猜你喜欢
  • 2018-06-26
  • 2014-04-11
  • 2016-02-26
  • 2017-08-11
  • 2015-01-27
  • 2015-02-19
  • 2014-04-10
  • 1970-01-01
  • 2019-06-22
相关资源
最近更新 更多