Skip to content

sandGuard/burnell-web

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

119 Commits
 
 
 
 
 
 
 
 

Repository files navigation

burnell-web

burnell-web www.burnelltek.com 是一个个人博客网站系统,后端使用Python编写

License

MIT

开发环境

Python3.5.2
Python依赖库:

  1. aiohttp,异步web框架库
  2. jinja2, 前端模板引擎库
  3. aiomysql,mysql异步驱动库
  4. pillow,图片库用于生成验证码
  5. pygments,代码高亮库

项目结构

conf nginx和supervisor配置文件目录
www web目录, 存放.py文件

config web配置模块
static 存放静态文件
templates 存放模板文件

部署示例(阿里云ECS Ubuntu14.04)

  1. 安装SSH服务
    sudo apt-get install openssh-server

  2. 安装Python3.5
    sudo add-apt-repository ppa:fkrull/deadsnakes
    sudo apt-get update
    sudo apt-get install python3.5
    如果无法识别add-apt-repository命令, 则需要进行如下操作:
    sudo apt-get install python-software-properties
    sudo apt-get install software-properties-common

  3. 取消原本的 Python 3.4 ,并将 Python3 链接到最新的 3.5 上:
    sudo mv /usr/bin/python3 /usr/bin/python3-old
    sudo ln -s /usr/bin/python3.5 /usr/bin/python3

  4. 安装Python3包管理工具: python3-pip
    sudo apt-get install python3-pip

  5. 安装需要的Python库
    sudo pip3 install jinja2 aiomysql aiohttp
    如果没有切换Python3链接的动作, 则pip3会把Python库安装在Python3.4上
    安装pillow:
    sudo apt-get install python3.5-dev
    sudo apt-get install libjpeg8-dev zlib1g-dev libfreetype6-dev
    sudo pip3 install pillow
    安装pygments:
    sudo pip3 install pygments

  6. 切换回来链接文件:
    sudo rm /usr/bin/python3
    sudo mv /usr/bin/python3-old /usr/bin/python3

  7. 安装MySQL数据库服务
    sudo apt-get install mysql-server

  8. 安装 Nginx:高性能Web服务器+负责反向代理:
    sudo apt-get install nginx

  9. 安装 Supervisor:监控服务进程的工具
    sudo apt-get install supervisor
    启动 Supervisor: sudo supervisord

  10. 设置MySql可以远程链接
    vim /etc/MySQL/my.cnf找到bind-address = 127.0.0.1
    注释掉这行,如:#bind-address = 127.0.0.1
    重启 MySQL:sudo /etc/init.d/mysql restart
    root登录mysql: mysql -u root -p
    授权远程链接: grant all privileges on . to root@"%" identified by "password" with grant option;
    刷新权限信息: flush privileges;

  11. 设置MySQL支持Emoji表情存储
    找到/etc/mysql路径下的my.cnf文件,添加如下配置:
    [client]
    default-character-set=utf8mb4
    [mysqld]
    character-set-client-handshake = FALSE
    character-set-server = utf8mb4
    collation-server = utf8mb4_unicode_ci
    init_connect=’SET NAMES utf8mb4'
    [mysql]
    default-character-set=utf8mb4
    root登录mysql: mysql -u root -p
    已经使用uft8创建的database可以做如下的字符集修改:
    ALTER DATABASE 数据库名 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;
    已经使用uft8创建的table可以做如下的字符集修改:
    ALTER TABLE 表名 CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
    已经使用utf8创建的字段可以做如下的字符集修改:
    ALTER TABLE 表名 CHANGE 字段名 字段名 该字段原来的数据类型 CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
    重启 MySQL:sudo /etc/init.d/mysql restart

  12. 配置Supervisor
    编写一个Supervisor的配置文件burnellweb.conf,存放到/etc/supervisor/conf.d/目录下
    然后重启Supervisor后,就可以随时启动和停止Supervisor管理的服务了
    重启:sudo supervisorctl reload
    启动我们的服务:sudo supervisorctl start burnellweb
    查看状态:sudo supervisorctl status

    [program:burnellweb]
    command     = python3.5 /srv/burnell_web/www/web_app.py
    directory   = /srv/burnell_web/www
    user        = www-data
    startsecs   = 3
    redirect_stderr         = true
    stdout_logfile_maxbytes = 50MB
    stdout_logfile_backups  = 10
    stdout_logfile          = /srv/burnell_web/log/app.log
    
  13. 配置Nginx
    Supervisor只负责运行app.py,我们还需要配置Nginx,把配置文件burnellweb放到/etc/nginx/sites-available/目录下
    让Nginx重新加载配置文件:sudo /etc/init.d/nginx reload

    server {
        listen      80;
        root       /srv/burnell_web/www;
        access_log /srv/burnell_web/log/access_log;
        error_log  /srv/burnell_web/log/error_log;
        # server_name burnelltek.com;
        client_max_body_size 1m;
        gzip            on;
        gzip_min_length 1024;
        gzip_buffers    4 8k;
        gzip_types      text/css application/x-javascript application/json;
        sendfile on;
        location /favicon.ico {
            root /srv/burnell_web/www/static/img;
        }
        location ~ ^\/static\/.*$ {
            root /srv/burnell_web/www;
        }
        location / {
            proxy_pass       http://127.0.0.1:9000;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header Host $host;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
    }
    

Release Note:

2017/06/05 V1.1.5 Release

  1. 增加代码高亮功能
  2. 评论功能改善
  3. 评论管理页面增加被评博客链接
  4. 调整手机上首页和博客列表页的布局
  5. 后台博客显示修改
  6. 后台管理按钮移到头像下拉列表中
  7. 管理博客页面分页改善
  8. 管理评论页面分页改善
  9. 管理用户页面分页改善
  10. 使用UiKit的确认对话框取代原生确认对话框
  11. 修改Mathjax使用$$作为行内公式标记
  12. 修改代码高亮风格
  13. 上传图片时根据日期生成对应文件夹存储图片
  14. 增加功能: 博客类别管理

2017/02/13 V1.1.3 Release

  1. 增加微博登录功能
  2. UI适配移动端
  3. 将首页的作者信息替换为热门博客
  4. 解决不能退出登陆的BUG
  5. 支持emoji表情的输入和显示
  6. 所有博客标题设置为可以换行显示
  7. 使用MathJax支持显示数学公式
  8. 热门博客列表序号从0开始
  9. 增加微博关注功���
  10. 增加微博分享功能
  11. 主页改版,���加微博展示
  12. 博客增加版权信息
  13. 上传图片,取消图片原始名称
  14. 配置档中增加配置域名信息
  15. 微博登陆后获取微博用户的高清头像,替换原来的50*50头像
  16. 管理用户界面显示用户头像(代替Email)
  17. 配置档增加网站名称、ICP备案号、微博APP_KEY和微博UID的配置项

2016/12/01 V1.1.2 Release

  1. 增加博客分类
  2. 增加作者简介
  3. 重新设计首页
  4. 增加热门博客信息
  5. 增加备案信息
  6. 完成博客分页

2016/11/27 V1.1.1 Release

  1. 限制每10秒只能发送一条评论
  2. 注册账号页面需要输入验证码

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 57.8%
  • JavaScript 26.8%
  • HTML 13.9%
  • CSS 1.5%