资讯专栏INFORMATION COLUMN

Ubuntu下部署Django应用

tinysun1234 / 1032人阅读

摘要:配置这个启动其他方式安装七牛云由于网站的静态存储要用七牛云,在运行程序前要安装否则报错没有的方法。七牛云安装前注意安装的版本,我被坑过一次,写程序时是版本,部署时都了,接口全都不一样。还有推荐下这篇来自的部署实例

以下所有代码中的操作都需要在命令行运行

安装mysql
apt-get update
apt-get install mysql-server mysql-client

根据提示设置MySQL root用户密码

MySQL设置中文utf8格式

一般在/etc/mysql

[client]下添加default-character-set=utf8

[mysqld]下添加character-set-server=utf8

[mysql]下添加default-character-set=utf8

重启MySQL

service mysql restart

进入MySQL查看编码

show variables like "char%";

为MySQL建立远程连接

由于修改数据库时不可能频繁的登服务器在命令行下修改,远程用workbench连接MySQL服务器是更方便的选择,先登入MySQL,授权一个可以远程连接这个数据库的用户名和密码

>>GRANT ALL PRIVILEGES ON *.* TO myuser@"%" IDENTIFIED BY "mypassword" WITH GRANT OPTION;
>>FLUSH PRIVILEGES; 

有的MySQL没有开放远程连接的端口,只允许本地连接,你需要查看my.conf之类的文件,我的在/etc/mysql/my.cnf

bind-address:127.0.0.1

那行注释掉即可

安装pip

下载地址

apt-get install python-pip
安装django1.7

django官网

pip install Django==1.7

python进入python2.7解释器

>>import django
>>

不出错说明安装成功

安装mysql-python

安装mysql-python注意需要配置mysql_config我的在(/usr/bin目录下,其他的类似也在bin目录下,视不同系统不同版本而定)如果 /usr/bin目录下没有mysql_config,需要安装mysql开发包

apt-get install python-setuptools
apt-get install libmysqld-dev
apt-get install libmysqlclient-dev
apt-get install python-dev

下载链接https://pypi.python.org/pypi/MySQL-python/

wget "url"

解压zip文件,首先安装unzip

apt-get install unzip
unzip mysql-python.zip
cd mysql-python
vi site.cfg

mysql_config路径那行取消注释,路径为/usr/bin/mysql_config

cd ..
python setup.py build
python setup.py install

进去python解释器

>>import MySQLdb
>>

不报错说明安装成功

MySQLdb不支持python3,可以试试pymysql,同时在Python3的项目中,需要在__init__.py中添加

import pymysql
pymysql.install_as_MySQLdb()

这是由于Django调用MySQL的接口问题,在setting.py文件中具体为"ENGINE": "django.db.backends.mysql",,仔细查看这句代码就会发现Django默认调用的是MySQLdb,虽然它只支持Python2.0。

配置nginx

最重要的就是nginx的配置

我的配置目录在/etc/nginx/nginx.conf/etc/nginx/sites-enable/*后者可以在前者文件中设置,先查看配置文件/etc/nginx/sites-enable/django

根据自己的应用修改配置文件中static路径,server_name,root等。修改完毕注意要service nginx reload

关于静态文件的地址配置还是需要多说一句,nginx中的/static目录对应的是setting.py文件中的STATIC_ROOT目录,两个写一样的,执行python manage.py collectstatic收集的文件是admin后台模块的静态样式文件,执行完后这些静态文件就被复制在你设置的STATIC_ROOT目录了。

部署代码

因为我的代码在github,先安装git

apt-get install git
git clone https://github.com/tcitry/dlpucsdn.git

部署以后注意修改数据库密码,邮件服务器密码,debug模式False,template_debug模式为False。

virtualenv
pip install virtualenv

根据网上现有的教程简单看看virtualenv的使用很容易理解,在项目依赖的相关程序配置过程中需要始终开着virtualenv。

配置Gunicorn

查看这个教程修改为自己的应用参数

service gunicorn restart

当部署一个应用时可以将配置文件放在/etc/init.d/gunicorn.conf文件里面。但同时部署多个文件的时候,可以使用supervisor+gunicorn+virtualenv的部署方式,这样可以在每个不同的项目目录利用virtualenv为每个应用配置不同的环境,同时可以使服务器的环境更加易于管理。

先在项目的根目录测试一下,确保gunicorn安装正确,

../bin/gunicorn myapp.wsgi:application

不出错就说明正确了,出错一般是提示没有那个module名,检查一下django是否安装,执行命令的文件目录是否正确。

supervisor的使用
apt-get install supervisor
sudo vim /etc/supervisord.conf

编辑的内容如下,请自行修改项目和目录名。

[program:classroom]
command = sh /home/projects/classroom/classroom/gunicorn_start
user = root
redirect_stderr = true
autorestart = true

配置这个gunicorn_start.sh

cd /home/projects/classroom/classroom
../bin/gunicorn classroom.wsgi:application -w 4 -b :8000

启动supervisor

/etc/init.d/supervisord start

其他方式

supervisorctl start 
supervisorctl stop 
安装七牛云SDK

由于网站的静态存储要用七牛云,在运行程序前要安装否则报错没有qiniu SDK的方法。

pip install qiniu

七牛云安装前注意安装的版本,我被坑过一次,写程序时是6.0版本,部署时都7.0了,接口全都不一样。

还有

还有不推荐cloudflare等国外CDN加速,亲身体验。

还有推荐下这篇来自digitalocean的部署实例

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/37578.html

相关文章

  • 在阿里云上Ubuntu环境通过nginx+uwsgi部署Django项目

    年前阿里云打折,1核1G的云服务器一年只要300多块,果断就租了1年的。既然服务器已经到手,怎么能不把自己写的项目部署上去呢,其实网上关于nginx+uwsgi部署Django项目的文章有很多,但是这些文章要不就是很久之前的,要不就是互相抄袭,一路过来都是坑,这里重点吧在部署时候遇到的坑着重介绍一下: 1.首先部署django项目 首先是django项目,由于我是使用Anaconda来进行版本控制...

    asce1885 评论0 收藏0
  • Django + Apache 部署

    摘要:站真是个学习的地方,竟发现了杨老师的部署视频,杨老师的站主页在此主页有一系列的学习视频,推荐干货用于部署的项目主要用了提供后台,所以静态文件仅有部分的。接下来是部署和激活阶段了。 吐吐槽 此篇blog将详细记录部署Django的每一个步骤,网上现有的教程实在太少太老了!好多坑!第一次尝试后台很懵,最坑的地方是安装的wsgi部分模块需要更新。B站真是个学习的地方,竟发现了杨老师的部署视频...

    keke 评论0 收藏0

发表评论

0条评论

tinysun1234

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<