簡體   English   中英

Django部署:配置apache / mod_wsgi使用的正確python

[英]Django deployment: configuring correct python to be used by apache/mod_wsgi

我是新手使用基於Django的應用程序並嘗試使用以下配置部署django項目,這幾乎與django docs上給出的默認設置類似。

apache2.conf

# WSGI Configuration
WSGIDaemonProcess demo python-path=/home/inian/Documents/demo
WSGIProcessGroup demo

WSGIScriptAlias / /home/inian/Documents/demo/demo/wsgi.py process-group=demo

<Directory /home/inian/Documents/demo/demo>
<Files wsgi.py>
    Require all granted
</Files>
</Directory>

# Serving static files
Alias /static/ /home/inian/Documents/demo/static/

<Directory /home/inian/Documents/demo/static>
    Require all granted
</Directory>

當我啟動apache服務器時,它正常啟動但由於python版本不匹配,因此加載我的項目時出現運行時錯誤。

/var/log/apache2/error.log

[Sun Apr 10 20:38:16.165536 2016] [wsgi:warn] [pid 22959] mod_wsgi: Compiled for Python/2.7.11.
[Sun Apr 10 20:38:16.165551 2016] [wsgi:warn] [pid 22959] mod_wsgi: Runtime using Python/2.7.10.
[Sun Apr 10 20:38:16.166787 2016] [mpm_prefork:notice] [pid 22959] AH00163: Apache/2.4.7 (Ubuntu) OpenSSL/1.0.1f mod_wsgi/4.5.1 Python/2.7.10 configured -- resuming normal operations

我希望我的應用程序使用安裝在位置/usr/local的版本為2.7.11 ,這是我用來編譯和安裝mod_wsgi那個,但為了安全我還檢查了/usr/bin/python -V它提供輸出為Python 2.7.6 這可以用於兩個問題:

  1. 我怎樣才能指出apache從安裝位置/usr/local/bin/python使用Python 2.7.11(我一直使用它作為服務器上所有東西的默認設置)。

  2. 我不記得曾經安裝或使用2.7.10進行任何操作,因此我不知道apache如何以及從何處加載和使用它。 如果有人可以指導我,那么它也會很棒。

在針對特定Python安裝編譯mod_wsgi然后升級Python安裝的情況下,這是一條警告消息。 由於共享庫的工作方式,它通常不重要。 這記錄在:

在你的情況下,雖然問題是你的mod_wsgi沒有針對Python的安裝進行編譯,但它是在運行時找到Python共享庫。 這可能會導致各種問題,其中一個問題是兩個Python安裝沒有安裝兼容的編譯器標志集,例如Unicode字符寬度的問題。

基本上這個問題在我看來就像你從/ usr / local中的Python安裝源代碼編譯mod_wsgi,但是因為它的構建方式不正確,在運行時它會找到Python的共享庫版本安裝到/ usr。

有關如何在Linux系統上正確安裝Python的大討論,請閱讀:

接下來,當您從源代碼編譯mod_wsgi時,請確保將LD_RUN_PATH環境變量設置為包含用於安裝備用Python安裝的Python共享庫的庫目錄。 該環境變量將允許mod_wsgi在運行時找到正確的庫,而不使用/ usr / lib中的版本。

您可以按照以下文檔中的說明驗證是否找到了錯誤的/正確的:

最后,一旦安裝了mod_wsgi並找到了正確的共享庫,您可能還必須在Apache配置中設置WSGIPythonHome指令,以便為運行時文件找到正確的Python安裝。 這在以下文檔中描述:

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM