第一步,服务器上安装和配置数据库
第二步,上传项目到服务器
第三步,用 uWSGI 替代runserver启动服务器
第四步,配置 Nginx 反向代理服务器
安装MySQL8
sudo apt-get update
sudo apt-get install mysql-server
开机启动
systemctl status mysql
查看随机密码
sudo cat /etc/mysql/debian.cnf
登录
mysql -u root -p
设置密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密码';
启动
sudo service mysql start
创建数据库
create database '你的数据库名' DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
mysqlclient装不上的话安装依赖
sudo apt-get install libmysqlclient-dev
输出开发环境需要的依赖库
pip3 freeze > requirement.txt
上传到服务器,使用如下命令安装依赖包
pip3 install -r requirement.txt
(win的话用WinSCP上传,PuTTY连接Shell)
安装uwsgi
sudo pip3 install uwsgi
配置uWSGI.ini启动文件
[uwsgi]
http=0.0.0.0:8000 #他妈的用127就是启不起来,也没有报错,怎么也找不到原因,最后改成四个零可以了
socket=127.0.0.1:8001 #后面配NGINX时候再改用socket
chdir=/home/ubuntu/zrhd_bj #直接pwd看绝对路径,指向项目根目录
wsgi-file=zrhd_bj/wsgi.py #指向同名目录下django生成的wsgi文件
process=2
threads=2
pidfile=uwsgi.pid
daemonize=uwsgi.log
master=ture
static-map = /static=/home/ubuntu/zrhd_bj/static #管理后台静态文件丢了的最终解决办法,网上全是coppy的垃圾
buffer-size = 32768 #提交表单就报502,给个参数才好
settings要从开发环境改生产环境
DEBUG='Fales'
安装nginx
sudo apt-get nginx
nginx配置要去/etc/nginx/sites-enabled 安装目录vim修改,因为权限问题
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
#try_files $uri $uri/ =404;
uwsgi_pass 127.0.0.1:8001;
include /etc/nginx/uwsgi_params;
}
上传文件继续403,找个地方加上附件大小限制,默认好像就1MB or 2MB,静态文件夹nginx没设置没发现问题
client_max_body_size 20m;
#------------------------------------------------------------------------------------------
创建虚拟环境(在项目目录下运行)
python -m venv tutorial-env
激活虚拟环境
activate
#ubuntu
source activate
关闭虚拟环境
deactivate
pip更新 linux用python3命令
python -m pip install --upgrade pip
pip安装软件
pip install django==2.2.7 -i https://pypi.tuna.tsinghua.edu.cn/simple
新建django项目
django-admin startproject
超级用户
manage.py createsuperuser
数据迁移
manage.py makemigrations
manage.py migrate
启动、停止、看状态
uwsgi --ini uwsgi.ini
uwsgi --stop uwsgi.pid
ps aux|grep 'uWSGI'
杀端口
sudo kill -9 '+pid'
看端口
sudo lsof -i:8001
nginx开始 停止 重启
sudo /etc/init.d/nginx start|stop|restart|status
ubuntu环境变量有些没指定,不是这个运行不了就是那个运行不了,看着加。 修改etc/profile 追加
# set PATH so it includes user's private ~/.local/bin if it exists
if [ -d "$HOME/.local/bin" ] ; then
PATH="$HOME/.local/bin:$PATH"
fi
ubuntu装python3和依赖
sudo apt-get install python3-dev
sudo apt-get install python3-pip
后台样式丢失
setting.py 添加 STATIC_ROOT
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
执行
python manage.py collectstatic
MySQL基本操作
net start mysql; #启动
net stop mysql; #停止
show databases; #显示总数据库
shouw tables; #查看数据库
use 库名; #显示某库
desc 表名; #显示某表
create database 库名 DEFAULT CHARSET utf8 COLLATE utf8_general_ci; #创建数据库