Nginx+uWSGI+Django+Python+ MySQL 搭建可靠的Python Web伺服器

來源:互聯網
上載者:User

標籤:

一、安裝所需工具

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檔案

[[email protected] ~]# which yum

/usr/bin/yum

[[email protected] ~]# 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

第 2 頁(共 2 頁)

三、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

[[email protected] 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伺服器

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.