LINUX.ORG.RU

Запуск python-скриптов на nginx

 ,


2

3

Подскажите как. Прочитал про uwsgi - сошел сума, что мне надо зачемто создавать юзера, зачемто держать в хомяке этого юзера .py файлы... Хочу простого, чтоб также как php - файл положил в вебрут, открыл браузером получил вывод. Есть способ простой?

зы. Нет, я не собираюсь запускать джанги, фласки и прочие, и также не хочу всё это ставить.

Ответ на: комментарий от MrClon

при чём тут джобс? я прошу объяснить мне что такое cgi? нет. я сообщил что непонимаю и нехочу понимать. пока нужда не заставит.

shashilx ★★
() автор топика
Ответ на: комментарий от i-rinat

Неистово лорчую. Гугл повадился выдавать мне ссылки на это непотребство вместо исходного стэковерфлоу

MrClon ★★★★★
()
Ответ на: комментарий от ggrn

почитай что такое nginx, после прочитай что такое python

отвечу тебе твоим же

пошел .....

shashilx ★★
() автор топика
Ответ на: комментарий от shashilx

Ну так для людей с таким подходом Jobs и существует. Технические разделы для тех кто хочется разобраться

MrClon ★★★★★
()
Ответ на: комментарий от shashilx

В список того с чем ты разбираться не хочешь входят технологии которые ты уже используешь и которые которые тебе придётся использовать для достижения поставленной цели. И судя по всему список того с чем ты хочешь разобраться — пустой, ты просто хочешь чтобы оно работало

MrClon ★★★★★
()
Ответ на: комментарий от MrClon

технологии которые ты уже используешь

я использую cgi? хм... наверное это лунатизм? потому что из того что я помню - нет, я их не использую и если могу избежать - избегаю. итак?

shashilx ★★
() автор топика
Ответ на: комментарий от MrClon

то, что он у меня работает так - это просто изза сраного nginx'a. в какойто момент мне захотелось попробовать nginx - попробовал, вроде ок. и оставил. снести его - снесу и не поморщусь.

shashilx ★★
() автор топика
Ответ на: комментарий от shashilx

Как «так»? Непонятным для тебя образом? Ну так снеси и поставь тот вебсервер который работает потому-что ты умеешь его настраивать, а не потому что ты скопипастил рабочий конфиг. Зачем насиловать себя?

MrClon ★★★★★
()
Ответ на: комментарий от MrClon

я умею настраивать и то и то. чтоб поднять php. но сейчас захотелось питонить, с минимальными телодвижениями и без ненужностей.

shashilx ★★
() автор топика
Ответ на: комментарий от shashilx

Можно и lighthttpd даже, если 0.2 сайта и домашний сервер. lighthttpd тоже cgi умеет.

Stanson ★★★★★
()
Ответ на: комментарий от MrClon

Гугл повадился выдавать мне ссылки на это непотребство вместо исходного стэковерфлоу

Гугли на английском. Поставь английский в настройках поиска языком по умолчанию.

EXL ★★★★★
()
Ответ на: комментарий от shashilx

я умею настраивать и то и то. чтоб поднять php

Это называется «умею копипастить команды из инструкции не понимая что делаю». То чего ты хочешь добиться работает так же как связка nginx+php-fpm (которая скорее всего работает у тебя сейчас). Но ты этого не понимаешь, потому что не понимаешь как твой сервер работает сейчас. И разбираться в этом ты не хочешь. Ты хочешь чтобы оно просто работало. Вот тебе короткая и простая инструкция как достичь желаемого: идёшь в Jobs, создаешь там тему в которой объясняешь чего хочешь, ждёшь когда тебе назовут цену

MrClon ★★★★★
()
Ответ на: комментарий от EXL

Так я и гуглю по английский. Но гугл ведь умный…

MrClon ★★★★★
()
Ответ на: комментарий от shashilx

Так может объяснишь мне чем связка nginx -> fastcgi-сервер -> .php принципиально отличается от nginx -> другой fastcgi-сервер -> .py?

MrClon ★★★★★
()
Ответ на: комментарий от MrClon

Так может объяснишь мне чем связка nginx -> fastcgi-сервер -> .php принципиально отличается от nginx -> другой fastcgi-сервер -> .py?

нафиг, нафиг. я всегото хотел такой же простой способ. я не хочу добавлять никаких юзеров (согласен на автомат, при установке из пакетов), не хочу объявлять каждый скрипт приложением, я хочу простоты. мне это нужно чтоб запустить для себя один скрипт и не ходить в консоль. но теперь то я вижу, что упорин за пределами пыхпыха злобный и ну его нафиг. перепишу на пыхпыхе и забудем.

