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。

相關文章
相關標籤/搜索