1.前期准备
1.打开terminal终端,执行以下命令,将项目所需要的依赖包,都记录到一个文件内备用。
1
|
pip freeze >requirements.txt
|
2.将项目文件夹→右键→添加压缩文件,压缩为zip包
3.准备软件
1.xshell(用于远程操作服务器)2.filezilla(用于从客户端将项目包上传到服务器)3.navicat 12 (用于同步数据库)
4.环境云
服务器/云主机:京东云
(云服务还是要选大厂的,我也试过一些比较小的厂的云服务,不说是哪家了,哇,简直是坑啊,各种报错各种什么都安不上。友情提醒,云服务还是要在腾讯云、阿里云、百度云、金山云、京东云、网易云这些里面选用吧。国外的像亚马逊啊,虽然云计算的技术上可能领先于国内云,价格也更加公道,但是,有些事,大家应该懂得,所以,贵是贵了点,还是选国内的吧。)
系统:ubuntu16.04 64位
2.基本配置
1.使用xshell链接云服务器/云主机系统(云服务器和云主机在这里概念差不多可以等同,后面都叫云服务器)1.打开xshell→【文件】→【新建】,输入你云服务器的公网ip
2.选择刚刚建立的会话,然后点【连接】
3.输入登录用户名:root
4.输入登录密码
5.连接成功
2.新建用户ubuntu
1.执行命令
1
2
3
4
5
6
7
8
9
10
11
|
adduser ubuntu
#设置密码
#确认密码
#设置姓
#设置名
#设置电话
#设置家庭电话
#除了密码以为,其他的这些信息用处不大
y + 回车
cd / home #切换到家目录下
ls #查看家目录下的目录,可以看到ubuntu的目录已经建立
|
2.切换用户ubuntu
3.给普通用户ubuntu添加权限
1
2
3
4
5
6
7
|
#切换回root用户
su root
#输入root登录密码
chmod u + w / etc / sudoers #给sudoers增加写权利
vim / etc / sudoers #编辑sudoers,在找到这行 root all=(all) all,在他下面添加ubuntu all=(all) nopasswd: all
chmod u - w / etc / sudoers #取消sudoers的写权利
su ubuntu #切换会ubuntu用户
|
3.同步数据库
1.安装mysql数据库
1
2
3
4
|
sudo apt - get install mysql - server - y
#设置密码:(不显示,请将密码设置的与客户端上数据库密码一致,方便使用)
sudo apt - get install mysql - client
sudo apt - get install libmysqlclient - dev - y
|
2.配置远程连接权限
1
2
3
4
5
6
|
su root #切换root用户
#root 登录密码
vim / etc / mysql / mysql.conf.d / mysqld.cnf
# 英文输入环境下,敲 i 键,进入插入模式
#上下左右键移动光标,注释掉 bind-address = 127.0.0.1
#英文输入环境下,敲esc键,输入:wq 保存退出
|
1
2
3
4
5
6
7
8
|
mysql - u root - p
#输入密码(不显示),登录mysql
grant all privileges on * . * to 'root' @ '%' identified by '123456' with grant option;
flush privileges;
quit
|
1
2
3
|
#用navicat链接服务器数据库,如果报错:
fuser - k 3306 / tcp
#将客户端数据库通过数据传输,传输到服务器
|
3.使用navicat 12 同步数据库
1.创立连接
2.建立本地连接
3.建立服务器链接
4.传输数据库
然后点击【开始】等待传完100%
5.查看一下数据库是否上传成功
1
2
3
|
mysql - u root - p
show databases; #查看所有数据库
quit #退出数据库
|
4.取消远程连接数据库权限
1
2
3
4
|
vim / etc / mysql / mysql.conf.d / mysqld.cnf
# 英文输入环境下,敲 i 键,进入插入模式
#上下左右键移动光标,去掉 bind-address = 127.0.0.1这行的注释
#英文输入环境下,敲esc键,输入:wq 保存退出
|
4.上传项目
1
|
su ubuntu #切换回ubuntu用户
|
1.使用filezilla上传项目zip包
2.解压项目zip包
1
2
|
sudo apt install unzip
unzip xueyiwang. zip
|
5.安装python3.6
1
2
3
4
5
6
7
|
sudo add - apt - repository ppa:fkrull / deadsnakes #然后会提示你敲击回车键
#回车
sudo apt - get install python - software - properties - y
sudo apt - get update
sudo apt - get install python3. 6 - dev python3. 6 - venv - y
sudo apt install python - pip - y
|
6.配置虚拟环境
1.安装依赖包
1
2
3
4
5
6
7
8
9
10
11
12
13
|
python3. 6 - m venv env36
#在当前目录下,创建一个python3.6的虚拟环境,取名为env36,目前自带虚拟环境只支持到3.6.2
. env36 / bin / activate
#进入虚拟环境
#退出虚拟环境 deactivate
cd xueyiwang
pip3 install - r requirments.txt
#安装相关依赖包,其中requirments.txt,是在客户端时,通过pip freeze > requirments.txt获得
#这个过程也许需要多等一会,比较low一点的云服务就慢一些,亲身体验,bat里,百度的最慢
#有可能pip要升级,如果版本过时,会提示用户更新命令的
|
2.修改settings.py
1
2
|
cd xueyiwang
vim settings.py
|
1
2
3
4
5
6
|
#进入settings.py文件中,点击i键,变为编辑模式
#通过上下左右键移动光标
allowed_hosts = [ '公网ip' ]
#在最底追加
static_root = os.path.join(base_dir, "static/" )
#然后敲esc键,输入:wq 保存退出
|
3.测试运行项目
1
2
3
4
5
|
cd ..
python manage.py runserver 0.0 . 0.0 : 8000
#浏览器访问:公网ip+8000
#发现啥都有啦!
#ctrl+c退出项目运行状态
|
7.虚拟环境中安装uwsgi
1.安装
1
2
|
cd ~
pip3 install uwsgi
|
2.检测是否安装成功
1
2
3
4
5
6
7
8
|
cd xueyiwang
uwsgi - - http : 8000 - - module xueyiwang.wsgi
#通过uwsgi启动项目,这一步必须在项目目录下操作执行
#ctrl+c键关闭项目服务状态
#fuser -k 8000/tcp
#关闭8000端口占用
#浏览器访问公网ip+8000 仍然可以正常访问,证明uwsgi安装成功
|
8.安装配置nginx
1.安装nginx
1
2
|
cd ..
sudo apt install nginx - y
|
2.配置uwsgi与nginx连接
1
2
3
4
|
cd xueyiwang
cp / etc / nginx / uwsgi_params . #在项目目录下执行,注意后面这个点儿别落下
#回到~目录下
cd ..
|
3.配置uwsgi.ini
1
2
3
|
vim uwsgi.ini
#进入uwsgi.ini,然后在英文输入下敲i键,进入插入模式,将以下内容填充进去(通过敲i键进入插入模式这一步不能省略,不然粘贴进去的内容会部分丢失)
#然后在英文输入下,esc键,然后输入冒号wq+回车,保存退出。
|
1
2
3
4
5
6
7
8
9
|
[uwsgi]
chdir = / home / ubuntu / xueyiwang
module = xueyiwang.wsgi:application
home = / home / ubuntu / env36
master = true
processes = 10
socket = : 8001
chmod - socket = 666
vacuum = true
|
4.配置nginx
1
2
3
4
5
|
#cd 到项目目录下
vim xueyiwang_nginx.conf
#新建进入了nginx.conf文件
#在英文输入法下,敲i键,进入可插入模式
#粘贴以下内容
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
upstream django {
# server unix:/root/xueyiwang/xueyiwang.sock; # for a file socket
server 127.0 . 0.1 : 8001 ; # for a web port socket (we'll use this first)
}
# configuration of the server
server {
# the port your site will be served on
listen 8000 ;
# the domain name it will serve for
server_name .example.com; # substitute your machine's ip address or fqdn
charset utf - 8 ;
# max upload size
client_max_body_size 75m ; # adjust to taste
# django media
location / media {
alias / home / ubuntu / xueyiwang / media; # your django project's media files - amend as required
}
location / static {
alias / home / ubuntu / xueyiwang / static; # your django project's static files - amend as required
}
# finally, send all non-media requests to the django server.
location / {
uwsgi_pass django;
include / home / ubuntu / xueyiwang / uwsgi_params; # the uwsgi_params file you installed
}
}
|
5.建立软链接
6.手机静态文件
1
2
3
|
#cd 到项目目录下执行
python manage.py collectstatic
#yes
|
7.最后测试
1
2
3
4
5
6
7
8
|
#修改settings.py中
debug = false
cd ~
sudo service nginx restart
#重启nginx
#启动uwsgi
uwsgi - - ini uwsgi.ini
#浏览器访问http://公网ip:8000
|
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。
原文链接:http://www.cnblogs.com/xuepangzi/p/9219207.html