【Django开发】阿里云服务器+apache+django部署你的网站

来源:互联网 发布:网络英语培训机构排名 编辑:程序博客网 时间:2024/06/06 03:22

之前在做课程设计的时候为了方便而就尝试了一下,感觉坑还是有点多,但是基本上只要小心多试一点应该还是没问题的。有空了先记下来保证,如果以后有需要还可以再回头参考。

参考教程:http://www.ziqiangxuetang.com/django/django-deploy.html

环境

  • 阿里云服务器 Ubuntu 14.04
  • python 2.7.6
  • Django 1.11
  • Apache 2.4.7

具体工具安装可以搜索相关教程,大部分可以通过apt-get来获取。另外根据参考教程我们应该还需要mod_wsgi

p.s. 可以分别使用命令lsb_release -a,python -v,python命令行状态下import django然后django --VERSION,apaceh2 -v等命令来查看你的版本号。

准备工作

首先我们需要将你的工程放到云服务器上,据说可以使用ftp的方式传送文件,linux下更是用scp即可。这里方便起见用的是github……

将工程上传后,我们使用putty远程登录到我们的阿里云服务器上,linux下可以使用ssh,windows下使用putty,这里以windows下为例:
这里写图片描述

在红色处输入阿里云提供的ip地址即可登入,进入后需输入用户名和密码,你需要在开通阿里云服务器的时候就设置自己的账户密码,我这里使用的是默认root账户。

我们可以知道用户通过登入网站然后获取访问我们服务器上文件的权限,我们需要分配或新建一个系统中的用户给apache用于访问(后来回顾貌似只需要建立一个账户即可,并不需要有太多额外的操作,其他所有的权限分配都只通过root账户来完成即可。

跟着步骤走

1. 网站配置文件

我们需要为我们的新网站在apache2中编写配置文件,我的网站应用名字为GiantFish,那么我首先需要建立一个配置文件,使用命令:

sudo vi /etc/apache2/sites-available/GiantFish.conf

打开后输入的配置如下所示:

<VirtualHost *:80>    ServerAdmin webmaster@localhost    # 这里应该是指明静态文件存放的地方和上传文件的地方    Alias /media/ /home/YongHu/GiantFish/media/    Alias /static/ /home/YongHu/GiantFish/static/    # 给两个文件夹分配权限    <Directory /home/YongHu/GiantFish/media>        Require all granted    </Directory>    <Directory /home/YongHu/GiantFish/static>        Require all granted    </Directory>    # 设置这里是为了帮助apache通过wsgi来找到django项目的位置    # 据说目的是为了一台服务器上多个django project    WSGIScriptAlias / /home/YongHu/GiantFish/GiantFish/wsgi.py    # 同样的设置一下权限    <Directory /home/YongHu/GiantFish/GiantFish>    <Files wsgi.py>        Require all granted    </Files>    </Directory></VirtualHost>

 2. 修改wsgi.py文件

在你的django项目中找到wsgi.py这个文件,它在我的这里:/home/YongHu/GiantFish/GiantFish/wsgi.py,然后我们需要写点配置,帮助apache找到我们的project,修改内容如下:

import osfrom django.core.wsgi import get_wsgi_applicationfrom os.path import join,dirname,abspathPROJECT_DIR = dirname(dirname(abspath(__file__)))# 新加import sys # 新加sys.path.insert(0,PROJECT_DIR) # 新加os.environ。setdefault("DJANGO_SETTING_MODULE", "GiantFish.settings")application = get_wsgi_application()

3. 设置目录和文件权限

此处跟着教程做就好,需要注意的点是:

我们apache需要设置服务器的运行用户,也就是说/etc/apache2/envvars里面应该是长这样的(因为我的访问用户是YongHu):

# Since there is no sane way to get the parsed apache2 config in scripts, some# settings are defined via environment variables and then used in apache2ctl,# /etc/init.d/apache2, /etc/logrotate.d/apache2, etc.export APACHE_RUN_USER=YongHuexport APACHE_RUN_GROUP=YongHu

这样你在后面设置权限的时候就需要chgrp命令来给更改需要的文件夹的用户组为这一用户,然后赋予其相应的权限。

4. 激活网站

sudo a2ensite GiantFish.conf

后面全看人品了(真的回忆不起太多细节了啊!!)

0 0
原创粉丝点击