1. 部署工具:
Xshell
Navicat for MySql
阿里云EC(操作系统ubuntu16.04)
Xftp:(可选,我主要用来看目录结构的)
登录网页版阿里云控制台安全组,开启入8000端口,80,3306,出3306
参考资料:https://zhuanlan.zhihu.com/p/33039984
2. 开始
1. 使用xshell连接阿里云ecs服务器
改名,为了好看而已
root@iZ96cs5sygkesjZ:~# hostname H
root@iZ96cs5sygkesjZ:~# su
2. 升级系统软件
root@H:~# sudo apt-get update
root@H:~# sudo apt-get upgrade
按提示输个y,等待即可
3. 安装MySql,并配置使其能被远程连接
root@H:~# sudo apt-get install mysql-server mysql-client
中途输入2次数据库密码,用户名是root,直接回车则密码为空
安装完检测
root@H:~# sudo netstat -tap | grep mysql
登录数据库,输入密码
root@H:~# mysql -u root -p
输入命令
show databases;
表示成功,然后退出来exit;
exit;
安装完mysql改下ip,注释掉这一行
root@H:~# vim /etc/mysql/mysql.conf.d/mysqld.cnf
保存退出来 :wq
重启mysql
root@H:~# service mysql restart
再进入mysql
授予任意ip(%)用root用户,密码登录更改等权限
mysql> grant all privileges on*.* to '用户名(root)'@'%' identified by '密码' with grant option;
刷新权限
mysql> flush privileges;
这就可以了,测试一下
好了,可以退出数据库了
4. 准备创建虚拟环境
先进要做虚拟目录的根目录,我用的/srv,你们也可选opt,var/www
安装python3-venv
root@H:/srv# apt-get install python3-venv
安装git,nginx以及python3安装mysqlclient需要安装的依赖包
root@H:/srv# sudo apt-get install git nginx libmysqlclient-dev python3-dev
5. 创建虚拟环境env
root@H:/srv# python3 -m venv env
进入虚拟环境(启动文件在虚拟目录下bin文件夹叫activate)
root@H:/srv# source env/bin/activate
成功
安装django框架
(env) root@H:/srv# pip install Django
创建项目
(env) root@H:/srv# django-admin.py startproject dolphun
(图中提示我pip可以升级,我就顺便升了下,这个无所谓)
生成requirements.txt
文件并安装
(env) root@H:/srv# pip freeze > requirements.txt
(env) root@H:/srv# pip install -r requirements.txt
进入项目目录dolphun
数据库转移
(env) root@H:/srv/dolphun# python3 manage.py migrate
测试下安装情况,用所有浏览器访问
(env) root@H:/srv/dolphun# python manage.py runserver 0.0.0.0:8000
嗯哼,静态文件没刷新,没关系,改一下退出测试Ctrl+C
打开文件加上公网ip
^C(env) root@H:/srv/dolphun# vidolphun/settings.py
保存退出,再测试下,OK了
6. 安装uwsgi
(env) root@H:/srv# pip install uwsgi
测试
^C(env) root@H:/srv# uwsgi --http:8000 --module dolphun.wsgi
7. 配置文件
首先保证自己在项目前目录,也就是/srv下
新建文件夹script并进入
^C(env) root@H:/srv# mkdir script(env)
创建新文件uwsgi.ini
(env) root@H:/srv/script# vi uwsgi.ini
具体内容如下
[uwsgi]
# 项目目录
chdir=/srv/dolphun/
# 启动uwsgi的用户名和用户组
uid=root
gid=root
# 指定项目的application
module=dolphun.wsgi:application
# 指定sock的文件路径
socket=/srv/script/uwsgi.sock
# 启用主进程
master=true
# 进程个数
workers=10
pidfile=/srv/script/uwsgi.pid
# 自动移除unix Socket和pid文件当服务停止的时候
vacuum=true
#环境
virtualenv = /srv/env
# 序列化接受的内容,如果可能的话
thunder-lock=true
# 启用线程
enable-threads=true
# 设置自中断时间
harakiri=30
# 设置缓冲
post-buffering=1028
# 设置日志目录
daemonize=/srv/script/uwsgi.log
写好保存退出
(env) root@H:/srv/script# uwsgi--ini uwsgi.ini
(env) root@H:/srv/script# ps -ef|grep -i uwsgi
8.
添加nginx配置文件
cd /etc/nginx/conf.d/
添加新文件dolphun.conf
(env) root@H:/srv/script# cd /etc/nginx/conf.d/
(env) root@H:/etc/nginx/conf.d# vi dolphun.conf
具体内容如下,更改中文解释的部分
server {
# 监听 就是你启动的端口
listen 80;
# server_name后面跟你的公网ip,域名。然后下面的不管它
server_name 39.105.37.17 dolphun.cn www.dolphun.cn;
charset utf-8;
gzip on;
gzip_types text/plain application/x-javascript text/css text/javascriptapplication/x-httpd-php application/json text/json image/jpeg image/gifimage/png application/octet-stream;
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
# 指定项目路径uwsgi
location / {
include uwsgi_params;
uwsgi_connect_timeout 30;
# socket路径要与uwsgi的socket路径一致
uwsgi_passunix:/srv/script/uwsgi.sock;
}
# 指定静态文件路径
location /media {
alias /srv/dolphun/media;
}
location /static/ {
alias /srv/dolphun/static_all/;
index index.html index.htm;
}
}
保存退出
9. 停掉uwsgi和nginx
(env) root@H:/etc/nginx/conf.d# cd /srv/script/
10. 收集静态文件
(env) root@H:/srv/script# cd ../dolphun/dolphun/
(env) root@H:/srv/dolphun/dolphun# vi settings.py
在最后加
STATIC_ROOT = os.path.join(BASE_DIR, "static_all")
保存退出开始收集
(env) root@H:/srv/dolphun# cd ..
(env) root@H:/srv/dolphun# python manage.py collectstatic
重启uwsgi和nginx
(env) root@H:/srv/dolphun# cd ../script/
(env) root@H:/srv/script# uwsgi --ini uwsgi.ini
(env) root@H:/srv/script# /etc/init.d/nginx start
完成!