在Debian下配置Python+Django+Nginx+uWSGI+MySQL的教程
网上大部分教程都是要求到uWSGI官方网站下载源码包,然后通过编译的方式安装,比如对于一台新Debian系统,可以通过下面的命令安装:
apt-get update apt-get upgrade apt-get install build-essential psmisc apt-get install python-dev libxml2 libxml2-dev apt-get install python-setuptools cd /opt/ wget http://projects.unbit.it/downloads/uwsgi-latest.tar.gz tar -zxvf uwsgi-latest.tar.gz mv uwsgi-latest/ uwsgi/ cd uwsgi/ python setup.py install
还有一些配置我就不介绍了,大家可以参考Linode Library的《Deploy Python Code with WSGI using uWSGI and nginx on Debian 6 (Squeeze)》介绍。
今天要介绍的是利用APT源直接apt-get install安装配置我们所需要的环境,首先按惯例先安装MySQL和Nginx:
然后通过Debian Packages网站找到我们所需要的uWSGI在sid里,sid版里的东西表示仍在开发测试中,不是最终稳定版,不过对于我们测试来说是够用了,为了用sid里面的软件包,我们还需要修改我们的/etc/apt/sources.list源,添加deb http://ftp.tw.debian.org/debian sid main non-free contrib这一行,或者直接输入命令:
echo "deb http://ftp.tw.debian.org/debian sid main non-free contrib" >> /etc/apt/sources.list
配置过源列表后,我们就可以通过下面的命令安装了:
apt-get update apt-get install uwsgi uwsgi-core uwsgi-plugin-python
安装完成后,配置文件按惯例放在了/etc/uwsgi里面,服务控制可以通过invoke-rc.d uwsgi后面跟命令参数来实现,不过这里有个小插曲我不得不提一下,安装时可能会报这样的错误:
The following packages have unmet dependencies: libc6-dev : Breaks: gcc-4.4 (看样子是依赖包gcc版本不匹配,我后来通过下面的方式解决了:
apt-get update apt-get upgrade # 先尝试升级系统软件包 apt-get install libc6-dev接下来就是安装django以及Python的MySQL支持,继续APT命令:
apt-get install python-django python-mysqldb通过上面的步骤,Python环境应该安装到你的系统里了,切换到/usr/lib:
cd /usr/lib ls -l | grep python你可能会发现系统内被默认安装了几个版本的Python,比如我这里就安装有3个版本:
/usr/lib/python2.6 /usr/lib/python2.7 /usr/lib/python3如何确定当前的Python默认版本呢?很容易,直接通过下面的命令就可以了:
python --version大家知道django是安装到python目录下的site-packages下的,但是这几个python目录下都没有site-packages这个文件夹,其实我们可以先通过下面的命令定位一下:
python -c "from distutils.sysconfig import get_python_lib; print get_python_lib()"上面的命令会在控制台上打印Python包路径,比如这里我们可能获得dist-packages这个目录,切换到这个目录你就会发现django在那儿啦。给django-admin.py加上权限,再做个符号连接,便于我们以后操作(我这里Django在Python2.7下):
chmod 777 /usr/lib/python2.7/dist-packages/django/bin/django-admin.py ln -s /usr/lib/python2.7/dist-packages/django/bin/django-admin.py /usr/local/bin记下Django所在的Python版本,然后通过下面的命令切换uwsgi的默认Python版本(一般不需要切换):
update-alternatives --config uwsgi-plugin-python好啦,到这里基本上安装部分就介绍完了,下面讲解配置部分,首先建立我们项目的文件夹,比如说放在/home/user/www下,然后通过下面的命令创建名为mysite的Django项目:
cd /home/user/www django-admin.py startproject mysite好了,这下/home/user/www目录下应该有个子文件夹名字叫mysite,我们需要丢个wsgi的配置文件到/home/user/www/mysite/里面去,配置文件命名为wsgi.py,内容如下:
接下来是修改uwsgi配置文件,先通过如下命令按照刚才的设置建立个配置文件:
cat > /etc/uwsgi/apps-enabled/www.ini注意上面的socket配置,这个在我机子上是这个路径,大家可以cd /var/run里面找下,然后配置正确,接下来建立Nginx配置文件:
cat > /etc/nginx/sites-enabled/www这里的uwsgi_pass依旧是上面我们找到的socket,注意一下server_name,这个是我们绑定的域名,通过nginx -s reload重新加载nginx。
好了,现在可以访问看看是不是成功了?如果出现502 Bad Gateway,可以检查一下uwsgi是否正常启动,通过ps aux | grep uwsgi看下进程列表,最后在检查下socket路径是否正确。
假如出现uWSGI Error:Python application not found这个问题,主要是路径配置问题,这点你可以查阅/var/log/uwsgi下面的日志文件,比如我就遇到过ImportError: No module named django.core.handlers.wsgi这个问题,实际上是wsgi.py里面路径配置不正确。
声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
相关文章
相关视频
专题推荐
- 独孤九贱-php全栈开发教程
全栈 170W+
主讲:Peter-Zhu 轻松幽默、简短易学,非常适合PHP学习入门
- 玉女心经-web前端开发教程
入门 80W+
主讲:灭绝师太 由浅入深、明快简洁,非常适合前端学习入门
- 天龙八部-实战开发教程
实战 120W+
主讲:西门大官人 思路清晰、严谨规范,适合有一定web编程基础学习
上一篇: php无限极归类的解决思路
推荐阅读
-
PHP在Linux下连接MSSQLServer的配置方法简述(一、Sybase库)_PHP
-
Weblogic815在Linux下的安装和配置
-
在IIS7.0下面配置PHP 5.3.2运行环境的方法_PHP
-
Apache1.3.x+PHP4 Beta3在Windows 9x/NT下的安装与配置
-
在Mac OS的PHP环境下安装配置MemCache的全过程解析_php实例
-
Linux+Nginx+MySQL下配置论坛程序Discuz的基本教程
-
各位大神在IIS上配置PHP的那个文件哪位高手可以发给小弟我下
-
在Windows2000ADV下配置Apache+PHP5+MySql5_PHP教程
-
Windows 环境下的PHP5 与 Apache 服务器的配置_PHP教程
-
PHP + Apache在Win9x下的安装和配置_PHP
网友评论
文明上网理性发言,请遵守 新闻评论服务协议
我要评论