【发布时间】: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 remove 或sudo 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。它还将删除属于包的所有配置文件。 -
我以不同的方式做了三遍。
remove和purge都保持 apache2.conf 不变 -
我也有很多问题。也许阅读我采取的步骤以及其他人向我提出的建议会有所帮助stackoverflow.com/questions/24233282/…
标签: python django apache ubuntu f2py