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

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

2.安装python3.7

当前版本:2.7.5

  1. 下载:wget https://www.python.org/ftp/python/3.7.1/Python-3.7.1.tar.xz
  2. 解压:tar xJf Python-3.7..tar.xz
  3. 编译:
  4. cd Python-3.7.
  5. ./configure --prefix=/usr/local/python3. --enable-optimizations
  6. --prefix 是预期安装目录,--enable-optimizations 是优化选项(LTOPGO 等)加上这个 flag 编译后,性能有 % 左右的优化(如果没记错的话),但是这会明显的增加编译时间。
  7. 安装:
  8. make
  9. 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

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

2.3 将当前pip版本修改为pip3

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

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

3.安装Django

  1. pip install Django==2.1.

4.安装uwsgi

  1. pip install uwsgi
  2. 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同级,不知是不是必须),并填写以下配置信息:

  1. [uwsgi]
  2. # Django-related settings
  3. # Django项目本地端口
  4. socket = :
  5. # 项目根目录位置
  6. chdir = /root/blog/
  7. # wsgi.py文件在项目的中的相对位置
  8. wsgi-file = /blog/wsgi.py
  9. module =blog.wsgi
  10. # 进程设置,无需变动
  11. # master
  12. master = true
  13. # maximum number of worker processes
  14. # 启动4个uwsgi进程
  15. processes =
  16. # ... with appropriate permissions - may be needed
  17. # chmod-socket =
  18. # clear environment on exit
  19. vacuum = true
  20. pidfile=uwsgi.pid
  21. 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

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

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. 将dll文件注入到其他进程中的一种新方法

    http://www.45it.com/windowszh/201212/33946.htm http://www.hx95.cn/Article/OS/201212/65095.html 我们知道将 ...

  2. d3.js 实现立体柱图

    前言 随着大数据时代的来临,数据可视化的重要性也越来越凸显,那么今天就基于d3.js今天给大家带来可视化基础图表柱图进阶:立体柱图 关于d3.js d3.js是一个操作svg的图表库,d3封装了图表的 ...

  3. mysql配置文件my.ini优化详解

    mysql 5.5.13参数说明:[client]character-set-server = utf8port = 3306socket = /data/mysql/3306/mysql.sock[ ...

  4. java合并PDF,itext.jar

    远原文:http://illy.iteye.com/blog/856479 我们有时候需要将多个PDF文件合并成一个.GUI工具的方式就不说了, 这里只讨论使用java程式如何合并PDF.我们只需要使 ...

  5. 【jQuery】select动态追加的option选中

    var turnUpHidden = $("input[name='turnUpHidden']").val(); if(turnUpHidden != "") ...

  6. UML建模工具Visio 、Rational Rose、PowerDesign的比较

    UML建模工具Visio .Rational Rose.PowerDesign的比较   ROSE是直接从UML发展而诞生的设计工具,它的出现就是为了对UML建模的支持,ROSE一开始没有对数据库端建 ...

  7. js 的push方法

    JavaScript push() 方法 定义和用法 push() 方法可向数组的末尾添加一个或多个元素,并返回新的长度. 语法 arrayObject.push(newelement1,newele ...

  8. Debian+Pure-ftpd+MySQL+User manager for PureFTPd

    1. 安装pure-ftpd.MySQL apt-get purge vsftpd apt-get purge pure-ftpd apt-get purge pure-ftpd-common apt ...

  9. 7.volatile关键字

    volatile:一个线程修改了某一个共享变量的值,其他线程也是否能够立即知道这个修改的 1.主要是让该“变量”在多个线程中可见,在java中每一个线程都有一块自己的工作区,其中就存放着所有线程“共享 ...

  10. 这篇讲PHP的讲的有些道理 & mb_substr & 中文处理

    http://chengxu.org/p/239.html Python 是否是下一个 PHP? 1. PHP胜在最要命的部署上:没有任何其他语言有像 PHP 一样适合大规模部署的方式.基本上装好 A ...