【问题标题】:How do I deploy django webapp on apache2 server without having the domain name如何在没有域名的情况下在 apache2 服务器上部署 django webapp
【发布时间】:2014-07-25 00:23:44
【问题描述】:

这是我的 .conf 文件

<VirtualHost *:80>
WSGIScriptAlias / /home/ubuntu/firstweb.wsgi

ServerName ec2-66-***-52-61.compute-1.amazonaws.com
Alias /static /var/www/firstweb/static/

<Directory /var/www/firstweb/>
Order allow,deny
Allow from all
</Directory>
</VirtualHost>

通常在在线教程中,他们希望我将 ServerName 作为我带来的 web 域,但我希望我的 django 应用程序托管在服务器 localhost 本身上。假设我在浏览器上输入服务器的 ip 地址或 ec2 地址时,我的 django 应用程序应该会显示出来。

使用我当前的配置,我收到 403 错误,说我没有访问权限 /

通常当我使用默认的 python 服务器部署 django 时,我只是这样做,

> python manage.py runserver ec2-66-***-52-61.compute-1.amazonaws.com:80

然后当我在浏览器上打开 ec2-66-*-52-61.compute-1.amazonaws.com 时,我的应用程序就会出现。基本上我想用 apache2 复制它

我还没有域地址,我只想在我的计算机上输入公共 ip/ec2 地址,我的 django 应用程序应该会显示在上面。做什么?

【问题讨论】:

  • 你能发布你的settings.py吗?主要的事情是你是否在开发模式下运行,如果不是,你是否为公共地址配置了 allowed_hosts
  • 我应该发布 settings.py 的要点吗?
  • 很抱歉因为上班没收到回复;请注意,您现在应该确保更改密钥以防止人们调皮。
  • 它是一个临时的 ec2 实例,所以不用担心
  • 我把上面的 conf 文件放在默认的 conf 文件中,现在它给了我 403 错误,显然它现在与文件权限有关。我是 linux 新手,所以弄清楚是什么.

标签: python django deployment apache2


【解决方案1】:

我自己也遇到过这种情况,我总是给网站一个“虚拟”名称,然后我将其输入到我正在浏览的机器上的主机文件中。

.conf(在服务器上)

<VirtualHost *:80>
    ServerName mysite.dev
    .
    .
    .
</VirtualHost>

主机(在您浏览网站的机器上)

mysite.dev    <IP address of the server>

这个hosts条目可以在windows机器上工作,但在linux或mac上你需要交换顺序:

<IP address of server>    mysite.dev

在 windows 机器上,您会在 %SYSTEM32%\etc\drivers\hosts 找到 hosts 文件(该文件在 windows、linux 或 mac 中没有扩展名)

在 linux 或 mac 上,它位于 /etc/hosts,您需要 root 或 sudo 访问权限来编辑它

【讨论】:

  • 我可以从另一台计算机访问该网址吗?我相信hosts文件只会在主机上重定向?
  • 当我这样做时,将 mysite.dev 重定向到我的 ec2 实例的公共 IP。和浏览器中的链接,它显示 apache2 的默认 index.html 而不是我的 django 应用程序。这是地址54.205.52.61请不要做任何顽皮的事情。
  • 首先,您可以从任何计算机访问该 URL,但您需要在尝试浏览的任何计算机上添加 hosts 条目。您从 apache2 获取默认 index.html 的事实意味着 URL 部分工作正常。现在看起来您的 conf 文件有问题,因此您应该创建另一个问题,因为它是一个单独的问题。在此处留下指向新问题的链接,我会查看它。
  • 不,我不想更改每台访问该 url 的计算机上的 hosts 文件。我希望我的 django 应用程序部署在我的服务器的本地主机上,这样如果我在任何浏览器上键入服务器的公共 ip,我的应用程序就会显示出来。
  • 在这种情况下,您需要更改 apache 的默认 conf 以指向您的 django 应用程序。如果您的站点在 Ubuntu 或 Debian 机器上,这意味着编辑 /etc/sites-available/default
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-12
  • 2011-08-02
  • 1970-01-01
  • 2012-08-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多