linux下使用wsgi安裝django應用

2022-08-02 13:33:07 字數 3863 閱讀 4377

前言:由於對linux系統的不了解,裝軟體什麼的總是喜歡用yum命令,結果這次在搭建環境下吃了大虧。網上文章大多是使用mod_python來搭建的,這個只支援到python2.5,現在需要使用python2.7,只好選擇mod_wsgi,貌似mod_wsgi的處理效率還要更高一些。

1.      安裝環境:

centos版本:   centos5.7

python版本:   python2.7

apache版本:   httpd2.2

django版本: django1.1

mod_wsgi版本:    mod_wsgi-3.2-1.el5.x86_64.rpm

2.      軟體安裝:

2.1      安裝apache:

一般伺服器系統會自帶apache,如果沒有可以使用yum安裝一下:

2.2      安裝python2.7:

一般linux系統會自帶python,一般是2.4版本的,我們需要重新安裝,這裡注意,不要使用yum安裝,而要用原始碼編譯的方法安裝,不然下面在配置之後會出錯。

tar -xvf python-2.7.tar.bz2

cd python-2.7

./configure--enable-shared這裡一定要注意,解壓完之後要設定enable-shared

make

make install

一般安裝到的路徑是: /usr/local/lib/python2.7

安裝好之後可以執行:# python   檢視python是否安裝成功,這裡可能會遇到錯誤:

錯誤:/usr/local/lib/python2.7/config/libpython2.7.a:  could not read symbols: bad value

collect2: ld returned 1 exit status

apxs:error: command failed with rc=65536

這是因為安裝python的時候,沒有   ./configure  --enable-shared

加上後重新編譯,然後執行python,

遇到錯誤:

python: error while loading shared  libraries: libpython2.7.so.1.0:

cannot open shared object file: no such file or

解決方案: 

新建下面檔案

vim /etc/ld.so.conf.d/python2.7.conf

加入內容:

/usr/local/lib

儲存退出後執行:

ldconfig

再次執行 python,問題成功解決。

2.3      安裝django:

django的安裝比較簡單,和windows下一樣

tar xzvf  django-1.1.tar.gz

cd  django-1.1

sudo python  setup.py install

安裝完之後,執行命令:

# python

>>>import django

>>>django.version

可以看到django的版本號,則安裝成功。

2.4      安裝wsgi

安裝 mod_wsgi 之前先安裝apache的apxs擴充套件:

原因是yum命令依賴python2.4,現在用了2.7之後,yum命令就用不了了,解決方法如下:

vim /usr/bin/yum

將  #!/usr/bin/python 修改為 #!/usr/bin/python2.4

安裝完httpd_devel之後,開始安裝mod_wsgi:

./configure --with-python=/usr/local/bin/python2.7

make

make install 

安裝mod_wsgi的時候,建議不要使用yum安裝,因為用yum安裝很可能無法找到正確的python版本和apxs模組,或者本來沒安裝apxs模組,用yum安裝wsgi也可以成功,但實際執行卻會發生很多奇怪的錯誤,所以建議還是原始碼編譯安裝。

3          配置

3.1    配置apache:

apache的配置檔案在: /etc/httpd/conf/httpd.conf

新增:loadmodule  wsgi_module modules/mod_wsgi.so

注意:loadmodule wsgi_module modules/mod_wsgi.so要跟所有loadmodule 配置放到一起,如果加到最後無法找到這個模組。

這個非常重要,哥哥就是吃這個虧吃大了,除錯了乙個下午,沒結果,各種蛋疼啊。

然後在配置檔案中,新增:

namevirtualhost  *:8080

listen  192.168.145.139:8080

servername  www.abc.com

wsgiscriptalias  / /var/www/html/ltfs_vla/setting.wsgi

documentroot  /var/www/html/ltfs_vla

options followsymlinks

allowoverride

order allow,deny

allow from all

allowoverride none

order allow,deny

allow from all

allow from all

alias /ltfs "/var/www/html/ltfs_vla" 

options followsymlinks

allowoverride all

order allow,deny

allow from all

alias /admin_media  "/usr/local/lib/python2.7/site-pacages/django/conftrib/admin/media"

order allow,deny

options indexes

allow from all

indexoptions fancyindexing

配置中的路徑和ip埠等,根據實際需要自行更改。

3.2   配置wsgi:

根據上面的配置,在/var/www/html/ltfs_vla/  目錄下,建立setting.wsgi檔案,內容如下:

import os

import sys

sys.stdout=sys.stderr

from os.path  import abspath,dirname,join

from  django.core.handlers.wsgi import wsgihandler

sys.path.insert(0,abspath(join(dirname(__file__),"./")))

os.environ["django_settings_module"]  =  "gui.settings"

這個檔案的作用是一些環境變數的設定。

4          除錯

開啟apache服務

然後開啟瀏覽器,輸入ip位址就可以了,我這裡輸入的是192.168.145.139:8080。

以上就是基本的配置過程,

Linux下FTP安裝使用

size medium 修改配置檔案 etc vsftpd vsftpd.conf vi etc vsftpd vsftpd.conf 取消下面內容前面的注釋或新增 anonymous enable yes no 是否允許訪問 chroot list enable yes 限定使用者不可以離開主目錄...

linux 下安裝與使用

一 安裝 wget 我自己建個資料夾 mkdir usr redis mv redis 3.2.9.tar.gz usr redis 解壓 tar zxvf redis 3.2.9.tar.gz make 編譯 make root使用者可以執行 make install 將可執行檔案拷貝到 usr ...

linux下使用yum安裝mysql

linux下使用yum安裝mysql 1 安裝 檢視有沒有安裝過 yum list installed mysql rpm qa grep mysql 檢視有沒有安裝包 yum list mysql 安裝mysql客戶端 yum install mysql 安裝mysql 伺服器端 yum inst...