shashilx ★★
() автор топика
Ответ на: комментарий от shashilx

Ты странный человек. Ты поставил и настроил php-fpm, но боишься поставить подобный fastcgi-сервер для Python. Я даже не знаю почему.

но теперь то я вижу, что упорин за пределами пыхпыха злобный и ну его нафиг. перепишу на пыхпыхе и забудем.

Верно. Оставайся дальше на PHP. У PHP-разработчиков всегда был особый склад ума, который запрещал им изучать и осваивать что-то новое. В чём-то PHP-программисты похожи на Delphi-программистов.

EXL ★★★★★
()
Ответ на: комментарий от EXL

Ты поставил и настроил php-fpm

Скорее всего он скопипастил пару команд и конфигов и инструкции. Дай ему такую же (не требующую понимания) инструкцию для какого-нибудь fcgiwrap, и он будет доволен

MrClon ★★★★★
()
Ответ на: комментарий от MrClon

не буду. я вижу в инструкции создание пользователя. объявление каждого приложения. нет, мне такое не походит.

shashilx ★★
() автор топика
Ответ на: комментарий от deadNightTiger

Тогда бы уж посоветовал Bottle.

Удобнейшая вещь:

$ pip install bottle

$ cat server.py 
from bottle import route, run

@route('/')
def index():
    return '<b>Hello World</b>!'

run(host='localhost', port=8080)

$ python server.py

<получаем то, что нужно на порту 8080 своего сервера>
EXL ★★★★★
()
Последнее исправление: EXL (всего исправлений: 3)
Ответ на: комментарий от shashilx

Я и говорю, нужен кто-то кто найдёт сервер приложений ведущий себя на манер php-fpm и напишет к нему инструкцию не требующую включения мозга (как та по которой ты настроил nginx+php-fpm) или настроит его за тебя. Мне не очень понятно зачем кому то заниматься этим бесплатно, но ЛОРчане (не смотря на все разговоры о запредельной токсичности) на самом деле на редкость добрые люди которые регулярно бесплатно помогают продолжать деградировать всяким калишкольникам и студентоте не способной сделать лабу по башу, может и тебе кто поможет

MrClon ★★★★★
()
Ответ на: комментарий от shashilx

я вижу в инструкции создание пользователя. объявление каждого приложения. нет, мне такое не походит.

Я для php-fpm тоже лезу в конфиги и настраиваю всякое:

user = nginx
group = nginx
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 35

Например по-умолчанию user/group в большинстве дистров заданы как apache. И что теперь?

EXL ★★★★★
()
Ответ на: комментарий от EXL

и я лез. но исправить на уже существующего юзера и добавить юзера - разные вещи. я не вижу нужным использовать сею инструкцию для себя, подожду когда будет так как надо. я не спешу.

shashilx ★★
() автор топика
Ответ на: комментарий от EXL

Например по-умолчанию user/group в большинстве дистров заданы как apache

Эт где такое? В deb-based вроде www-data везде

MrClon ★★★★★
()

Предлагаю автору установить его любимый Php и запускать через него py скрипты как shell_exec(«python script.py»)

Andreezy
()

А вообще как уже говорилось python это не Php. Поднимите простейший сервер на aiohttp и гоняйте через него свои скрипты

Andreezy
()
Ответ на: комментарий от shashilx

Да отовсюду. Взяли лодку и велосипед и делаете сани. Мало того еще и вредным путем. Нельзя подумать головой почему НИКТО не использует вызов скриптов по пути кроме как в PHP?

dem ★★
()
Ответ на: комментарий от dem

Чё он хочет, на питоне сделать можно. Я в мохнатые 2010 пускал так py по приколу в lighttpd - всё отлично работало. Щас писать этот конфиг для ТС здесь тупо влом, так как он хочет такую херню, которая нужна трём калекам в мире.

menangen ★★★★★
()
Ответ на: комментарий от menangen

Еще раз в общем случае нельзя (просто так). Я делал лаунчер который в браузере отображал форму (xml) далее запускал скрипт с выводом в файл и контролировал выполнение отображая страницу через reload.

Но делать запуск скрипта (любого) через http - получишь таймаут...

dem ★★
()
Ответ на: комментарий от dem

Пусть юзает Apache + mod_python и идёт отдыхать, расходимся.

menangen ★★★★★
()
Ответ на: комментарий от EXL

лол, при этом сам апач у них httpd. феерия дебилизма.

SevikL ★★★★★
()

Мне кажется для твоих целей тебе подойдёт Jupyter. По сути запускалка скриптов из веба.

