1. 安装linux系统所需的一些软件依赖

yum groupinstall "Development tools"
yum install openssl openssl-devel sqlite-devel zlib-develbzip2-devel ncurses-devel readline-devel tk-devel
yum install pcre pcre-devel pcre-static

2.安装python3.7

当前版本:2.7.5

下载:wget https://www.python.org/ftp/python/3.7.1/Python-3.7.1.tar.xz
解压:tar xJf Python-3.7..tar.xz
编译:
cd Python-3.7.
./configure --prefix=/usr/local/python3. --enable-optimizations
--prefix 是预期安装目录,--enable-optimizations 是优化选项(LTO,PGO 等)加上这个 flag 编译后,性能有 % 左右的优化(如果没记错的话),但是这会明显的增加编译时间。
安装:
make
make install

此时出现错误:Fatal Python error: _PySys_BeginInit: can't initialize sys module

上面错误解决办法:python版本降级,安装了3.6。猜测是centos版本与python3.7版本不匹配
错误:执行 ./configure --prefix=/usr/local/python3.7 --enable-optimizations 时 configure: error: no acceptable C compiler found in $PATH
解决。可能需要安装GCC,执行了 yum install gcc 可以继续执行了
错误:执行 make install 时 ModuleNotFoundError: No module named '_ctypes'
解决:执行 yum install libffi-devel -y 然后再执行 make install

2.1 检查是否成功
which python3:执行此方法将无法查询不到python3,因为此命令是从(/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin)这几个中查找。而我是将python3.6安装在了/usr/local/python3.7中,所以此时可以用/usr/local/python3.7/bin/python3检查
2.2 将当前python版本修改为python3

[] cd /usr/bin
[] 备份当前python:mv python python.backup 或者直接删除: rm -rf python
[] 将当前python软链接到python3: ln -s /usr/local/python3.7/bin/python3.7 python
[] 检测当前版本:python -V

2.3 将当前pip版本修改为pip3

[] cd /usr/bin
[] 备份当前pip:mv pip pip.backup 或者直接删除: rm -rf pip
[] 将当前pip软链接到pip3:ln -s /usr/local/python3.7/bin/pip3.7 pip
[] 检测当前版本:pip -V

PS:linux命令:【1】查看当前文件夹中python/pip所有版本:ll /usr/bin/pyth* ll /usr/bin/pip*

3.安装Django

pip install Django==2.1.

4.安装uwsgi

pip install uwsgi
ln -s /usr/local/python3.7/bin/uwsgi /usr/bin/uwsgi

5.安装mysqlclient

[1] pip install mysqlclient
遇到错误

解决办法:yum install mysql-devel
此时又出现 yum 语法错误,这是因为 yum 不支持 python3 ,而上面的操作已经将默认的 python2 改为了 3 ,所以出现错误
修改 vim /usr/bin/yum 及 /usr/libexec/urlgrabber-ext-down 第一行的 /usr/bin/python 改为 python2

错误:

解决:修改错误的文件python版本

6.配置并启动uwsgi服务

参考:https://blog.csdn.net/weixin_39198406/article/details/79277580
[1] 在项目创建 uwsgi.ini 文件(与manage.py同级,不知是不是必须),并填写以下配置信息:

[uwsgi]
# Django-related settings
# Django项目本地端口
socket = :
# 项目根目录位置
chdir = /root/blog/
# wsgi.py文件在项目的中的相对位置
wsgi-file = /blog/wsgi.py
module =blog.wsgi
# 进程设置,无需变动
# master
master = true
# maximum number of worker processes
# 启动4个uwsgi进程
processes =
# ... with appropriate permissions - may be needed
# chmod-socket =
# clear environment on exit
vacuum = true
pidfile=uwsgi.pid
daemonize=uwsgi.log

[2] 启动 uwsgi
uwsgi在哪个目录启动,就会在哪个目录生成uwsgi.pid和uswgi.log文件。
启动:uwsgi --ini uwsgi.ini
停止:uwsgi --stop uwsgi.pid
重启:uwsgi --reload uwsgi.pid
强制停止:killall -9 uwsgi
这里我们启动uwsgi服务,可以通过ps -ef | grep uwsgi看到已经有四个uwsgi服务启动。

7.配置nginx

server {
listen ; #启动的nginx进程监听请求的端口
server_name localhost; #域名
error_log /var/log/easy_sysman/error.log; #nginx错误日志,可自行设置,但必须保证提前建立好该目录和文件
location / {
include /etc/nginx/uwsgi_params;
uwsgi_pass 127.0.0.1:; #对于动态请求,转发到本机的9090端口,也就是uwsgi监听的端口
}
#error_page /.html;
error_page /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
location /static/ {
alias /var/www/easy_sysman/static/; #设定静态文件所在目录
}
location /media/ {
alias /var/www/easy_sysman/media/; #同样自行设置,要保证目录已经建好
}
}

