基于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

此时通过访问http://ip:8888即可访问项目了

总结

项目的部署基本完成,我也弄了个域名,正在备案,由于域名的所有者名字的英文名称不是中文名的汉语拼音,所以还得修改,又得多拖几天了。

基于django的个人博客网站建立(六)的更多相关文章

  1. 基于django的个人博客网站建立(三)

    基于django的个人博客网站建立(三) 前言 网站效果可点击这里访问 今天主要完成的是文章在页面的显示以及评论,留言 具体内容 首先我希望主页面是显示我的所有文章,于是在主页面的视图函数中返回了所有 ...

  2. 基于django的个人博客网站建立(二)

    基于django的个人博客网站建立(二) 前言 网站效果可点击这里访问 今天主要完成后台管理员登录的状态以及关于文章在后台的处理 具体内容 首先接上一次内容,昨天只是完成了一个登录的跳转,其他信息并没 ...

  3. 基于django的个人博客网站建立(一)

    基于django的个人博客网站建立(一) 前言 网站效果可点击这里访问 之前基于hexo和github page搭建过一个博客网页,后来由于换了个系统,感觉弄的有点麻烦也就没有再去管它了,最近偶然从网 ...

  4. 基于django的个人博客网站建立(七)

    基于django的个人博客网站建立(七) 前言 网站效果可点击这里访问 这次在原来的基础上添加或修改一些小功能 具体内容 1.代码高亮 在原来的blog-details.html页面添加下面的代码: ...

  5. 基于django的个人博客网站建立(五)

    基于django的个人博客网站建立(五) 前言 网站效果可点击这里访问 之前鸽了两天,今天继续再写点 主要内容 今天加了个展示照片的功能,就叫他生活记录吧 先建表 class Record(model ...

  6. 基于django的个人博客网站建立(四)

    基于django的个人博客网站建立(四) 前言 网站效果可点击这里访问 今天主要添加了留言与评论在后台的管理和主页文章的分页显示,文章类别的具体展示以及之前预留链接的补充 主要内容 其实今天的内容和前 ...

  7. 基于docker搭建wordpress博客网站平台

    WordPress是使用PHP语言开发的博客平台,用户可以在支持PHP和MySQL数据库的服务器上架设属于自己的网站.也可以把 WordPress当作一个内容管理系统(CMS)来使用. WordPre ...

  8. 【docker构建】基于docker构建wordpress博客网站平台

    WordPress是使用PHP语言开发的博客平台,用户可以在支持PHP和MySQL数据库的服务器上架设属于自己的网站.也可以把 WordPress当作一个内容管理系统(CMS)来使用. WordPre ...

  9. github+hexo搭建自己的博客网站(六)进阶配置(搜索引擎收录,优化你的url)

    详细的可以查看hexo博客的演示:https://saucxs.github.io/ 绑定了域名: http://www.chengxinsong.cn hexo+github博客网站源码(可以clo ...

随机推荐

  1. linux—ln

    1.  软连接:不可删除源文件,删除源文件导致链接文件找不到,出现红色闪烁. 2.  硬链接:  源文件删除后,链接文件可以正常打开,链接前后的文件inode号相同,硬链接只能针对文件做链接,,不能针 ...

  2. Linux-(2)Linux安装

    二.Linux 安装 2.1 物理机安装 使用相关镜像制作软件(软碟通等)制作U盘启动盘即可,按照正常的安装步骤安装即可,一般来说(迷你版本)有线网卡直接会有驱动,无线网卡的驱动需要自行编译或者查找. ...

  3. 【docker】Dockerfile

    [docker]Dockerfile 转载: ============================================================= =============== ...

  4. Harbor搭建企业级docker仓库

    一. Harbor简介 1.1 Harbor介绍 Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器,通过添加一些企业必需的功能特性,例如安全.标识和管理等,扩展了开源Do ...

  5. python 中 and or

    在Python 中,and 和 or 执行布尔逻辑演算,如你所期待的一样,但是它们并不返回布尔值:而是,返回它们实际进行比较的值之一. 一.and: 在布尔上下文中从左到右演算表达式的值,如果布尔上下 ...

  6. eclipse 创建 springboot项目

    file --> new --> project --> Spring Boot  --> Spring  start  project Group:公司域名倒置,一般是com ...

  7. jdk13-新特性预览

    一新特性 350: Dynamic CDS Archives(动态CDS档案) 351: ZGC: Uncommit Unused Memory(ZGC:取消提交未使用的内存) 353: Reimpl ...

  8. 《Java练习题》习题集二

    编程合集: https://www.cnblogs.com/jssj/p/12002760.html Java总结:https://www.cnblogs.com/jssj/p/11146205.ht ...

  9. 《Java基础知识》Java接口和抽象类的区别

    抽象类 抽象类必须用 abstract 修饰,子类必须实现抽象类中的抽象方法,如果有未实现的,那么子类也必须用 abstract 修饰.抽象类默认的权限修饰符为 public,可以定义为 public ...

  10. Redis-API

    Redis-API 简介 Redis 是一个基于内存的高效的键值行非关系型数据库,存取效率极高. python提供了两个类:分别为Redis和StrictRedis来实现Redis的命令操作.Redi ...