建站随手记: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.

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

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.

posted @   nasiry  阅读(737)  评论(0编辑  收藏  举报
编辑推荐:
· 用 C# 插值字符串处理器写一个 sscanf
· Java 中堆内存和栈内存上的数据分布和特点
· 开发中对象命名的一点思考
· .NET Core内存结构体系(Windows环境)底层原理浅谈
· C# 深度学习:对抗生成网络(GAN)训练头像生成模型
阅读排行:
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· 本地部署DeepSeek后,没有好看的交互界面怎么行!
· 趁着过年的时候手搓了一个低代码框架
· 用 C# 插值字符串处理器写一个 sscanf
· 推荐一个DeepSeek 大模型的免费 API 项目!兼容OpenAI接口!
点击右上角即可分享
微信分享提示