运行Apache+Bottle+Python

2024-04-20 05:38:54 发布

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

我正试着用Apache和mod_wsgi运行Bottle.py。

我在windows上运行它,使用xampp。python 2.7版

我在httpd中的Apache配置:

<VirtualHost *>
    ServerName example.com
    WSGIScriptAlias / C:\xampp\htdocs\GetXPathsProject\app.wsgi
    <Directory C:\xampp\htdocs\GetXPathsProject>
            Order deny,allow
            Allow from all
    </Directory>
</VirtualHost>

我的app.wsgi代码:

import os
os.chdir(os.path.dirname(__file__))
import bottle
application = bottle.default_app()

我的hello.py:

from bottle import route
@route('/hello')
def hello():
    return "Hello World!"

当我转到localhost/hello时,我得到一个404错误。 我在Apache日志文件中没有任何其他错误,可能缺少一些基本的错误。


Tags: frompyimportappwsgibottlehelloos
3条回答

我在任何地方都看不到你的hello.py。

您应该将hello.py(theroute)的内容放入app.wsgi。

或者,Duan的评论是我将app.wsgi和application python文件分开的一个很好的起点。但它们对我来说有点神秘。在混了几个小时后,以下是我的工作:
顺便说一下,我在做OSX。请根据您的操作系统调整路径、用户、组

/Library/WebServer/Documents/hello_app/app.wsgi:

import sys

sys.path.insert(0, "/Library/WebServer/Documents/hello_app")

import bottle
import hello
application = bottle.default_app()

/Library/WebServer/Documents/hello_app/hello.py:

from bottle import route

@route('/hello')
def hello():
    return "Hello World!"

/etc/apache2/extra/httpd vhosts.conf:

<VirtualHost *:80>
    ServerName xyz.com

    WSGIDaemonProcess hello_app user=_www group=_www processes=1 threads=5
    WSGIScriptAlias /v1 /Library/WebServer/Documents/hello_app/app.wsgi

    <Directory /Library/WebServer/Documents/hello_app>
        WSGIProcessGroup hello_app
        WSGIApplicationGroup %{GLOBAL}
        Order deny,allow
        Allow from all
    </Directory>
</VirtualHost>

不要忘记重新启动apache服务器。

Check the app in the web browser

从wsgi文件到hello.py文件没有连接点。
hello.py中的内容放入app.wsgi并重新启动web服务器。
这应该能解决问题。

要使您的应用程序模块化,以便您可以将代码放入各种文件中,请查看瓶子的等效蓝图(由Flask framework使用)

相关问题 更多 >