Linux里 uWSGI + Nginx + Django + Mysql 部署项目

这里安装什么的不做过多介绍,自行搜索,这里只记录遇到的问题,
1、安装Mysql后,无法重启mysql进程,报错:MySql server startup error 'The server quit without updating PID file...
我这里查找了很多方法,最终是因为myql文件没有权限导致的。加权限:

sudo chown -R mysql /usr/local/mysql/

2、Django配置数据库参数后,migrate初始化数据报错,初始化函数中包含中文符号,编码问题,创建mysql数据库时指定编码:

create database test default character set utf8;

3、uWSGI下载安装不能使用pip安装会出现python版本不一致问题,需要使用安装包来安装,使用当前python打包。
wget下载uwsgi:

  wget http://projects.unbit.it/downloads/uwsgi-latest.tar.gz

解压:

  tar zxvf uwsgi-latest.tar.gz

  cd uwsgi-2.0.11.1/

编译:

  python3 uwsgiconfig.py --build

这里的python3即指定uwsgi项目运行的python环境,在这之前,我做了软链接指向了我的python3环境

安装:

  python3 setup.py install

4、uWSGI配置文件,需要在项目中创建script文件夹存放uwsgi.log和uwsgi.pid文件

[uwsgi]
#项目目录
chdir=/home/my_web/
#指定项目application (必须有否则报错,orange_web是项目中相对wsgi.py所在的文件夹)
module=orange_web.wsgi:application
#指定内网IP地址(nginx使用,即 uwsgi_pass的值,但是uwsgi_pass的地址是公网IP,但是端口必须一样)
socket=172.16.148.167:8000
# 进程个数(processess一样效果)
workers=2
#指定启动时的pid文件路径
pidfile=/home/my_web/script/uwsgi.pid
#指定ip及端口(配置nginx就不需要单独启动uwsgi需要填写)
#http=172.16.0.4:8001
#指定静态文件(配置nginx不需要,单独启动uwsgi加载静态文件)
#static-map=/static=/home/my_web/static
#启动uwsgi的用户名和用户组
uid=root
gid=root
#启用主进程
master=true
# 启用线程
enable-threads=true
#自动移除unix Socket和pid文件当服务停止的时候
vacuum=true
#设置日志目录
daemonize=/home/my_web/script/uwsgi.log
#不记录信息日志,只记录错误以及uwsgi内部消息
disable-logging=true
# 序列化接受的内容,如果可能的话
thunder-lock=true

5、Nginx配置

server {
    listen         80; 
    server_name    127.0.0.1 
    access_log      /home/my_web/script/myblog_access.log;
    error_log       /home/my_web/script/myblog_error.log;
    charset     utf-8;

    client_max_body_size 75M;
    root  /home/my_web;
    location / { 
        include uwsgi_params;
        uwsgi_pass 147.180.107.34:8000;
        uwsgi_read_timeout 2;
    }   
    location /static/ {
        expires 30d;
        autoindex on; 
        add_header Cache-Control private;
        alias /home/my_web/;
     }
 }

6、使用Pypandoc需要在Linux机器上安装Pandoc,下面是安装逻辑。

wget https://github.com/jgm/pandoc/releases/download/2.14.0.3/pandoc-2.14.0.3-linux-amd64.tar.gz

tar -xvf pandoc-2.14.0.3-linux-amd64.tar.gz

ln -s /root/pandoc-2.14.0.3/bin/pandoc /usr/bin/pandoc

yum install texlive-xetex

# 验证  pandoc 2.5
pandoc -v 

你可能感兴趣的:(Linux里 uWSGI + Nginx + Django + Mysql 部署项目)