2015-08-27 179 views
2

我在使用mod_wsgi在apache2上部署應用程序時出現問題。錯誤日誌和配置文件如下。我總是得到內部服務器錯誤。這與How to solve import errors while trying to deploy Flask using WSGI on Apache2非常相似,但由於某種原因,在那裏提出的解決方案在此不起作用。在apache2上使用wsgi部署Flask應用程序時出錯

Apache的錯誤日誌

[Thu Aug 27 12:06:30.366817 2015] [:error] [pid 9330:tid 140623686452992] [remote 2.239.9.178:64904] mod_wsgi (pid=9330): Target WSGI script '/var/www/bitcones/bitcones.wsgi' cannot be loaded as Python module. 
[Thu Aug 27 12:06:30.366867 2015] [:error] [pid 9330:tid 140623686452992] [remote 2.239.9.178:64904] mod_wsgi (pid=9330): Exception occurred processing WSGI script '/var/www/bitcones/bitcones.wsgi'. 
[Thu Aug 27 12:06:30.366894 2015] [:error] [pid 9330:tid 140623686452992] [remote 2.239.9.178:64904] Traceback (most recent call last): 
[Thu Aug 27 12:06:30.366913 2015] [:error] [pid 9330:tid 140623686452992] [remote 2.239.9.178:64904] File "/var/www/bitcones/bitcones.wsgi", line 4, in <module> 
[Thu Aug 27 12:06:30.366969 2015] [:error] [pid 9330:tid 140623686452992] [remote 2.239.9.178:64904]  from bitcones import bitcones as application 
[Thu Aug 27 12:06:30.366981 2015] [:error] [pid 9330:tid 140623686452992] [remote 2.239.9.178:64904] File "/var/www/bitcones/bitcones/bitcones.py", line 6, in <module> 
[Thu Aug 27 12:06:30.367045 2015] [:error] [pid 9330:tid 140623686452992] [remote 2.239.9.178:64904]  from analysis import cone as _cone, flow 
[Thu Aug 27 12:06:30.367056 2015] [:error] [pid 9330:tid 140623686452992] [remote 2.239.9.178:64904] File "/var/www/bitcones/bitcones/analysis/cone.py", line 5, in <module> 
[Thu Aug 27 12:06:30.367121 2015] [:error] [pid 9330:tid 140623686452992] [remote 2.239.9.178:64904]  from analysis.statistics import purity_statistics 
[Thu Aug 27 12:06:30.367139 2015] [:error] [pid 9330:tid 140623686452992] [remote 2.239.9.178:64904] ImportError: No module named analysis.statistics 

bitcones.wsgi

#!/usr/bin/python 
import sys 
sys.path.insert(0,"/var/www/bitcones") 
from bitcones import bitcones as application 

Apache虛擬主機文件

<VirtualHost *:80> 
    ServerName <my-server-name> 
    ServerAdmin <my-email> 
    WSGIDaemonProcess bitcones user=<my-username> group=<my-username> threads=5 
    WSGIScriptAlias//var/www/bitcones/bitcones.wsgi 

<Directory /var/www/bitcones> 
    WSGIProcessGroup bitcones 
    WSGIApplicationGroup %{GLOBAL} 
    Order deny,allow 
    Allow from all 
</Directory> 
我的應用程序樹

部分(一切都在/ var/WWW/bitco nes /)

├── bitcones 
│   ├── analysis 
│   │   ├── <some_files> 
│   │   └── statistics 
│ │   │   ├── <some_files> 
│   ├── bitcones.py 
│   ├── static 
│   │   ├── <some static content> 
│   └── templates 
│    └── <my_templates>.html 
└── bitcones.wsgi 

這應該足以找出爲什麼我有這個導入錯誤。 如果需要其他文件/配置,請詢問。我在想我。

謝謝!

編輯: 我只想補充一點,我在這個指南:http://flask.pocoo.org/docs/0.10/deploying/mod_wsgi/

+0

CGI腳本是否正確配置? – facundofarias

+0

據我所知,我沒有使用cgi,我使用的是mod_wsgi,它是wsgi的一個實現。現在,我的mod_wsgi腳本是否正確配置?我不知道...這是我的問題;) – valenz

+0

你期望使用什麼Python版本,以及mod_wsgi使用什麼?你不會在你的目錄中顯示任何''__init __。py''文件,這對於大多數Python版本是必需的,否則你的軟件包將無法工作。除此之外,可能是文件系統權限或SELinux限制。 –

回答

1

您設置mod_wsgi的使用,當你安裝中的libapache2-MOD-WSGI(蟒蛇2)或中的libapache2-MOD-WSGI的Python版本-py3(python 3)。我猜你是從你描述的Python 2開始的,因爲使用python 3比2更有意思。我不認爲這是你的問題。我認爲這是一個重要的問題,就像格雷厄姆所說的。

我建議使用from bitcones.analysis.statistics import purity_statistics作爲您的導入語句。

相關問題