zoukankan      html  css  js  c++  java
  • CentOS 6.5下安装Python+Django+Nginx+uWSGI

    1.安装Python3

    1.1先安装zlib库及其他三方库

    安装uWSGI时需要使用zlib,否则执行python uwsgiconfig.py --build时会报ImportError,就是因为在安装Python是没有包含zlib的原因,所以在安装最新的Python之间要把zlib安装好,在python2.x上据说是配置时指定--with-zlib选项,因为我使用python3.4,所以没有测试。

    下载最新zlib源代码包:http://zlib.net/zlib-1.2.8.tar.gz 
    解压缩、编译安装

    tar zxf zlib-1.2.8.tar.gz
    cd zlib-1.2.8
    ./configure
    make && make install

    默认安装路径为 /usr/local/lib

    1.2安装sqlite3
    最开始没有手工安装sqlite3,因为系统里有自带的,但是在执行python manage.py runserver 0.0.0.0:8080时报错,说是找不到sqlite3相关的模块,后来通过一番Google,发现可能是Python编译时需要有sqlite3-devel,具体不明。只好先安装最新的sqlite3.8.4,再重新编译安装Python3.4.0,才没有报错。

    下载最新sqlite3:http://www.sqlite.org/2014/sqlite-autoconf-3080403.tar.gz 

    解压缩、编译安装

    tar zxf sqlite-autoconf-3080403.tar.gz
    cd sqlite-autoconf-3080403
    ./configure
    make && make install

    1.3 Python基本安装

    下载最新Python源代码包:https://www.python.org/ftp/python/3.4.0/Python-3.4.0.tar.xz

    解压缩、配置编译安装  

    tar Jxf Python-3.4.0.tar.xz
    cd Python-3.4.0
    ./configure
    make && make install

    默认安装在/usr/local/lib/python3.4目录下


    2.安装Django框架

    下载源码包Django-1.6.1.tar.gz,地址:https://www.djangoproject.com/download/1.6.1/tarball/

    解压、安装

    tar zxf Django-1.6.1.tar.gz
    cd Django-1.6.1
    python3 setup.py install

    默认Django会安装在/usr/local/lib/python3.4/site-packages/django目录下

    如要卸载django,如不知道Python3的安装目录,则使用如下命令确定site-packages的位置
    python -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())"
    进入site-packages目录直接删除django目录和Django-1.6.1-py3.4.egg-info文件即可


    3.安装Nginx服务器
    nginx编译安装时需要用pcre库,所以需要先安装pcre
    3.1安装pcre库
    下载地址:http://jaist.dl.sourceforge.net/project/pcre/pcre/8.34/pcre-8.34.tar.bz2   ——Perl的正则表达式库
    解压缩、配置、编译安装

    tar jxf pcre-8.34.tar.bz2
    cd pcre-8.34
    ./configure --enable-utf8
    make && make install

    默认安装路径为 /usr/local/lib

    3.2安装nginx
    下载openssl最新的源码:http://www.openssl.org/source/openssl-1.0.1f.tar.gz
    解压缩待用,不需要编译,假设解压到/tmp目录

    tar zxf openssl-1.0.1f.tar.gz -C /tmp

    下载nginx源代码包:http://nginx.org/download/nginx-1.5.8.tar.gz
    解压缩、配置编译安装

    tar zxf nginx-1.5.8.tar.gz
    cd nginx-1.5.8
    #配置nginx 开启ssl和gzip
    ./configure --with-pcre --with-http_stub_status_module --with-http_ssl_module --with-openssl=/tmp/openssl-1.0.1f --with-http_gzip_static_module --with-http_sub_module --with-cc=/usr/bin/gcc
    make && make install

    默认安装路径为 /usr/local/nginx
    添加libpcre.so.1的连接,否则nginx启动时会报错

    #如果是64位系统:
    ln -s /usr/local/lib/libpcre.so.1 /lib64 
    
    #如果是32位系统:
    ln -s /usr/local/lib/libpcre.so.1 /lib

    启动nginx

    /usr/local/nginx/nginx

    浏览器中输入服务器IP地址,如有“Welocome to nginx”字样,则表示安装成功
    停止nginx服务器

    /usr/local/nginx/nginx -s stop

    4.安装uWSGI
    下载最新的2.0版本,地址:http://projects.unbit.it/downloads/uwsgi-2.0.1.tar.gz
    解压、安装

    tar zxf uwsgi-2.0.1.tar.gz
    cd uwsgi-2.0.1
    python3 uwsgiconfig.py --build
    python3 uwsgiconfig.py --clean
    cd ..
    cp -R ./uwsgi-2.0.1 /usr/local/uwsgi
    ln -s /usr/local/uwsgi/uwsgi /usr/bin/uwsgi

    注意:在任意目录中执行uwsgi时,其默认工作目录为当前目录

    5.设置Django+nginx+uWSGI

    5.1 使用Django创建实例站点
    假设当前目录为/var/www

    django-admin.py startproject mysite
    cd mysite
    python3 manage.py syncdb

    根据提示创建sqlite3数据库文件以及相关的表,当然还有超级用户

    5.2 配置uWSGI
    从https://github.com/nginx/nginx/blob/master/conf/uwsgi_params获取uwsgi的相关参数,保存为/var/www/mysite/uwsgi_params
    从/usr/local/nginx/conf中复制亦可
    5.2 nginx配置
    创建新用户组
    groupadd www
    新建django目录
    mkdir /usr/local/nginx/conf/django
    创建新用户
    useradd -s /sbin/nologin -g www -N -M nginx 
    useradd -s /sbin/nologin -g www -N -M uwsgi
    chown -R nginx:www /usr/local/nginx
    chown -R uwsgi:www /usr/local/uwsgi

    在http配置节中添加
    upstream django {
         server unix:///tmp/mysite.sock;
    }
    server {
         listen             8080;
         server_name  192.168.56.104;
         charset           utf-8;
         client_max_body_size 75M;
         location / {
              uwsgi_pass django;
              include uwsgi_params;
         }
    }

    nginx如果返回403错误,一般是因为文件系统访问权限问题造成,nginx不仅需要访问资源的可读权限,还需要其全部父目录的可执行权限.

    以上里面漏写了uwsgi的启动

  • 相关阅读:
    关于JDK中自带的类加载器
    关于Spring框架
    关于Java JUC
    数据库-数据添加与删除-视图-索引-存储过程
    数据库-查询练习
    数据库-数据类型-数据库创建表的 约束以及 DDL操作
    数据库-多表连接查询
    数据库笔记整理-数据库概述-三大范式及数据库基本命令
    JAVA笔记整理-JAVA网络编程-TCP/UDP传输
    JAVA笔记整理-线程二
  • 原文地址:https://www.cnblogs.com/clarke/p/5670757.html
Copyright © 2011-2022 走看看