centos 搭建 搭建uwsgi服务的更多相关文章

  1. Centos下搭建 nginx+uwsgi+python

    python做web应用最麻烦的还是配置服务器了,此话不假,光中间件就有好几种选择,fastcgi.wsgi.uwsgi,难 免让人眼花缭乱. 而听说uwsgi的效率是fastcgi和wsgi的10倍 ...

  2. Centos 6.5 pptpd服务端搭建过程

    首先检测有没有启用ppp和tun cat /dev/ppp cat /dev/net/tun 如果显示是这样的 cat: /dev/ppp: No such device or address cat ...

  3. CentOS Linux搭建独立SVN Server全套流程(修改svn仓库地址、服务启动等)

    CentOS Linux搭建独立SVN Server全套流程(修改svn仓库地址.服务启动等) 原 一事能狂便少年 发布于 2016/12/27 11:16 字数 1113 阅读 1.3K  收藏 0 ...

  4. 基于centos搭建nginx+uwsgi运行django环境

    环境: CentOS 7 nginx/1.9.12 Python 2.7.5 一:安装依赖包5 yum install zlib-devel bzip2-devel pcre-devel openss ...

  5. ElasticSearch(七) Elasticsearch在Centos下搭建可视化服务

    要想可视化ElasticSearch,就需要安装一些插件,安装插件的前提是安装所依赖的环境,比如java,maven等,本篇博文就不再走那些流程了.没安装的童鞋可以看我的ElasticSearch栏目 ...

  6. centos上搭建git服务--3

    前言:当我们想要实现几个小伙伴合作开发同一个项目,或者建立一个资源分享平台的时候,GIT就是一个很好的选择.当然,既然是一个共有平台,那么把这个平台放到个人计算机上明显是不合适的,因此就要在服务器上搭 ...

  7. python3环境搭建(uWSGI+django+nginx+python+MySQL)

    1.系统环境,必要知识 #cat /etc/redhat-release CentOS Linux release (Core) #uname -r -.el7.x86_64 暂时关闭防护墙,关闭se ...

  8. CentOs上搭建git服务器

    CentOs上搭建git服务器 首先安装setuptools wget http://pypi.python.org/packages/source/s/setuptools/setuptools-0 ...

  9. 搭建pyspider爬虫服务

    1. 环境准备 首先yum更新 yum update -y 安装开发编译工具 yum install gcc gcc-c++ -y 安装依赖库 yum install python-pip pytho ...

随机推荐

  1. Shell升级,/bin/bash版本号4.1到4.3

    bash环境变量存在随意代码运行漏洞:"通过CGI请求方式能够导致远程代码运行,进而导致server被入侵.危害严重.且官方发布补丁也被绕过", [漏洞影响]: 1)bash受影响 ...

  2. 在安卓上,微信公众号无法分享到QQ的解决办法之一

    今天做一个微信公众号分享功能,参考微信sdk,代码几乎没有任何问题,但就是分享到QQ失败,以下是我QQ分享部分的代码: wx.onMenuShareQQ({ title: '快来和我一起玩转大脑', ...

  3. U-Boot中的filesize环境变量

    U-Boot中的环境命令可以使用$(filesize)来确定刚下载(传输)得到的文件大小. 因为使用类似tftp命令传输文件后,会自动更新filesize环境变量.如:setenv updateroo ...

  4. CSDN日报20170328——《你看那个人他像一条狗》

    [程序人生]你看那个人他像一条狗 作者:清纯的微笑 今年三十了,到了传说中程序猿最应该迷茫的年龄了,那么我迷茫吗,没的说,依照华为34岁就要劝退的要求,我还有4年的程序生涯. [微信小程序]重磅!个人 ...

  5. 数字锁相环Octave仿真

    clc; clear all; % 仿真数据长度 SimLens = 1000; % 载波信号 Fs = 2400; Ts = 1 / Fs; Fsig = 60; % 随机初相 Delta_Phas ...

  6. TZOJ 1072: 编辑距离(动态规划)

    1072: 编辑距离 时间限制(普通/Java):1000MS/10000MS     内存限制:65536KByte 总提交: 917            測试通过:275 描写叙述 如果字符串的 ...

  7. ubuntu docker方式部署docker registry v2

    生成自己签名的证书 生成签名的过程需要根据提示输入一些参数,需要注意的时Common Name的时候需要输入一个自己需要的域名,如果时内部域名记得访问的时候需要修改hosts. mkdir /data ...

  8. C#中Split用法~字符串分隔

    1.用字符串分隔: using System.Text.RegularExpressions;string str="aaajsbbbjsccc";string[] sArray= ...

  9. [Transducer] Make Transducer works for Iteratable collection and Object

    We've seen how we can transduce from arrays or other iterables, but plain objects aren't iterable in ...

  10. Nginx 内嵌lua脚本,结合Redis使用

    0x00 Nginx 内嵌Lua脚本有下面特点: 20k个并发连接 Lua脚本能够在Nignx 11个层次的不同层次发挥作用,扩展Ngnix功能 Lua速度极快(寄存器指令) 0x01 应用场景 在w ...