在centos环境下使用apache部署django项目

很早之前做了一个django项目,需要通过apache web服务部署起来,刚开始的时候走了一些弯路,后来把步骤记录下来,整理成笔记。方便以后查看。
项目是基于python3.4+django1.8开发的。apache用的是2.4版本的。

1. 安装编译安装python

一般情況下linux os有自帶的python,但版本較低,而項目使用的python版本為3.4.2,所以需要重新安裝新的版本。在python官網下載相應安裝包并放到server上。解壓安裝包,進行源碼編譯安裝。安裝路徑一般放在/usr/local/python34,路徑可自定義,但要記下來,這個過程中會用到安裝路徑。
注意:如果python安裝出錯有可能是系統缺少相關的依賴包。另外,因為是源碼編譯安裝所以SERVERS上需要編譯器gcc/c++,除非系統是特別定製安裝,一般情況下編譯器默認是已安裝的。有可能還需要這兩個依賴包(zlib-devel openssl-devel),必須先解決依賴包才能進行下面的步驟。
解压源码目录

tar –xzvf Python-3.4-2.tgz
cd Python-3.4.2
./configure --prefix=/usr/local/python34 --enable-shared --CFLAGS=-fPIC
./configure --prefix=/usr/local/python34 --enable-shared CFLAGS=-fPIC
make
make install

註釋:./configure prefix參數是指定安裝路徑,另兩個參數是使用動態共享庫
安裝完成后需要設置環境變量,vim /etc/profile
在文件最後添加以下兩行:

PYTHON_HOME=/usr/local/python34
export PATH=$PYTHON_HOME/bin:$PATH

然後保存

使環境變量立即生效 source /etc/profile
把python的lib路徑加入到系統lib路徑,否則輸入python命令時提示某些lib或so文件找不到,

vim /etc/ld.so.conf,添加以下兩行
/usr/local/python34/lib	#python lib的目錄
/usr/local/lib

#用戶默認安裝目錄,如沒有指定安裝路徑,則lib默認在/usr/local/lib

保存,執行命令/sbin/ldconfig

建立新的python軟連接(如果沒有這一步,輸入python命令打開的還是老版本python)

進入/usr/bin目錄,ls –l python*查看python執行路徑

apache如何搭建python网站_apache如何搭建python网站

將已存在的‘python’重命名,如python2.6.6,mv python python2.6.6,有些系統功能(腳本)可能要用到自帶的python,重命名python后,打開相應的腳本修改python路徑為/usr/bin/python2.6.6。

apache如何搭建python网站_django_02


執行命令ln –s /usr/local/python34/bin/python3.4 python,作用是建立一個類似快捷方式的鏈接。完成后輸入python命令就是新版本的python。

2.安装django

在python官網下載django1.8的安裝包,放到server上并解壓,進入解壓后的目錄,執行命令python setup.py install。待命令執行結束后,進入python命令行模式,import django

django.VERSION,這個過程中沒有出現error并看到了打印出來的django版本號說明安裝ok

apache如何搭建python网站_django_03


如果需要其它模塊,可使用類似的方法,如pymysql,….

3.安装apache2.4

apache2.2與apache2.4在安裝上有差異,apache2.2安裝步驟不適用2.4的版本

在安裝前先解決依賴包 apr apr-util pcre,否則不能正常安裝apache2.4。

apache如何搭建python网站_python_04

依賴包:
下載相應安裝包解壓,分別安裝到/usr/local/apr /usr/local/apr-util /usr/local/pcre,
安裝順序apr–>apr-utilpcre,

tar –xzvf apr-1.5.2.tar.gz
cd apr-1.5.2
./configure --prefix=/usr/local/apr
make && make install
---------------------------------
tar –xzvf apr-util-1.5.4.tar.gz
cd apr-util-1.5.4
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
make && make install
----------------------------------
unzip pcre-8.39.zip
cd pcre-8.39
./configure --prefix=/usr/local/pcre
make && make install

路徑要記下來。
httpd:
下載相應的httpd安裝包,如httpd-2.4.23.tar.gz,解壓
進入解壓后的目錄

./configure --prefix=/usr/local/apache24 --with-pcre=/usr/local/pcre --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util
make
make install

加入環境變量

apache如何搭建python网站_apache_05


提示:httpd安裝的時候可以指定多個參數,安裝其它模塊,實現其它功能,

–enable-module=so --enable-ssl 等

安裝后啟動httpd服務時出現apr相關的錯誤信息可能是apr,apr-util沒有安裝好。重新安裝并記住安裝的路徑。可以把apr和apr-util的源碼文件夾全部複製到httpd源碼目錄下srclib中,并分別命為apr和apr-util。重新configure。

./configure --with-pcre=/usr/local/pcre/bin/pcre-config --with-apr=/usr/local/apr/bin/apr-1-config --with-apr-util=/usr/local/apr-util --with-included-apr --prefix=/usr/local/apache24 --enable-module=so --enable-ss

完成後執行make && make install

4.安裝MOD_WSGI

四、在python官網下載mod_wsgi安裝包,如mod_wsgi-4.5.7.tar.gz

apache如何搭建python网站_django_06


進入解壓後的目錄

./configure --with-apxs=/usr/local/apache24/bin/apxs --with-python=/usr/local/python34/bin/python3.4
make
make install

apache如何搭建python网站_python_07


看到這樣的信息,說明安裝完成。

5.配置Apache

五、在/usr/local/apache24/conf/extra目錄下新建一個mod_wsgi.conf文件,寫一行

LoadModule wsgi_module modules/mod_wsgi.so,并保存。

apache如何搭建python网站_apache_08

在/usr/local/apache24/conf/extra目錄下新建一個httpd-vhosts.conf,如果已經存在,則不需要這一步。

修改VirtuaHost節點。

apache如何搭建python网站_python_09

在主配置文件httpd.conf裡面Include這兩個文件

vim /usr/local/apache24/conf/httpd.conf,添加以下兩行

apache如何搭建python网站_apache如何搭建python网站_10

啟動httpd服務
httpd –k start or httpd –k restart
如果沒有出現其它問題在瀏覽器中輸入url地址可以看到相關頁面,如果出錯 cat /usr/local/apache24/logs/error_log,查看error,針對性解決。访问的时候需要注意是否有开启防火强,或者打开具体访问的端口。如果是第一次运行,且项目中用到了session,则还要运行python manage.py初始化相关的session记录数据表,以免在存储session时报错。

其实还可以通过uwsgi+nginx来部署django服务。再加上docker,运行环境隔离,避免依赖包发生冲突。