debian下面nginx + uwsgi + Django1.5.1 配置环境
来源:互联网 发布:paxos算法 维基百科 编辑:程序博客网 时间:2024/06/05 02:07
之前一直都是Django测试环境manager.py runserver。
项目准备的差不多准备上线。在大牛的推荐下,使用virtualbox 安装 debian wheezy版本。
思路。
1:安装系统
2:远程SSH模拟登录vps
3:安装python与Django开发环境
4:nginx + uwsgi 安装与测试
5:整体测试
安装准备
1:安装1个干净的debian以后启动。在安装系统软件出错误,跳过~
重启
更新
apt-get updage;apt-get upgrade;
安装vim
apt-get install vim
普通用户执行超级命令需要 sudo
apt-get install sudo
修改权限
#chmod 640 /etc/sudoers#vim /etc/sudoers#chmod 440 /etc/sudoers
在修改440权限之前记得
添加一行 watsy ALL=(ALL) ALL #这里的watsy就是你要给予一定权限的用户
保存退出
切换到普通用户
su watsy
修改镜像源
sudo vim /etc/apt/sources.list
地址
deb http://ftp.cn.debian.org/debian/ wheezy main contrib non-freedeb-src http://ftp.cn.debian.org/debian/ wheezy main contrib non-freedeb http://ftp.cn.debian.org/debian-security/ wheezy/updates main contrib non-free
sudo apt-get updage;sudo apt-get upgrade;sudo apt-get install builde-essential;sudo apt-get autoremove;sudo apt-get autoclean
到这里完成系统环境配置
安装ssh
apt-get install openssh-server
重启
远程ssh登录,在这个步骤中,还需要设置virtualbox网络模式为桥接。关系不大,跳过
第3步,安装python开发环境。
安装python相关环境
apt-get install python-dev libxml2 libxml2-devapt-get install python-setuptools后面
参考下面的文章,部分步骤有问题。
精简的流程
http://2goo.info/blog/panjj/Django/2011/06/05/521
http://2goo.info/blog/panjj/Django/2013/05/16/549
流程:
debian wheezy系统自带python2.7.3版本
安装python开发的一些包
安装pip
安装virtualenv(python的虚拟环境)文章可以参考 我们在360如何做用python - virtualenv篇
在虚拟环境下安装开发资源模块
cd /opt/sudo mkdir wwwvirtualenv --no-site-packages --distribute example
cd example
下面是在虚拟环境下安装开发资源包,django django-tinymce等。
参考的资料是直接使用pip
实际测试pip并没有安装到开发环境下。
经过google实际应该执行
/opt/www/exmple/bin/pip install Django==1.5.1
其他配置环境一致。
ssh上传本地代码到服务器.manager runserver成功
第4步。安装nginx 与 uwsgi
主力参考
https://gist.github.com/evildmp/3094281
辅助参考
http://developer.51cto.com/art/201010/229615.htm
其中github参考的Install nginx部分 直接sudo pip nginx。
权限部分需要设置chmod-socket = 666
--virtualenv /path/to/virtualenv
这里需要设置的virtualenv路径实际是virtualenv生成的web路径。本例中为 /opt/www/example后面启动发现得到如下错误
- *** WARNING: you have enabled harakiri without post buffering. Slow upload could be rejected on post-unbuffered webservers *** - VirtualHosting mode enabled. - uwsgi socket 0 bound to UNIX address /run/uwsgi/app/vhosts/socket fd 5 - unlink(): Operation not permitted [socket.c line 75] - bind(): Address already in use [socket.c line 107]
查资料发现,重启一下就好了。
至此,配置成功。接下来可以购域名和vps准备上线。
完整流程
参考准备步骤以后。
Django环境
执行
sudo apt-get install python-pipsudo pip install -U virtualenv安装python的虚拟环境。
安装完以后,在虚拟环境下配置发布环境。
cd /var/wwwsudo virtualenv --no-site-packages --distribute pythonsudo chown www-data:www-data pythonsudo chmod 777 -R pythoncd pythonsu 这里切换到超级用户source bin/activate
这样就进入了虚拟python开发环境
在此环境下,安装Django
pip install django==1.5.1
安装完成以后,建立1个django项目
django-admin.py startproject helloDjangocd helloDjangodjango-admin.py startapp helloApp
配置settings的apps
vim /var/www/python/helloDjango/helloDjango/settings.py
找到INSTALLED_APPS添加
INSTALLED_APPS = { ...... 'helloDjango', 'helloApp', ......}
pwd> /var/www/python/helloDjangopython /var/www/python/helloDjango/manage.py runserver 0.0.0.0:8000
此时浏览器输入
http://127.0.0.1:8000
应该会看到django的debug页面。
退出python虚拟环境
deactivate
nginx配置
apt-get install nginx
在helloDjango目录下执行
vim helloDjango.conf
输入
upstream helloDjango { server unix:///tmp/uwsgi.sock;}server { listen 8000; server_name 127.0.0.1 192.168.2.108; charset utf-8; client_max_body_size 75M; access_log /var/log/nginx/helloDjango/access.log; error_log /var/log/nginx/helloDjango/error.log; #path location / { uwsgi_pass helloDjango; include /etc/nginx/uwsgi_params; }}
然后把配置联接到nginx
ln -s /var/www/python/helloDjango/helloDjango.conf /etc/nginx/sites-enabled/
uwsgi配置
apt-get install uwsgi
vim /var/www/python/helloDjango/helloDjango.ini
填写
[uwsgi]master = truechdir = /var/www/python/helloDjangoprocesses = 2socket = /tmp/uwsgi.sockchmod-socket = 666wsgi-file = /var/www/python/helloDjango/helloDjango/wsgi.pyhome = /var/www/pythondaemonize = /var/log/uwsgi/helloDjango.log
ln -s /var/www/python/helloDjango/helloDjango.ini /etc/uwsgi/apps-enabled/
启动测试
service uwsgi startservice nginx start
在浏览器输入
http://127.0.0.1:8000
没有意外会看到熟悉的界面。
错误处理
vim /var/log/nginx/helloDjango/error.log
查看转发问题
vim /var/log/uwsgi/helloDjango.log
如果uwsgi错误中提示
*** no app loaded. going in full dynamic mode ***
执行
aptitude install uwsgi-plugin-python之后重启uwsgi
- debian下面nginx + uwsgi + Django1.5.1 配置环境
- nginx+uwsgi+django1.11 环境部署
- Debian环境 Python + Django + Nginx + uWSGI + MySQL 配置备忘
- Debian环境 Python + Django + Nginx + uWSGI + MySQL 配置
- Debian+nginx+uWSGI+Django配置
- centos6.6+django+nginx+uwsgi环境配置
- Nginx + uwsgi + django 配置
- nginx + uwsgi简单配置
- Nginx + uWSGI + Django 配置
- nginx + django + uwsgi 配置
- django+uWSGI+Nginx配置
- django + uwsgi + nginx 配置
- nginx和uwsgi配置
- nginx配置uwsgi
- uWSGI+nginx+静态配置
- django+nginx+uwsgi配置
- nginx+uwsgi+Django配置
- uWSGI+Nginx安装、配置
- 一些日常
- Android编译系统分析(1)
- wmp快速播放自实现
- cocos2d-x CCAction类 继承关系图
- 每个程序员都应该学习使用Python或Ruby
- debian下面nginx + uwsgi + Django1.5.1 配置环境
- dbms_stats包
- Java三大框架的技术起源
- linux设备驱动归纳总结(三):6.poll和sellct
- [Oracle] CPU/PSU补丁安装教程
- 中国式弱点营销:我们需要知道自己想要什么!
- X3D - 一次编写、处处、时时都可渲染的三维图形格式
- Display the images in multiple scales
- trunk