centos下django1.9部署

环境说明:

环境为阿里云服务器,系统版本为centos6.5python

默认python版本为2.6mysql

第一步:更新python版本

    去python官网下载python2.7.11的源码包https://www.python.org/downloads/release/python-2711/nginx

在安装python2.7以前,咱们须要安装一些以后须要的依赖库,否则的话,以后还须要的时候还须要从新编译安装python。web

这里咱们用yum安装上zlib, ssl:sql

    安装zlibshell

yum install zlib zlib-devel

    安装openssl:数据库

yum install openssl openssl-devel

    以后安装python。解压咱们以前下载的python2.7的包,进入目录后,指定安装目录方便以后寻找相关文件。而后make , makeinstall.django

./configure --prefix=/usr/local/python27
make
make install

    make install成功后,须要覆盖/usr/bin/pythoncentos

cp /usr/bin/python  /usr/bin/python26.old
ln -s /usr/local/python27/bin/python /usr/bin/python

    这样,python2.7咱们已经安装好了,咱们能够在命令行下敲击python -V  查看python版本是否成功为2.7
服务器

    

    安装好python2.7后,咱们须要从新制定下yum的python版本

vi /usr/bin/yum

    将文件头改成:

#!/usr/bin/python2.6
...
第二步: 安装pip工具和django

    pip是python的库管理工具,能够很方便的管理python的库文件。由于pip依赖于setup_tools,因此先下载setup_tools 和pip源码tar包。从pypi上下载:

setup_tools:https://pypi.python.org/pypi/setuptools

pip: https://pypi.python.org/pypi/pip/7.1.2

    下载好以后,解压出来,依次是用python setup.py install 安装setup_tools 和pip。安装过程当中若是以前没有安装库文件,则须要yum安装所须要的库, 从新编译安装python。

    安装好pip后,咱们能够直接用pip安装django

pip install django

    博文建立时间,安装的是django1.9,安装好后,是用命令查看Django版本

python -c "import django; print django.get_version()"

    若是输出对应的版本号,则安装成功。 

第三步  安装nginx和uwsgi

    接下来安装nginx, 能够直接用yum install nginx , 或者下载nginx源码包编译安装。这里用yum安装nginx

安装好后,是用nginx -v 查看nginx版本,

    

    yum库不够新,安装的nginx版本挺低,但如今不影响使用,若是须要更新版本,能够下载tar包本身编译安装。

    接下来安装uwsgi,咱们使用pip install uwsgi安装。安装成功后,在python27的bin目录下面生成uwsgi可执行文件。

    咱们将他移到/usr/bin/下面。

    编写一个运行脚本内容以下:

#!/bin/sh

/usr/bin/uwsgi -s /tmp/uwsgi.sock --uid www -C -M -p 10 -t 10 -R 10000 -d /tmp/uwsgi.log --pidfile /tmp/uwsgi.pid --vhost
echo "[started]"

    咱们使用的是www用户,因此须要增长一个www用户

useradd www

    启动后,咱们能够ps查看进程是否正常启动

    

    启动了10个工做进程。监听的是/tmp/uwsgi.sock ,log日志文件在/tmp/uwsgi.log

第四步 安装mysql和MySQL-python

   centos6.5上yum库默认的是mysql5.1.73,因此咱们须要更新下yum库,添加yum源

rpm -Uvh http://mirror.webtatic.com/yum/el6/latest.rpm

   而后查看下mysql相关的库

    

    须要安装以下:mysql55w-libs, mysql55w-server, mysql55w-devel, mysql55w, MySQL-python.

    安装成功后,使用命令service mysqld start 启动便可,而后设置mysql的root用户密码

    命令:mysqladmin -uroot -p password mypassword,回车后,会提示输入密码,由于初始没有,因此直接回车便可。

    而后安装python的MySQLdb

    pip install mysql-python 或者 http://sourceforge.net/projects/mysql-python/


第五步 建立django项目,完成部署

    在项目目录下建立django项目

/usr/local/python27/bin/django-admin.py startproject mytest

    在项目目录下新增wsgi文件:django_wsgi.py

import os

import django.core.handlers.wsgi

os.environ['DJANGO_SETTINGS_MODULE'] = 'mytest.settings'
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()

    若是须要配置数据库,则python manager.py migrate建立相关表结构。

    接下来配置nginx.conf

    nginx.conf 配置文件在/etc/nginx/nginx.conf

    在nginx.conf 中的http段里面添加一个server

server {
        listen       youserverport;
        server_name  youservername;

        location / {
                include uwsgi_params;
                uwsgi_pass unix:///tmp/uwsgi.sock;
                uwsgi_param UWSGI_CHDIR /home/data/mytest;
                uwsgi_param UWSGI_SCRIPT django_wsgi;
        }
        location /static {
                  root /home/data/mytest;
          }
    }

    server_name 和listen根据本身的须要配置,location / 里面用uwsge_pass将请求代理给uwsge,即uwsgi进程监听的/tmp/uwsgi.sock,    uwsgi_param参数CHDIR为项目地址,SCRIPT为咱们在项目中建立的django_wsgi.py文件名(不包含后缀名)

    最后再配置了个static静态目录,减轻uwsgi和django的压力。

    而后重启nginx,重启uwsgi,到这里服务的环境已经部署完毕,能够访问对应的域名或者ip去尝试访问了。

    由于没有配置uwsgi根据代码文件修改后自动重启,因此以后若是修改了项目下的python文件,则须要手动重启uwsgi。

相关文章
相关标签/搜索