【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
后面全看人品了(真的回忆不起太多细节了啊!!)
- 【Django开发】阿里云服务器+apache+django部署你的网站
- 阿里云ECS服务器部署django
- 利用apache+wsgi运行你的django网站 - [开发]
- Apache+WSGI+Django+Python的服务器部署
- django的apache部署
- 如何在阿里云上部署django网站
- 在linux apache 上部署 django 网站
- apache服务器使用wsgi部署django站点
- 将django部署到Apache服务器
- django 部署到Apache服务器上
- 将django部署到Apache服务器
- django+python+apache+生产服务器 部署
- 将Django应用部署到Apache服务器
- 向Apache服务器部署Django项目
- Django 在服务器的部署
- 阿里云ECS(win server2008)部署Django
- nginx&gunicorn&django阿里云简单部署
- Apache 部署 django
- Mybatis步步进阶(五)——Mybatis输入输出映射及动态SQL Review
- 皮尔逊相关系数
- python 字符编码处理
- Java千百问_06数据结构(023)_基本数据类型在内存中如何存放
- 跟我一起学Multiple View Geometry多视图几何(3)
- 【Django开发】阿里云服务器+apache+django部署你的网站
- 3-5:hidden过滤选择器
- LeetCode - 278. First Bad Version
- Because the people who are crazy enough to think they can change the world, are the ones who do.
- VS2013配置文件常见问题解决方法
- 配置keil MDK和keil C51共存
- 配置Windows下编译运行C/C++过程
- linux与Windows共享文件配置
- 2.1 Linux进程介绍