将Django项目复制到根服务器不起作用

时间:2014-06-17 01:00:21

标签: python django deployment

我希望你能帮助我。

我一直在为我为Django和Lightning Fast Shop工作的公司建立这个网上商店。

它基本上已经完成,我已经在我的PC上运行了一个虚拟的ubuntu机器。由于在整个时间离开我的电脑很烦人,所以其他人可以访问该网站,我想将它部署在根服务器上。所以我得到了一个JiffyBox并在其上安装了ubuntu。

我设法让Gnome继续工作并使用VNC连接到它。然后我通过FTP将完成的项目上传到服务器。

现在我想我只需要下载Django-LFS,创建一个新项目并用我完成的项目替换项目文件。

当我在虚拟机上测试时,这很有效。

令我失望的是它在根服务器上不起作用。当我尝试运行“bin / django runserver”时,我收到一条错误消息“bash:bin / django:Permission denied”,当我尝试使用'sudo'时,我得到“sudo:bin / django:command not found”

然后我意识到我已经下载了更新版本的Django-LFS并尝试使用相同的版本无济于事。

我开始变得非常沮丧,如果有人可以帮我解决我的问题,我会非常感激。

问候,Krytos。

2 个答案:

答案 0 :(得分:0)

我不知道" root"服务器是。但是你不能通过复制文件来部署Django:你需要配置web服务器。该文档有一个非常comprehensive explanation

答案 1 :(得分:0)

我知道这一小贴士可能很明显,但从来不知道:

  • 您是否更新了settings.py中的所有设置? (静态文件的路径,项目的路径......)
  • 您使用的是哪个服务器? django服务器?阿帕奇? nginx?
  • 您是否拥有项目中所有文件的权限?您应检查文件的所有者是否为用户 STRONG>。如果所有者是root用户,则在root拥有的每个文件中都会出现此权限问题。
  • 您使用的是uwsgi吗?
  • 您是否安装了VM中的所有应用程序?
  • 您是否安装了VM中的SAME版本?

当我将项目从VM移动到真实服务器时,我会执行以下步骤:

  • 查看settings.py并更新路径
  • 检查Web服务器可能使用的文件夹中的权限
  • 我有一个包含txt文件中包和版本的列表,我们称之为packages.txt
  • 我使用pip install -r packages.txt
  • 安装了所有软件包
  • 我总是使用apache / nginx,所以我必须将虚拟主机更新为新路径
  • 如果我正在使用uwsgi,请更新uwsgi设置

要降级某些pip软件包,您可能需要删除egg文件,因为如果您卸载软件包并重新安装它,尽管您使用pip install package==VERSION,如果您已经下载了软件包,则pip将安装这个,即使VERSION不同。

要检查pip包的实际版本,请使用pip freeze

要将所有pip包导出到文件,要在其他位置导入它们:pip freeze > packages.txt nad从此文件安装包pip install -r packages.txt