Виртуальный хост apache не работает в Windows при использовании apache + mod_wsgi + bottle - PullRequest
0 голосов
/ 27 сентября 2019

Попытка разместить мое приложение веб-службы, используя Apache + mod_wsgi + Bottle.Я настроил свою виртуальную машину для обслуживания своего веб-сервиса в соответствии с шагами, указанными ниже.Я настроил виртуальный хост в Apache.Но если не получается, пожалуйста, дайте мне знать, какую часть я пропускаю?

Я установил сервер Apache Lounge с https://www.apachelounge.com/download/, используя команду

cd C:\Apache24\bin
httpd.exe -k install

Вышеуказанные командыустановил службу windows на моем компьютере

Далее я добавил следующую конфигурацию mod_wsgi в файл httpd.conf внутри C:\Apache24\conf\httpd.conf

LoadFile "c:/users/appdata/local/continuum/anaconda3/python36.dll"
LoadModule wsgi_module "c:/users//appdata/local/continuum/anaconda3/lib/site-packages/mod_wsgi/server/mod_wsgi.cp36-win_amd64.pyd"
WSGIPythonHome "c:/users/appdata/local/continuum/anaconda3"

Также в httpd.conf я включил виртуальныйхосты, раскомментировав следующий код и изменив номер порта на 9091

# Virtual hosts
Include conf/extra/httpd-vhosts.conf

Далее я настроил виртуальный хост с конфигурацией, указанной ниже, с номером порта 9567

<VirtualHost *:9567>

    ServerName localhost

    WSGIScriptAlias / "D:/Projects/WS/WebService/app.wsgi"
    DocumentRoot "D:/Projects/WS/WebService"
    <Directory "D:/Projects/WS/WebService">

    </Directory>
    ErrorLog "D:/Projects/WS/WebService/Log/error.log"
    CustomLog "D:/Projects/WS/WebService/Log/access.log" common
</VirtualHost>

А теперьчтобы проверить, я пошел в командную строку и запустил httpd.exe из C:\Apache24\bin\httpd.exe (после команды ничего не отображается)

У меня есть проверка locolhost: 9091 ----> отображается сообщение о работе

И я хочу протестировать веб-сервис Итак, я создал файл

*D:\Projects\WS\WebService\hello_world.py*

from bottle import route, run

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

*D:\Projects\WS\WebService\app.wsgi*

import sys, os

# Change working directory so relative paths (and template lookup) work again
os.chdir(os.path.dirname(__file__))
sys.path.append(os.path.dirname(__file__))

# ... build or import your bottle application here ...
# Do NOT use bottle.run() with mod_wsgi

import bottle
from rs import app as application
from bottle import route
import hello_world
application=bottle.default_app()

Но теперь проблема, когда я пытаюсь localhost: 9567 / hello -------> Сайт не может бытьдостиг

ВТОРОЙПОПРОБУЙТЕ:

Я установил mod_wsgi с помощью pip, добавил конфигурацию mod_wsgi в httpd.conf и добавил следующий conf к C:\Apache24\conf\extra\httpd-vhosts.conf

ServerName localhost
WSGIDaemonProcess WebService user=www-data group=www-data processes=1 threads=5
WSGIScriptAlias / "D:/Projects/WS/decision-support/WebService/app.wsgi"
DocumentRoot ""D:/Projects/WS/decision-support/WebService"
<Directory "D:/Projects/WS/decision-support/WebService">
           WSGIProcessGroup WebService
           WSGIApplicationGroup %{GLOBAL}
           Order deny,allow
           Allow from all
</Directory>
ErrorLog "D:/Projects/WS/decision-support/WebService/Log/error.log"
CustomLog "D:/Projects/WS/decision-support/WebService/Log/access.log" common

И запустите httpd.exe для проверки конфигурации, ошибка выглядит следующим образом

AH00526: Syntax error on line 43 of C:/Apache24/conf/extra/httpd-vhosts.conf:
Invalid command 'WSGIDaemonProcess', perhaps misspelled or defined by a module not included in the server configuration

Может кто-нибудь помочь мне, что за конф, который я пропускаю?

...