zoukankan      html  css  js  c++  java
  • 建站随手记:installation python virtualenv mezzanine -1

    aliyun的网络访问有时会有问题,pip有问题的时候使用豆瓣源

    pip install $apptoinstall$ -i http://pypi.douban.com/simple

    ------------------------------------------------------------------------------------

    Step1.Perpare the basic packages

    1.instal pip and fabric

    sudo easy_install pip # no pip in ubuntu < 10, make sure
    sudo pip install --upgrade virtualenv virtualenvwrapper
    sudo pip install --upgrade 'fabric>=1.0'

    2.install compiler

    sudo apt-get --yes install build-essential python-setuptools python-dev 
                       python-software-properties
    

    3.install C lib for PIL

    这个是为mezzanine准备的,Pillow自动安装的时候不会自动装,mezzanine的上传功能不能使用。

    sudo apt-get install --yes libtiff4-dev libjpeg8-dev zlib1g-dev libfreetype6-dev 
                               liblcms1-dev libwebp-dev python-dev

    ----------------------------------------------------------------------------

    Step 2.Setup Mezzinine in VirtualEnv

    0.perpare folds

    mkdir -p /srv/www/open-ivi.org/public_html/static
    mkdir  /srv/www/open-ivi.org/application
    mkdir  /srv/www/open-ivi.org/logs

    1. create virtualenv

    
    

    export WORKON_HOME=/srv/www/open-ivi.org/
    mkdir $WORKON_HOME
    source /usr/local/bin/virtualenvwrapper.sh

    cd $WORKON_HOME

    mkvirtualenv open-ivi.org

    #rmvirtualenv open-ivi.org # use this command to remove the env if you are in trouble

    ######################################################################

    # How to enter this virtual env again 

     cd /srv/www/open-ivi.org/

     source /srv/www/open-ivi.org/open-ivi.org/bin/activate

    ######################################################################

    2.install packages 

    pip install pillow
        --------------------------------------------------------------------
        *** TKINTER support not available
        --- JPEG support available
        --- ZLIB (PNG/ZIP) support available
        --- LIBTIFF support available
        --- FREETYPE2 support available
        *** LITTLECMS2 support not available
        --- WEBP support available
        *** WEBPMUX support not available
        --------------------------------------------------------------------
    pip install mezzanine south django-compressor

     3. try to work with sqlite3

    mezzanine-project siteroot
    chmod 777 -R *.py #make it as exe
    cd siteroot
    ./manage.py createdb --noinput # usrname:admin pwd:default
    ./manage.py runserver 0.0.0.0:9999
    
    #then check it with your browser

    So great! It works.Then let's create the server stack .

    ------------------------------------------------------------------------------------

    Step3.Make Gunicorn works

    0.Make Sure django works with the deploy env

    #go there to find a key :http://www.miniwebtool.com/django-secret-key-generator/
    #edit siteroot/deploy/live_setting.py
    SECRET_KEY =

    1.install gunicorn

    gunicorn18.0 droped gunicorn_django so let's use old version.

    pip install gunicorn==17.5
    #make www-data own the folder
    chown -R www-data:www-data /srv/www

    2.test gunicorn

    gunicorn siteroot.wsgi:application --bind 0.0.0.0:80

    3.add gunicorn conf to project root

    #we use the code from deploy/gunicorn.conf.py
    from __future__ import unicode_literals
    import os
    import multiprocessing
    
    bind = "127.0.0.1:8023"
    workers = multiprocessing.cpu_count() * 2 + 1
    #old method have problem with the system use multiprocessing class for replacement
    #workers = (os.sysconf("SC_NPROCESSORS_ONLN") * 2) + 1 loglevel = "error" proc_name = "openivi"

    4. install supervisor

    apt-get install supervisor ngnix

    5.make gunicorn run while reboot

    vi /etc/supervisor/conf.d/openivi.conf
    #add codes below 
    

    [group:openivi]
    programs=gunicorn_openivi

    
    

    [program:gunicorn_openivi]
    command=/datadsk/siteroot/bin/gunicorn_django -c gunicorn.conf.py -p gunicorn.pid
    directory=/datadsk/siteroot/openivi
    user=root
    autostart=true
    autorestart=true
    redirect_stderr=true
    environment=PATH="/datadsk/siteroot/bin"

     

    6.try it!

     supervisorctl reload

    CSS won't be found when we use gunicorn, let nginx do with the statics.

    Step4.Work with Nginx

    we already installed ngnix in step3

    1.config it! Add file to /ete/nginx/sites-enabled/openivi.conf as below.

    upstream openivi {
        server 127.0.0.1:8023;
    }
    
    server {
        listen 80;
    #    listen 443 ssl;
        server_name localhost;
        client_max_body_size 10M;
        keepalive_timeout    15;
    
    #    ssl_certificate      conf/%(proj_name)s.crt;
    #    ssl_certificate_key  conf/%(proj_name)s.key;
    #    ssl_session_cache    shared:SSL:10m;
    #    ssl_session_timeout  10m;
    #    ssl_ciphers RC4:HIGH:!aNULL:!MD5;
    #    ssl_prefer_server_ciphers on;
    
        location / {
            proxy_redirect      off;
            proxy_set_header    Host                    $host;
            proxy_set_header    X-Real-IP               $remote_addr;
            proxy_set_header    X-Forwarded-For         $proxy_add_x_forwarded_for;
            proxy_set_header    X-Forwarded-Protocol    $scheme;
            proxy_pass          http://openivi;
        }
    
        location /static/ {
            root            /datadsk/siteroot/openivi;
            access_log      off;
            log_not_found   off;
        }
    
        location /robots.txt {
            root            /datadsk/siteroot/openivi/static;
            access_log      off;
            log_not_found   off;
        }
    
        location /favicon.ico {
            root            /datadsk/siteroot/openivi/static/img;
            access_log      off;
            log_not_found   off;
        }
    
    }
                                                                

     @we used nginx for static pass-though, don't forget to collect all static file to the root folder. manage.py have this feature which provided by django framework.

     Test it ,Shoud be works.

  • 相关阅读:
    python-TCP传输模型
    python-锁机制
    python-生产者消费者模式
    python-Lock锁线程同步和互斥
    python-Event事件线程同步和互斥
    python-thread封装类创建线程
    python-fifo管道文件通信
    python-thread多线程
    Sublime一些设置
    gdb的user-define command
  • 原文地址:https://www.cnblogs.com/nasiry/p/3523440.html
Copyright © 2011-2022 走看看