網上有關的教程千篇一概,都是無腦抄,本身都不驗證一遍就直接複製,毫無心義,我經過官方文檔和本身摸索,總結了一套教程。python
Django自帶Web服務功能,但那只是方便開發調試,生產環境中通常將Django搭配Apache使用,mod_wsgi是用來溝通Django和Apache的橋樑。mysql
本教程須要下載的文件都是直接經過官網下載的,我已將本教程所用到的文件打包上傳到雲盤,有須要的童鞋能夠直接下載:c++
http://pan.baidu.com/s/1pLD7vVPsql
操做系統:CentOS 6.7 64-bit數據庫
yum -y install gcc make wget
yum -y install zlib-devel openssl-devel
wget https://www.python.org/ftp/python/2.7.12/Python-2.7.12.tgz
tar xzf Python-2.7.12.tgz
cd Python-2.7.12/
./configure --prefix=/usr/local/python CFLAGS=-fPIC
make && make install
cd ../apache
備註:不安裝zlib-devel的話,在安裝setuptools時會報錯。不安裝openssl-devel的話,在安裝django時會報錯。不加CFLAGS=-fPIC參數,安裝mod_wsgi時會報錯。django
在/etc/profile文件末尾添加如下內容:瀏覽器
export PATH=/usr/local/python/bin:$PATH
而後使配置文件生效:服務器
. /etc/profile
wget https://pypi.python.org/packages/6b/dd/a7de8caeeffab76bacf56972b3f090c12e0ae6932245abbce706690a6436/setuptools-28.3.0.tar.gz
tar xzf setuptools-28.3.0.tar.gz
cd setuptools-28.3.0/
python setup.py install
cd ../
wget https://pypi.python.org/packages/e7/a8/7556133689add8d1a54c0b14aeff0acb03c64707ce100ecd53934da1aa13/pip-8.1.2.tar.gz
tar xzf pip-8.1.2.tar.gz
cd pip-8.1.2/
python setup.py install
cd ../
wget http://apache.fayea.com/apr/apr-1.5.2.tar.bz2
tar xjf apr-1.5.2.tar.bz2
cd apr-1.5.2/
./configure
make && make install
cd ../
wget http://apache.fayea.com/apr/apr-util-1.5.4.tar.bz2
tar xjf apr-util-1.5.4.tar.bz2
cd apr-util-1.5.4/
./configure --with-apr=/usr/local/apr/
make && make install
cd ../
yum -y install gcc-c++
wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.39.tar.bz2
tar xjf pcre-8.39.tar.bz2
cd pcre-8.39/
./configure --prefix=/usr/local/pcre
make && make install
cd ../
備註:不安裝gcc-c++的話會報錯。app
yum -y install perl
wget http://apache.fayea.com/httpd/httpd-2.4.23.tar.bz2
tar xjf httpd-2.4.23.tar.bz2
cd httpd-2.4.23/
./configure --prefix=/usr/local/httpd --with-pcre=/usr/local/pcre
make && make install
cd ../
備註:不安裝perl的話,安裝mod_wsgi時會報錯。
在/etc/profile文件末尾添加如下內容:
export PATH=/usr/local/httpd/bin:$PATH
而後使配置文件生效:
. /etc/profile
wget https://pypi.python.org/packages/28/a7/de0dd1f4fae5b2ace921042071ae8563ce47dac475b332e288bc1d773e8d/mod_wsgi-4.5.7.tar.gz
tar xzf mod_wsgi-4.5.7.tar.gz
cd mod_wsgi-4.5.7/
./configure --with-apxs=/usr/local/httpd/bin/apxs --with-python=/usr/local/python/bin/python
make && make install
chmod 755 /usr/local/httpd/modules/mod_wsgi.so
cd ../
wget https://pypi.python.org/packages/8a/09/46f790104abca7eb93786139d3adde9366b1afd59a77b583a1f310dc8cbd/Django-1.10.2-py2.py3-none-any.whl
pip install Django-1.10.2-py2.py3-none-any.whl
yum -y install mysql-devel
pip install MySQL-python
備註:由於個人Django程序用的是MySQL數據庫,因此我須要安裝這個包。
將你開發好的Django程序上傳到服務器,我這裏上傳到/wwwroot/目錄,下面這個樹形圖就是個人Django程序的結構:
這裏面有個文件特別關鍵,可否正常運行就看它了,它就是wsgi.py,下面是個人文件的內容,供讀者參考:
import sys sys.path.append('/wwwroot/OMMS') import os from django.core.wsgi import get_wsgi_application os.environ.setdefault("DJANGO_SETTINGS_MODULE", "OMMS.settings") application = get_wsgi_application()
注意:前兩句須要本身添加,若是沒有這兩句,你的程序就不能正常運行了,後面的是Django自動生成的。
編輯/usr/local/httpd/conf/httpd.conf文件,找到下面這句並取消註釋:
#Include conf/extra/httpd-vhosts.conf
在一堆以LoadModule開頭的段落下添加一行:
LoadModule wsgi_module modules/mod_wsgi.so
編輯/usr/local/httpd/conf/extra/httpd-vhosts.conf文件,將原來的配置所有註釋掉(已經註釋過的就不用再註釋了),而後在末尾添加如下內容:
<VirtualHost *:80>
DocumentRoot "/wwwroot/OMMS/OMMS"
WSGIScriptAlias / "/wwwroot/OMMS/OMMS/wsgi.py"
<Directory "/wwwroot/OMMS/OMMS">
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
注意:讀者請根據本身的程序修改其中的路徑。
經過如下命令啓動Apache服務:
apachectl start
最後,經過瀏覽器測試你的Django程序是否可以正常訪問吧!若是你是按照個人教程一步一步作的話,應該沒有問題,由於個人教程是基於最小化安裝的CentOS作的。