запуск Apache + бутылка + Python

Я пытаюсь бежать Bottle.py с Apache и mod_wsgi.

Я запускаю его в windows, используя xampp. в Python версии 2.7

моя конфигурация Apache в httpd:

<VirtualHost *>
    ServerName example.com
    WSGIScriptAlias / C:xampphtdocsGetXPathsProjectapp.wsgi
    <Directory C:xampphtdocsGetXPathsProject>
            Order deny,allow
            Allow from all
    </Directory>
</VirtualHost>

Мои приложения.код 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, вероятно, отсутствует что-то основное.

4 ответов


нет соединительной точки от вашего тут WSGI на hello.py


или комментарии Дуана были хорошей отправной точкой для меня, чтобы отделить приложение.wsgi и файл приложения python. Но они были немного загадочны, чтобы я мог понять. После возни в течение нескольких часов, вот что сработало для меня:
[кстати, я работаю над OSX. Пожалуйста отрегулируйте пути, потребителя, группу согласно вашему operating система]

/ библиотека / веб-сервер / документы / 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


Я не вижу вашего hello.py ссылки везде.

вы должны просто поместить содержимое hello.py (the route) в приложение.тут WSGI.


Я добавляю свой вывод для людей, у которых будет такая же проблема, как и у меня: например, преклонить колени перед Зодом и Роном.Ротман, мне пришлось написать свой код в файле WSGI, так как python запускает код оттуда, но если вы хотите получить свои собственные файлы py, вы должны импортировать их из файлов WSGI следующим образом:

from hello import application

"привет" - это имя файла python, а "приложение" - это то, что вы должны написать в файле py, а не в wsgi:

application = bottle.default_app()

также было перезапуск apache каждый раз, когда я делал изменения(и я не знал, что - вот почему это сделало меня сумасшедшим). tnx для парней, которые мне помогли. GooLuck.