1.更新ubantu的apt
apt-get update
必要时候更新系统: apt-get upgrade
2.远程连接服务器
ssh 用户名@ip
上传代码 : scp 本地文件夹/文件 用户名@ip:远程存放位置
3.安装数据库
apt-get install mysql-server mysql-client libmysqlclient-dev
(ps:如果不安装libmysqlclent-dev,接下来安装mysql-python可能会报错)
安装完成以后通过 mysql -u用户名 -p密码 进入mysql,创建对应的数据库。
4.安装redis
apt-get install redis-server
确认redis是否运行 netstat -antup / netstat -ntpl / ps -ef|gerp redis
5.安装python环境
a.安装pip: apt-get install python-pip
b.安装python-dev: apt-get install python-dev
c.安装项目环境: pip install -r 环境文件
(ps 如果要加快速度需要换镜像元: pip install -r 环境文件 -i https://pypi.tuna.tsinghua.edu.cn/simple gevent)
6.创建数据库对应的表:
a.一般情况下:Python manage.py makemigrations puyhon manage.py migrate
b.本项目: python manage.py migrate auth
因为 kombu 的两个应用 kombu_transport_django 和 djkombu 会产生数据表冲 突,所以我们需要先运行
python manage.py migrate kombu_transport_django --fask-intial
python manage.py migrate djkombu --fake-initial
同步数据库: Python manage.py migrate
7.安装uWSGI:
pip install uwsgi
a.在项目同级目录下创建conf文件夹,进入conf里创建uwsgi.ini文件配置环境
1 [uwsgi]
2 socket = 127.0.0.1:3031
3 #使用nginx连接时使用,Django程序所在服务器地址
4 chdir = /home/mmc/mmcsite
5 #项目目录
6 wsgi-file = mmcsite/wsgi.py
7 #项目中wsgi.py文件的目录,相对于项目目录
8 processes = 4
9 #进程数
10 threads = 2
11 #线程数
12 stats = 127.0.0.1:9191
13 #在指定的地址上,开启状态服务
项目配置
b.uwsgi命令:
启动uwsgi uwsgi --ini uwsgi.ini
重启uwsgi service uwsgi restart
查看uwsgi是否启动成功 ps -ef|grep uwsgi
关闭uwsgi uwsgi --stop uwsgi.pid(2和3配置可生成uwsgi.pid文件用来关闭uwsgi)
8.安装Nginx:
apt-get install nginx
nginx.conf为nginx会检查的配置文件路径。你的监听端口可以写在这些文件的下面。sites-enabled里可以配置文件。
a.在/etc/nginx/conf.d里新建文件 项目名.conf(myproject.conf)配置nginx。
1 server {
2 listen 80; #监听的端口号
3 server_name 127.0.0.1; #服务器ip或者域名
4 location / {
5 #alias /home/mmc/mmcsite/web/;
6 root /home/mmc/mmcsite/web/; #静态文件地址路径
7 index index.html; #文件格式
8 }
9 #uwsgi配置
10 location ^~ /iot/ {
11 include uwsgi_params;
12 uwsgi_pass 127.0.0.1:3031;
13 }
14 #uwsgi_params文件是Nginx向uWSGI传递的参数,uwsgi_pass的意思动态内容请求都通过名为django的upstream传递给uWSGI,这使用文件socket的方式,那么与之前uwsgi.ini里的socket参数配置一致。
15 error_page 404 /404.html;
16 location = /40x.html {
17 }
18 error_page 500 502 503 504 /50x.html;
19 location = /50x.html {
20 } }
项目配置
b.nginx命令
检查nginx配置是否正确 nginx -t
启动nginx service nginx start
关闭nginx service nginx stop
重启nginx service nginx restart
查看nginx是否启动 ps -ef|grep nginx
9.注意事项:
a.如果使用Django自带的admin,需要收集admin的静态文件(先于配置nginx执行)
STATIC_ROOT = os.path.jpin(os.path.dirname(os,path.dirname(BASE_DIR)), 'font_end_pc/static')
(ps. font_end_pc/static为静态文件的路径)
python manage.py collectstatic
b.Django中的配置。
修改uwsgi.py里的配置,将开发模式下的setting换位生产环境下的setting。
os.environ.setdefault('DJANGO_SETTING_MODULE', 'myproject.settings.prod')
setting里需要注意的项
# 1.修改配置
# 正式上线关闭调试模式, 不会暴露服务器信息
DEBUG = False
# 2.允许的主机
ALLOWED_HOSTS = ['xxx.com','127.0.0.1']
# 3.前端修改接口地址
http://127.0.0.1:8000/ => http://xxx.com/
# 4.MySQL数据库根据实际情况配置(注意地址)
# 5.缓存配置, 改为默认, 最简单形式(配置redis)
# 6.收集静态文件
# 静态资源收集位置
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
# 7.命令行执行
python manage.py collectstatic
settings