部署Django+Nginx+Mysql到阿里云服务器

基于Ubuntu16.04 + Python3 + nginx + mysql + Django

从windows传文件到服务器使用了XFTP

准备:阿里云的服务器,自己电脑上可以跑的Django项目,XFTP,Xshell


XFTP

安装python3.6

apt-get update

apt-get install software-properties-common

add-apt-repository ppa:jonathonf/python-3.6

apt-get update

apt-install python3.6

创建软链接

cd /usr/bin

rm python

ln -s python3.6 python

rm python3

ln -s python3.6 python3

Ubuntu默认Python为2.7,所以安装Python包时安装的为py2的包。

利用alternatives机制更改py3为默认。

sudo update-alternatives --install /usr/bin/python python /usr/bin/python2 100

sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 150

安装pip3.6

apt-get install python3-pip

升级pip

pip3 install --upgrade pip

删除mysql:

sudo apt-get remove mysql-*

dpkg -l |grep ^rc|awk '{print $2}' |sudo xargs dpkg -P

安装Mysql

cd /home

wget https://dev.mysql.com/get/mysql-apt-config_0.8.10-1_all.deb

ls

dpkg - i 上面列出的安装包

apt-get install mysql-server

mysql -u root -p

show databases;

创建用户专属数据库

创建数据库

CREATE DATABASE 你的数据库名称 DEFAULT CHARSET=utf8 DEFAULT COLLATE utf8_unicode_ci;

脚本已经写好,使用XFTP上传到home目录下

cd /home

sudo mysql -u root -p databasename<movie.sql

创建用户:

CREATE USER '你的用户名'@'localhost' IDENTIFIED BY '你的密码';

mysql> CREATE USER 'user1'@'localhost' IDENTIFIED BY 'qweasdzxc';

再把刚刚创建的数据库的管理权限给予刚刚创建的MySQL用户:

GRANT ALL PRIVILEGES ON 你的数据库名.* TO '你的用户名'@'localhost';

mysql> GRANT ALL PRIVILEGES ON movie.* TO 'user1'@'localhost';

最后,刷新权限:

FLUSH PRIVILEGES;

验证:

mysql -u user1 -p movie

show tables;


show tables;


还原数据库(这里是我导入已经写好的movie.sql脚本,使用XFTP上传到服务器);进入家目录(home),输入下面命令:

cd /home

sudo mysql -u user1(创建的用户名) -p movie(数据库名)<shiguang.sql

sudo mysql -u user1 -p movie<movie.sql

mysql -u user1 -p movie

show tables;


安装Mysqlclient

cd /home

wget https://dev.mysql.com/get/Downloads/MySQL-8.0/libmysqlclient-dev_8.0.13-1ubuntu16.04_amd64.deb

dpkg -i libmysqlclient-dev_8.0.13-1ubuntu16.04_amd64.deb

apt-get update

apt-get install libmysqlclient-dev

apt-get install python3.6-dev

安装uwsgi

pip3(pip) install uwsgi

测试uwsgi

进入官网

https://www.djangoproject.com/

https://uwsgi.readthedocs.io/en/latest/WSGIquickstart.html

创建test.py

cd /home

vim test.py


test.py

start_response('200 OK',[('Content-Type','text/html')])

return[b"Hello World"]

用http开了端口8001,端口可以随便写

uwsgi --http :8001 --wsgi-file test.py



访问公网ip+端口

一开始无法访问,因为服务器端口没有开启

添加


访问(公网ip):8001


说明uwsgi可以使用


创建module filmticket.wsgi与django进行交互

安装Nginx(由于uwsgi无法处理动态数据,使用nginx转发到uwsgi)

apt-get install nginx

配置uginx,与uwsgi联系起来

cd /etc/nginx



nginx.conf是主要配置文件,一般不会主要修改

进入网站可用配置

cd sites-available

进入 sites-enabled,里面有默认软链接default,这个default是默认页面可以访问

cd sites-enabled

删除default

cd /sites-enabled

rm default

接着进入

cd sites-available


新建自己网站的配置

vim filmticket.conf

server{

    listen 80;一般网站直接输入ip是使用80端口

    server_name filmticket;自己的项目名字

    charset utf-8;

    client_max_body_size 75M;

    指定静态文件

    location /static {

        alias /home/filmticket/static;这里填写自己的路径

    }

    location /media {

        alias /home/filmticket/media;

    }

    处理动态文件,转发给uwsgi

    location / {

        uwsgi_pass 127.0.0.1:8001;这个转发不是通过HTTP协议,而是通过socket协议进行处理的

        include /etc/nginx/uwsgi_params;

    }

}

基本配置好,但是uwsgi还没有准备好接收

接着配置uwsgi,用ni文件进行配置而不是通过命令行进行启动

cd /home

创建一个文件夹进行管理

mkdir filmticket_uwsgi

ls

cd filmticket_uwsgi


创建ini文件

https://uwsgi.readthedocs.io/en/latest/WSGIquickstart.html

官方文档

vim filmticket.ini

[uwsgi]

chdir = /home/foobar/myproject/python (django程序所在目录)

home = /home/mysite_env(虚拟环境目录,没有就不用写)

module = mysite.wsgi:application

master = True 启动主程序

processes = 4 使用的进程数,用四个进程处理请求

max-requests = 5000 最大请求数,请求过5000进程就会进行重启,以防止内存泄漏

harakiri = 60 请求超时时间,请求超过一定时间就把请求关闭,这里设置60s

socket = 127.0.0.1:8001 用8001端口监听,使用socket协议

uid = 1000

gid = 2000

pidfile = /home/filmticket_uwsgi/master.pid 对主进程进行关闭重启操作

daemonize = /home/filmticket_uwsgi/filmticket.log 后台运行

vacuum  = True  服务器关闭或服务器退出会自动把pidfile回收

[uwsgi]

chdir = /home/filmticket

module = filmticket.wsgi:application

master = True

processes = 4

max-requests = 5000

harakiri = 60

socket = 127.0.0.1:8001

uid = 1000

gid = 2000

pidfile = /home/filmticket_uwsgi/master.pid

daemonize = /home/filmticket_uwsgi/filmticket.log

vacuum  = True  

接着启动uwsgi,通过ini文件启动(指向刚刚设置的ini文件)

uwsgi --ini /home/filmticket_uwsgi/filmticket.ini

查看进程 

ps -aux | grep uwsgi

显示只有一个,说明没有启动,因为刚刚设置了一个主进程和四个子进程进行使用

进入filmticket.ini查看错误,修改后

显示多个,表示ini启动成功,使用socket协议

接着进入 

cd /etc/nginx/

ls


将刚刚在sites-available创建的弄一个软连接放到sites-enabled

ln -s /etc/nginx/sites-available/filmticket.conf /etc/nginx/sites-enabled/filmticket.conf

进入sites-enabled查看是否成功

使用nginx -t 查看是否有问题

ok.success没有问题

没有问题就进行重启

service nginx restart

到这里就配置完成,访问自己的公网ip,如果一开始找不到就加个/index后缀试试

重启命令

service nginx restart

uwsgi --reload /home/filmticket_uwsgi/master.pid

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,175评论 5 466
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,674评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,151评论 0 328
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,597评论 1 269
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,505评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 47,969评论 1 275
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,455评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,118评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,227评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,213评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,214评论 1 328
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,928评论 3 316
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,512评论 3 302
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,616评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,848评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,228评论 2 344
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,772评论 2 339

推荐阅读更多精彩内容