@dronmaxman
VoIP Administrator

Как запустить скрипт на python по URL?

Есть скрипт написаный на python3. Устройство делает http запрос вида 10.0.0.1/search.action (на устройстве запрос настроить нельзя).

На сервере стоит apache и лежит скрипт search.py в DocumentRoot.
DocumentRoot /var/www
<Directory "/var/www">
                Options +ExecCGI
                AddHandler cgi-script .py
        </Directory>

При выполнении запроса в браузере вида 10.0.0.1/search.py скрипт отрабатывает и возвращает данные.

Как настроить apache что бы при запросе 10.0.0.1/search.action отрабатывал скрипт search.py?
  • Вопрос задан
  • 2304 просмотра
Решения вопроса 2
dimonchik2013
@dimonchik2013
non progredi est regredi
trapwalker
@trapwalker Куратор тега Python
Программист, энтузиаст
Не очень хорошая идея запускать питоновский скрипт через CGI. При этом каждый раз запускается заново интерпретатор и такое решение не будет быстрым и эффективным.
Вы могли бы воспользоваться каким-то микрофреймворком вроде flask или bottle, тогда питон будет запущен постоянно, фреймворк будет обрабатывать http запросы на своём порту, а апач вам нужно настроить так, чтобы он проксировал порт питоновского сервиса.

Ещё можно покопаться в описании конфигурации апача и прописать там алиас урла, но это уже костыль, а раз уж вы взялись за костыли, то попробуйте просто переименовать свой скрипт `search.py` в `search.action`, а внутри первой строчкой пропишите шебанг вида: `#!/usr/bin/python3`
Должно помочь. Я уже давно не пользуюсь апачем и не уверен, что он не смотрит по расширению чем запускать тот или иной срипт. В любом случае прописать правило по аналогии с тем, что там есть в конфиге по поводу `.py` скриптов будет не сложно. Пробуйте.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы