基于django的个人博客网站建立(六)
基于django的个人博客网站建立(六)
前言
今天主要完成的是项目在腾讯云服务器上ubuntu16.04+django+mysql+uwsig+nginx的部署过程
目前可以通过此处
主要内容
按照步骤一步一步说
1.python环境的安装与pip的安装
这里没有采用虚拟环境,是把项目直接运行的,所以要先配置安装好python3,以及使用pip安装相应需要的库,我的项目需要安装django,markdown,pymysql
2.把项目文件从本地放到服务器上
我的项目文件有上传到github,所以直接在服务器上clone下来,后期有修改也可以拉取下来,同时也把django项目中setting中的debug模式关掉,最后还要记得把migrations文件中迁移生成的py文件也删除掉,因为我的数据库写项目时用的是本地的数据库,那么服务器上的数据库是新建的,所以需要重新迁移生成表,当然如果之前就使用的是服务器上的数据库就不用再修改了,直接用和原来一样就可以的。
3.配置数据库
首先要安装mysql:
sudo apt-get install mysql-server sudo apt install mysql-client sudo apt install libmysqlclient-dev
然后进入数据库创建myblog数据库,这里要保证字符集是utf8,不然存储不了中文字符
create database myblog default character set utf8 collate utf8_general_ci;
接下来
python3 manage.py makemigrations python3 manage.py migrate
就可以了
4.简单测试
此时可以通过在服务器上运行来测试下是否能在本地通过ip和端口访问到
运行
python3 manage.py runserver 0.0.0.0:8000 --insecure
这里的—insecure参数是为了在非debug模式下获取到静态文件
如果成功的话,就以及可以在本地通过ip:8000访问到了
5.配置uwsgi
安装uwsgi
sudo apt-get install build-essential python-dev sudo pip3 install uwsgi
然后在manage.py同级目录下建立my_uwsgi.ini文件(名字随便起的)
文件中存储:
[uwsgi] # uwsgi监听的socket,一会儿配置nginx会用到 socket = 127.0.0.1:8000 # 在app加载前切换到该目录,设置为django项目根目录 chdir = /home/ubuntu/github/myblog/myblog # 加载指定的python wsgi模块,设置为django项目的wsgi文件 module = myblog.wsgi # 启动一个master进程来管理其他进程 master = true # 工作的进程数 processes = 4 # 每个进程下的线程数量 threads = 2 # 当服务器退出的时候自动删除unix socket文件和pid文件 vacuum = true # 使进程在后台运行,并将日志打到指定的日志文件或者udp服务器 daemonize = /home/ubuntu/github/myblog/mybloguwsgi.log
6.配置nginx
安装nginx
sudo apt-get install nginx
测试nginx:
/etc/init.d/nginx start
此时通过访问http://ip 可以看到welcome to nginx
然后修改nginx的配置文件
sudo vim /etc/nginx/nginx.conf
在http内加入下面的内容:
server { listen 8888; # 设置监听端口号 server_name xxx.xxx.xxx.xxx; # 设置对外访问入口,可以是域名可以是ip地址,我设置的是ip charset utf-8; # 设置访问的语言编码 access_log /var/log/nginx/myblog_access.log; # 访问日志记录 error_log /var/log/nginx/myblog_error.log; # 错误日志记录 location / { # 设置虚拟主机的基本信息 include uwsgi_params; uwsgi_pass 127.0.0.1:8000; # 刚才uwsgi设置的socket uwsgi_read_timeout 2; } location /static { # 静态文件设置,nginx自己处理 expires 7d; # 过期时间 alias /home/ubuntu/github/myblog/myblog/statics/; # 项目静态文件地址 } }
7.正式启动
在项目根目录下执行
uwsgi --ini myblog_uwsgi.ini
然后执行
/etc/init.d/nginx restart
此时通过访问
总结
项目的部署基本完成,我也弄了个域名,正在备案,由于域名的所有者名字的英文名称不是中文名的汉语拼音,所以还得修改,又得多拖几天了。
上一篇: python定时检查启动某个exe程序适合检测exe是否挂了
下一篇: 打印开发中关于打印协议
推荐阅读