!!!⚠注意:全程要在服务器同一用户下操作!!!
文中服务器环境:Ubuntu 18.04 + python 3.8 + django 2.2.24 + mysql 5.7 + uwsgi 2.0.18 + nginx 1.14
- 最近项目需要,租了个阿里云服务器部署项目,已成功。
- 按以下流程走,可以在一台空服务器(如从阿里云等厂商新租用 或 自己的虚拟机)中,搭建出能够将Django项目正常运行起来的个人用Ubuntu上线环境(nginx做反向代理,服务器流量走uwsgi),有更好的建议或问题可评论交流。
- 关于搭建部署环境时遇到的问题及解决方法见以下链接:
vim
sudo apt install vim
python
如果不需要root用户跑项目,建议不要sudo,不然容易和自带python版本混乱
01、以root用户或具有sudo访问权限的用户身份运行以下命令,以更新软件包列表并安装必备组件:
sudo apt update
sudo apt install software-properties-common
02、将deadsnakes PPA添加到系统的来源列表中:
sudo add-apt-repository ppa:deadsnakes/ppa
出现提示时,按Enter继续
03、启用存储库后,请使用以下命令安装Python 3.8:
sudo apt install python3.8
django
直接安装:
sudo pip3 install django==2.2.24
备用命令:
apt install python-django-common
python3 -m pip install
mysql
软件安装
sudo apt-get install mysql-server
apt-get isntall mysql-client
sudo apt-get install libmysqlclient-dev
django连接依赖
sudo apt-get install python3-dev default-libmysqlclient-dev
sudo pip3 install mysqlclient
创建数据库(mysql命令行执行)
create database 数据库名 default charset utf8
注:数据库名通常与项目名保持一致
python3生成后台管理系统数据库表
python3 manage.py makemigrations
python3 manage.py migrate
添加admin用户(在项目目录下)
python3 manage.py createsuperuser
uwsgi
sudo pip3 install uwsgi==2.0.18
修改uwsgi.ini
...
socket=你的主机ip:8000
chdir=/.../my_projiect(项目绝对路径)
wsgi-file=my_project/wsgi.py
启动uwsgi:uwsgi --ini uwsgi.ini
停止uwsgi:uwsgi --stop uwsgi.pid
查看进程:ps aux|grep ‘uwsgi’
nginx
sudo apt-get install nginx
修改nginx配置
sudo vim /etc/nginx/sites-enabled/default
location / {
uwsgi_pass 你的主机ip:8000;
include /etc/nginx/uwsgi_params;
}
sudo /etc/init.d/nginx restart
静态文件
新建文件夹 mkdir /home/用户名/项目名_static/
在项目 settings.py 中添加新配置
STATIC_ROOT = ‘/home/用户名/项目名_static/static’
进入项目目录,执行
python3 manage.py collectstatic
在nginx配置中添加static文件路径,否则nginx访问不到静态资源
sudo vim /etc/nginx/sites-enabled/default
location / {
uwsgi_pass 你的主机ip:8000;
include /etc/nginx/uwsgi_params;
}
location /static {
root /home/用户名/项目名_static;
}
重启nginx
sudo /etc/init.d/nginx restart
问题排查路径(看日志):
cat var/log/nginx/error.log
cat 项目路径/同名文件夹/uwsgi.log