文章源地址:文章源地址
本文请配合 Django收集后端静态文件 一起看
具体网站样式可访问 翔仔的个人博客
具体代码可见 GitHub-博客源代码
本文基于Ubuntu 16.04 + Nginx + Uwsgi 讲解部署 Django网站,采用阿里云服务器,自带的 Python 3.5 环境。
以下讲解采用 root 账号,采用子账号注意添加 sudo 命令
一、利用 Git 或 XFtp 等工具将源文件等传递到服务器,并修改 Django 的配置
DEBUG = False
ALLOW_HOSTS = ['*']
二、安装必要软件
1、安装 pip3
apt-get update
apt-get install pip3
2、导入环境
pip3 install -r requirements.txt
3、安装 Nginx
apt-get update
apt-get install nginx
安装完成后公网访问服务器 ip 地址,可得到对应界面。
4、安装 Uwsgi
4.1、本地访问 Uwsgi下载地址, 下载 Stabl/LTS版本的源文件。
4.2、本地解压这个源文件(点开后是能看到 setup 文件),然后将解压后的文件拖入 /home 路径下。
4.3、执行命令安装 Uwsgi。
cd /home/your_uwsgi_file_name
apt-get install python3-setuptools
apt-get install python3-dev
python3 setup.py install
5、安装 MySQL (采用 Django 自带的 Sqlite3 数据库的请跳过)
apt-get update
apt-get install mysql-server # 过程中需要输入密码,此密码为数据库密码
apt-get install mysql-client
6、修改 setting.py 所在目录的那个 init.py 文件
import pymysql
pymysql.install_as_MySQLdb()
7、安装 mysql 驱动
pip3 install pymysql
8、创建对应的数据库
vim /etc/mysql/mysql.conf.d/mysqld.cnf
band-address = localhost # 在文件中找到并注释掉这句话
mysql -u root -p # 回车后输入刚才设置的密码进入数据库
>>> create database your_database_name default character set utf8 collate utf8_general_ci; # 创建数据库并设置默认编码为utf8
三、配置项目
1、配置 nginx
vim /etc/nginx/sites-available/default
# 将以下代码写入文件中
server {
listen 80;
server_name coderlx.com www.coderlx.com; # 这些地方换成你自己的域名
return 301 https://www.coderlx.com$request_uri; # 将访问重定向www.coderlx.com
}
server {
root /var/www/html;
# 这里为配置 https 协议添加的配置,可以先忽略,https 转发可看我的另一篇文章
listen 443 ssl default_server;
server_name coderlx.com; #换成你自己的域名
ssl on;
ssl_certificate /etc/letsencrypt/live/coderlx.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/coderlx.com/privkey.pem;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers AES256+EECDH:AES256+EDH:!aNULL;
# 这里为配置 https 协议添加的配置,可以先忽略,https 转发可看我的另一篇文章
location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:8000;
}
# 这个地方是重点需要注意 (照以下写法后端静态文件缺失,前端正常,收集后端静态文件请看我另一篇文章)
location /static {
alias /home/MyBlog/blog_config/static; # 你的静态文件夹地址
# alias /home/MyBlog/blog_config/nginx/static;
}
}
2、配置uwsgi
2.1、在 Django 根目录下创建 uwsgi.ini 和 run.log
vim /home/MyBlog/uwsgi.ini
# 可以先去看下我的项目结构,有助于理解
[uwsgi]
chdir = /home/MyBlog/
module = blog_config.wsgi:application
socket = 127.0.0.1:8000
master = true
daemonize = /home/MyBlog/run.log
disable-logging = true
pidfile = /home/MyBlog/uwsgi.pid
四、启动程序
cd /home/MyBlog
service nginx stop
pkill -f uwsgi -9
service nginx start
uwsgi --ini uwsgi.ini
最后,部署成功,访问你的域名即可