kukuruku ★★
()
Ответ на: комментарий от anonymous

Анон ну хоть ты не шлангуй!

python -m SimpleHTTPServer 8000

ggrn ★★★★★
()
Ответ на: комментарий от shashilx

не хочу объявлять каждый скрипт приложением

Дык я ж тебе выше нарыл инСРУкцию по которой можно сразу задать целый каталог:

Example 1: Dumb CGI-enabled directory

[uwsgi]
plugins = cgi
socket = uwsgi.sock
cgi = /path/to/your/python-scripts

По сути получится аналог php-fpm для пистона.

P.S. Сам я не пробовал, ибо для простых вещей юзаю Apache с опциями «ExecCGI» и «AddHandler .py»

Novator ★★★★★
()
Последнее исправление: Novator (всего исправлений: 1)
Ответ на: комментарий от shashilx

я прошу объяснить мне что такое cgi? нет. я сообщил что непонимаю и нехочу понимать. пока нужда не заставит

Дык она тебя уже заставила - ты поднимаешь свой веб-сервер.

Женщины тоже когда за руль садятся хотят только на педальку жать, а под капот заглядывать не хотят - «пусть х-мрази в масле колупаются, а я прынцесса, мир должен упасть мине под ноги, миня нужно дабивацца».

На вот, будь мужыком, БLЕАTЬ:
https://ru.wikipedia.org/wiki/CGI
https://ru.wikipedia.org/wiki/FastCGI

Если коротко, то cgi - это когда программа выплёвывает вебню в консоль (точнее в pipe), а fcgi - это когда программа выплёвывает вебню в сокет (unix либо tcp).

Novator ★★★★★
()
Последнее исправление: Novator (всего исправлений: 1)
Ответ на: комментарий от Novator

это круто. теперь я знаю. только нахрена мне это знание? открывая эту тему я хотел такого же простого пути как для php. пути нет - закрывайте нахер эту тему. мне срать на всю эту писанину выше, там большинство из разряда - ой, неосилятор, ой копипастер тупой непонимайщий. по вышенаписанному могу сказать - гавно из вас телепаты, ой гавно. но 5% было угадано верно, да.

shashilx ★★
() автор топика
Ответ на: комментарий от shashilx

открывая эту тему я хотел такого же простого пути как для php.

Дык у php тоже нет простого пути - там такой FastCGI сервер (php-fpm) сбоку к энджинксу прикручивается, как и пистонов uwsgi.

пути нет - закрывайте нахер эту тему.

Путь такой же - я тебе выше расписал, и ссылки привел.

мне срать на всю эту писанину выше, там большинство из разряда - ой, неосилятор, ой копипастер тупой непонимайщий. по вышенаписанному могу сказать - гавно из вас телепаты

Да не переживай ты так, во-первых 95% публики (и здесь, и вообще везде) - это понтующиеся школьники и студенты-аналитики-абстракционисты, к-е просто кривляются, во-вторых, на лоре всегда модно было обсирать (на хабре любят корчить из себя интеллигентов, но нутро то же).

Если тебе тупо по делу надо задать вопрос и получить сухой ответ, то иди на toster.ru, но там нет фана как здесь :)

Novator ★★★★★
()
Ответ на: комментарий от shashilx

Вот попытка объяснить отличие пыха от пистона:
Web-разработка на Python глазами PHP-программиста.

Но на самом деле тебе не нужен ни nginx, ни uwsgi - тебе нужен bottle, он работает безо всяких веб-серверов.

#!/usr/bin/env python2
# -*- coding: utf-8 -*-

import os, sys, sqlite3, time, datetime, struct, hashlib, socket,  random, string, logging, math

from bottle import default_app, route, run, debug, template, request, static_file, redirect, response, abort, error

from fcgi import WSGIServer

if sys.version[0] == '2':
  reload(sys)
  sys.setdefaultencoding('utf-8')


app = default_app()

if __name__ == '__main__':
  app.run(host='localhost', port=8080, debug=True, reloader=True)  #запуск в виде HTTP-сервера
  #WSGIServer(app, bindAddress='/tmp/fcgi.sock').run()  #запуск в виде FastCGI-сервера на UNIX-сокете
  #app.run(server='flup', port=8080, host='127.0.0.1')  #запуск в виде FastCGI-сервера на TCP-сокете
  #app.run(server='cgi')  #запуск в виде CGI-скрипта

Боттл - самая простая и удобная пистон-приблуда, достаточно бросить 1 (один) файл bottle.py в каталог со скриптами и ты получаешь полноценную вебню во всех ипостасях.

Novator ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.