部署瓶子.pyUbuntu 16.04上的Apache mod_wsgi应用程序

2024-05-12 01:08:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我很难部署瓶子应用程序。在过去的问题中,我试过使用一些建议的答案,但我似乎无法使其发挥作用。最后我发现了500个内部服务器错误

这是我的安排。在

  • Ubuntu 16.04
  • 阿帕奇
  • libapache2-mod-wsgi-py3
  • Python 3.5

我的.wsgi和应用程序副本文件位置:

/var/www/bottle_应用程序/

  • 在应用程序.wsgi在
  • 在应用程序副本在

在应用程序.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()

在应用程序副本具体如下:

^{pr2}$

Apache.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号的时候应用程序副本,没有返回任何内容(我假设这是预期的) 当我跑Python3号的时候应用程序.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次使用来自有类似问题的用户的其他问题的不同建议进行重建。我尽量避免发表一个看起来像是重复的问题。任何帮助都将不胜感激。在


Tags: importapp应用程序wsgi瓶子bottleosvar
1条回答
网友
1楼 · 发布于 2024-05-12 01:08:36

在中导入应用程序模块之前应用程序.wsgi文件,请尝试:

import sys
sys.path.insert(0, '/var/www/bottle_app')

更简洁的方法可能是使用Apache配置中的WSGIDaemonProcess项的homepython path参数。在

^{pr2}$

_uu文件不是绝对的,因此如果您需要获取它的位置以实现这种目的(在这种情况下,像Apache这样的控制进程可能会对路径执行有趣的操作),请尝试:

os.chdir(os.path.dirname(os.path.abspath(__file__)))

相关问题 更多 >