Or *_*uan 10 python apache mod-wsgi bottle
我正在尝试使用Apache和mod_wsgi运行Bottle.py.
我在Windows上运行它,使用xampp.python v2.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>
Run Code Online (Sandbox Code Playgroud)
我的app.wsgi代码:
import os
os.chdir(os.path.dirname(__file__))
import bottle
application = bottle.default_app()
Run Code Online (Sandbox Code Playgroud)
我的hello.py:
from bottle import route
@route('/hello')
def hello():
return "Hello World!"
Run Code Online (Sandbox Code Playgroud)
当我去的时候,localhost/hello我收到404错误.我在Apache日志文件中没有任何其他错误,可能缺少基本的东西.
从wsgi文件到hello.py文件没有连接点.
将hello.py中的内容放入app.wsgi并重新启动Web服务器.
那应该可以解决问题.
要使您的应用程序模块化以便将代码放入各种文件中,请查看Bottle等效的Blueprints(Flask框架使用)
或者 Duan 的评论是我分离 app.wsgi 和应用程序 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()
Run Code Online (Sandbox Code Playgroud)
/Library/WebServer/Documents/hello_app/hello.py:
from bottle import route
@route('/hello')
def hello():
return "Hello World!"
Run Code Online (Sandbox Code Playgroud)
/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>
Run Code Online (Sandbox Code Playgroud)
不要忘记重新启动您的 apache 服务器。

| 归档时间: |
|
| 查看次数: |
8776 次 |
| 最近记录: |