Nginx+uWSGI+Django+Python+ MySQL 搭建可靠的Python Web服务器
一、安装所需工具
yum -y install gcc gcc-c++ rpm-build mysql* libtool-ltdl* libtool automake autoconf libtool make setuptool
二、编译安装python2.7.5
1. 下载python2.7.5,保存到 /data/qtongmon/software
http://www.python.org/ftp/python/
2. 解压文件
tar xvf Python-2.7.5.tar.bz2
3. 创建安装目录
mkdir /usr/local/python27
4. 安装python
./configure --prefix=/usr/local/python27 --enable-shared
make
make install
5. 修改老版本的ln指向(注意:这里修改后,可能会影响yum的使用)
mv /usr/bin/python /usr/bin/python2.4.3
ln -s /usr/local/python27/bin/python /usr/bin/python
6.yum是使用python写的,升级新版本的python后会导致yum不可用,如下为运行yum时的错误提示:
There was a problem importing one of the Python modules
required to run yum. The error leading to this problem was:
No module named yum
解决方法:
查找yum文件,并编辑此py文件
[root@TC-Boss ~]# which yum
/usr/bin/yum
[root@TC-Boss ~]# vi /usr/bin/yum
将
#!/usr/bin/python
改为:
whereis python出来的结果(老版本的python)
#!/usr/bin/python2.6
然后保存OK.
二、安装uWSGI
下载uWSGI的最新版
wget http://projects.unbit.it/downloads/
因为我最后采用xml配置django app 的部署,所以编译 uWSGI 时候需要把libxml编译进去
yum -y install libxml2-devel
剩下的就简单了
tar zxvf uwsgi-1.9.17.tar.gz
cd uwsgi-1.9.17
make
cp uwsgi /usr/sbin/uwsgi
如果遇到错误:python: error while loading shared libraries: libpython2.7.so.1.0:
cannot open shared object file: No such file
按如下方式解决:
vim /etc/ld.so.conf.d/python2.7.conf
加入以下内容:/usr/local/python27/lib (实际的python安装路径下的lib目录)
保存退出后运行:
ldconfig
即可
至此 uWSGI 就算是安装完成了,下一步安装 Nginx
更多详情见请继续阅读下一页的精彩内容: http://www.linuxidc.com/Linux/2013-10/91063p2.htm
推荐阅读:
你应该使用 Nginx + uWSGI http://www.linuxidc.com/Linux/2013-07/87286.htm
uWSGI + Nginx 部署 Flask Web 应用 http://www.linuxidc.com/Linux/2013-06/85828.htm
Django+Nginx+uWSGI 部署 http://www.linuxidc.com/Linux/2013-02/79862.htm
Linux下Nginx+uWSGI部署Python应用 http://www.linuxidc.com/Linux/2012-10/72443.htm
Ubuntu Server 12.04 安装Nginx+uWSGI+Django环境 http://www.linuxidc.com/Linux/2012-05/60639.htm
CentOS 5.5 + Nginx 0.8.50 + uWSGI + Django 1.2.3 部署Django项目 http://www.linuxidc.com/Linux/2011-05/36399.htm
三、Nginx 安装
Nginx 的详细介绍:请点这里
Nginx 的下载地址:请点这里
参考CentOS 6.4安装配置Nginx+Pcre+php-fpm http://www.linuxidc.com/Linux/2013-08/88984.htm
注意编译的时候要加上参数:--with-cc-opt='-O3' --with-cpu-opt=opteron
[root@htuidc nginx-1.4.2]# ./configure --with-http_stub_status_module --prefix=/usr/local/nginx --with-cc-opt='-O3' --with-cpu-opt=opteron
四、安装MySql-python
wget http://sourceforge.net/projects/mysql-python/files/mysql-python/1.2.3/MySQL-python-1.2.3.tar.gz/download
tar zxvf MySQL-python-1.2.3.tar.gz
cd MySQL-python-1.2.3
python setup.py install
ImportError: No module named setuptools 解决方案 :
wget http://pypi.python.org/packages/source/s/setuptools/setuptools-0.6c11.tar.gz
tar zxvf setuptools-0.6c11.tar.gz
cd setuptools-0.6c11
python setup.py build
python setup.py install
/usr/bin/ld: cannot find -lpython2.7错误,解决方案 :
cd /usr/lib
ln -s /usr/local/python27/lib/libpython2.7.so libpython2.7.so
ll -a|grep python
lrwxrwxrwx. 1 root root 39 Oct 1 16:39 libpython2.7.so -> /usr/local/python27/lib/libpython2.7.so
drwxr-xr-x. 3 root root 4096 May 3 15:15 python2.6
出错:error: command 'gcc' failed with exit status 1
处理方法:
yum -y install mysql-devel
安装完成,到你的python安装目录下的site-packages目录里检查以下文件是否存在,如果存在即代表安装成功了
Linux:MySQL_python-1.2.3c1-py2.6-linux-i686.egg
测试方法
1)运行命令python进入python运行环境
2)输入以下python代码进行测试
import MySQLdb
test=MySQLdb.connect(db='mydb',host='localhost',user='root',passwd='p')
cur = test.cursor()
cur.execute('show databases;')
for data in cur.fetchall():
print data
五、安装Django
wget https://www.djangoproject.com/m/releases/1.5/Django-1.5.4.tar.gz
tar xzvf Django-1.5.4.tar.gz
cd Django-1.5.4
python setup.py install
测试Django安装
终端中输入 python,进入python交互模式,输入如下:
>>>import django
django.VERSION
正常情况会显示版本号码。
六、nginx配置
server {
listen 80; ## listen for ipv4; this line is default and implied
#listen [::]:80 default ipv6only=on; ## listen for ipv6
server_name blog.hysia.com;
access_log /var/log/nginx/blog.hysia.com-access.log ;
error_log /var/log/nginx/blog.hysia.com-error.log ;
location / {
uwsgi_pass 127.0.0.1:8630;
include uwsgi_params;
}
}
Nginx+uWSGI+Django+Python+ MySQL 搭建可靠的Python Web服务器的更多相关文章
- nginx+uwsgi+django+supervisor+mysql+redis
目录 1. 概述 3 2. 安装与配置 3 2.1 django项目与应用创建 3 2.2 uwsgi安装与配置 6 2.3 supervisor安装与配置 8 2.4 nginx安装与作为反向代理服 ...
- nginx+uwsgi+django开发环境搭建
Nginx+uWSGI+Djangoi开发环境搭建 Django简介,环境搭建 uWSGI简介,安装与配置 Nginx安装与配置 Nginx+uWSGI+Django原理解析 1.django简介,环 ...
- centos7.4+mysql5.6+virtualenv+python3.6+nginx+uwsgi+django生产环境搭建
一 更新yum # yum update 二 安装gcc lrzsz软件 # yum install gcc 用来编译python3.6源码 # yum install lrzsz 用来上传文件 三 ...
- python部署到服务器(2) 一一 nginx+uwsgi+Django
参考菜鸟教程,https://blog.csdn.net/qq_42314550/article/details/81805328, 和 https://www.cnblogs.com/chenice ...
- Ubuntu Nginx uwsgi django 初试
/************************************************************************************** * Ubuntu Ngi ...
- Nginx+uwsgi+django+vue部署项目
购买服务器 # 购买阿里云服务器 # 短期或是测试使用,创建 按量收费 服务器,可以随时删除,删除后不再计费,但要保证账户余额100元以上 连接服务器 1)账号 >: ssh root@39.9 ...
- 安装Nginx+uWSGI+Django环境
Ubuntu Server 12.04 安装Nginx+uWSGI+Django环境 今天要介绍的是利用APT源直接apt-get install安装配置我们所需要的环境,首先按惯例先安装MySQL和 ...
- debian完整部署 Nginx + uWSGI + Django
手工部署一个Django服务器真心不容易,需要安装很多东西.从头开始搭建服务器,主要是为了梳理一下后续开发中一般为碰到的平台部署.对后续问题的解决有一定帮助. 通常部署有2中方式: 一种是使用现成提供 ...
- Nginx+uWSGI+Django原理
Python的Web开发中,如果使用Django框架,那么较为成熟稳定的服务器架构一般是Nginx+uWSGI+Django.而为什么一定要三个结合在一起呢?直接使用Django的runserver来 ...
随机推荐
- mvc伪静态<三> IIS配置
上一篇已经已经讲述了mvc伪静态的代码实现. 下面以IIS 7.5为例演示一下IIS如何配置才能在服务器显示.html的伪静态 一.进入IIS,选择处理程序映射 二添加脚本映射 三根据你的处理程序的版 ...
- Java 多线程——基础知识
java 多线程 目录: Java 多线程——基础知识 Java 多线程 —— synchronized关键字 java 多线程——一个定时调度的例子 java 多线程——quartz 定时调度的例子 ...
- SAP本地文件策略(导EXCEL选择拒绝后处理)
导出EXCEL意外选择了拒绝+记住选择,这样的话在本地电脑就导不出文件了,如下图: 解决办法有2个: 1,修改导出文件的本地策略 :Alt+F12 ->选项->安全性->安全设置-& ...
- Objective-C:Category
Category可以在不需要创建子类或是修改原始类的基础上,动态为已经存在的类添加新的行为(方法),,这样可以保证类的原始设计规模较小,功能增加时再逐步扩展:实现了类的相关方法的模块化,把不同的类方法 ...
- js 面试题
1.用原生js,创建一个无序列表添加到body中,ul下包含5个li,每个li包含一个text类型元素,text元素内容可自定义: <script type="text/javascr ...
- Windows Store App 应用程序安装目录
前面介绍了如何对本地应用存储空间中的文件以及文件夹进行操作,在应用中除了可以对本地应用存储空间进行操作之外,还可以对应用程序安装目录进行相关操作.本节将通过一个示例,详细讲解如何对应用程序安装目录中的 ...
- string字符串类型
一次设置一个key-value 使用set命令可以一次设置一个key-value,使用get命令可以查询key所关联的字符串值.如下图所示. 一次设置多个key-value 使用mset命令可以设置多 ...
- telnet与ssh有什么不同呀
含义: 1 使用Telnet这个用来访问远程计算机的TCP/IP协议以控制你的网络设备相当于在离开某个建筑时大喊你的用户名和口令.很快会有人进行监听,并且他们会利用你安全意识的缺乏.传统的网络服务程序 ...
- [示例]NSEnumerator-使用枚举类型实现数组的逆序输出
代码: #import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepo ...
- 键盘控制select选项上下
$('#k').live('keydown',function(event){ if (event.keyCode==38){ /*$(this).addClass("active" ...