我很難部署Bottle應用程序。我試着在過去的問題中使用一些建議的答案,但我似乎無法得到這個工作。我結束了500內部服務器錯誤在Ubuntu 16.04上使用Apache mod_wsgi部署Bottle.py應用程序
這是我的設置。
- 的Ubuntu 16.04
- 阿帕奇
- 中的libapache2-MOD-WSGI-PY 3
- 的Python 3.5
我.wsgi和app.py文件坐到:
/VAR/www/bottle_app/
- app.wsgi
- app.py
app.wsgi是如下
import os
# Change working directory so relative paths (and template lookup) work again
os.chdir(os.path.dirname(__file__))
import bottle
# ... build or import your bottle application here ...
import app
application = bottle.default_app()
app.py是如下
from bottle import route
@route('/')
def hello():
return 'Hello world'
阿帕奇.conf文件:
<VirtualHost *:80>
ServerName example.com
WSGIDaemonProcess bottle_app user=bottle group=www-data processes=1 threads=5
WSGIScriptAlias//var/www/bottle_app/app.wsgi
<Directory /var/www/bottle_app>
WSGIProcessGroup bottle_app
WSGIApplicationGroup %{GLOBAL}
Require all granted
</Directory>
當我運行python3 app.py,不會返回任何(我假設這是預期) 當我運行python3 app.wsgi我得到:
Traceback (most recent call last):
File "app.wsgi", line 3, in <module>
os.chdir(os.path.dirname(__file__))
FileNotFoundError: [Errno 2] No such file or directory: ''
我的Apache的錯誤日誌顯示以下錯誤。
Target WSGI script '/var/www/bottle_app/app.wsgi' cannot be loaded as Python module
Exception occurred processing WSGI script '/var/www/bottle_app/app.wsgi
Traceback (most recent call last):
File "/var/www/bottle_app/app.wsgi", line 7, in <module>
import app
ImportError: No module named 'app'
我在乾淨的Ubuntu安裝下使用sudo權限在用戶瓶下執行了此操作。這可能是我第10次使用來自具有類似問題的用戶的其他問題的不同建議進行重建。我試圖避免發佈一個看似重複的問題。任何幫助將不勝感激。
謝謝回覆。我做了你建議給我的app.wsgi的更改,現在當我運行python3 app.wsgi時,沒有任何返回,我假設現在所有的都是好的。儘管我的Apache日誌仍然顯示相同的錯誤。 – 404error
另一個帖子建議在路徑中明確包含你的app目錄:'sys.path.insert(0,'/ var/www/bottle_app')'[link](http://stackoverflow.com/questions/17678037/running- Apache的瓶蟒蛇)。儘管如此,我猜想整體配置還有其他問題。不應該需要這麼複雜。 – systemjack
'import sys sys.path.insert(0,'/ path/to/application/app/folder')'類似這樣的東西? – 404error