Buggfix Plus
Aktuellt datum och tid: 03.21 2019-12-16

Alla tidsangivelser är UTC + 1 timme




Svara på tråd  [ 5 inlägg ] 
Författare Meddelande
 Inläggsrubrik: Köra .py filer från nginx
InläggPostat: 12.54 2016-08-13 
EF Sponsor
Användarvisningsbild

Blev medlem: 15.29 2005-05-10
Inlägg: 38019
Ort: Söderköping
Har fått igång det mesta på Synologicen.
Webb server (nginx), Web Admin, MariaDB, phpMyAdmin.
Har Python 2.7 installerat.

Nu skulle jag vilja köra ett .py skript via en URL typ /server/dir/file.py.
Just nu får jag bara en "open/save" dialog. Servern hittar alltså filen
men den påbörjar en nerladdning istället för att skicka den till Python.

Jag har sett att för PHP så finns det en del i en .conf fil som ser ut som:
Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)
    location ~* \.php$ {
        fastcgi_pass unix:/run/php-fpm/php56-fpm.sock;
        include fastcgi.conf;
    }

Om jag skapar en enkel test.php så fungerar det OK och jag får
en sida med enbart "Hello World".
Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)
<html>
 <head>
  <title>PHP Test</title>
 </head>
 <body>
 <?php echo '<p>Hello World</p>'; ?>
 </body>
</html>

Har googlat som faan men inte hittat något motsvarande för att köra
ett Python skript. Alltså som "plain old" CGI. Jag vet att det finns modernare
och snabbare metoder som FCGI o.s.v., men vanlig CGI borde också fungera (?).

Jag har ett enkelt Python/CGI skript:
Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)
#!C:\Python27\python.exe -u
#!/usr/bin/env python

import cgi
import cgitb; cgitb.enable()  # for troubleshooting

print "Content-type: text/html"
print

print """
<html>
<head><title>Sample CGI Script</title></head>
<body>
 <h3> Sample CGI Script </h3>"""

form = cgi.FieldStorage()
message = form.getvalue("message", "(no message)")

print """
  <p>Previous message: %s</p>
  <p>form
  <form method="post" action="index.cgi">
    <p>message: <input type="text" name="message"/></p>
  </form>
</body>
</html>""" % cgi.escape(message)


Upp
 Profil  
 
InläggPostat: 13.39 2016-08-13 

Blev medlem: 08.17 2006-05-10
Inlägg: 722
Ort: Mölndal
Jag brukar köra python genom uwsgi i nginx.
Då pekar du en uri i nginx till en "app" som uwsgi sedan är ansvarig för att hålla vid liv.
http://uwsgi-docs.readthedocs.io/en/lat ... start.html

Sen kan jag rekomendera att använda ett framework om du skall bygga webtjänster i python.
http://bottlepy.org/docs/dev/index.html
http://flask.pocoo.org

Dessa går såklart att köra direkt på en port under utveckling och via proxy i nginx om det bara en enkel liten tjänst.

//Erik


Upp
 Profil  
 
InläggPostat: 15.09 2016-08-13 
EF Sponsor
Användarvisningsbild

Blev medlem: 15.29 2005-05-10
Inlägg: 38019
Ort: Söderköping
Jo, jag har sett UWSGI och liknande och jag vet att det finns olika
"frameworks", men det ska väl för 17 även fungera med vanlig CGI (?).


Upp
 Profil  
 
InläggPostat: 13.18 2016-08-14 

Blev medlem: 17.41 2008-02-10
Inlägg: 248
Ort: Taipei Taiwan
Nej, nginx stödjer inte "vanlig CGI" då det bedöms som ett utdött, långsamt och oeffektivt sätt att göra det. Du kan använda fastCGI, men det finns inte direkt nån anledning att då inte direkt gå på uwsgi.

Behövs inget stort framework för det, men ett mindre kan hjälpa att snabba upp utvecklingsprocessen.

-M


Upp
 Profil  
 
InläggPostat: 14.01 2016-08-14 
EF Sponsor
Användarvisningsbild

Blev medlem: 15.29 2005-05-10
Inlägg: 38019
Ort: Söderköping
OK. Jag går på uWSGI. Behöver läsa på lite. Jag har så här långt
inte hittat något om uWSGI som är specifikt för Synology.

Framework är väl mer för att utveckla Python programmen
som sådana, det får vi se hur vi gör. Det handlar till att börja
med om ganska enkla prylar så det går nog att "handjaga".
Det brukar även ge en bättre förståelse för grundtekniken.


Upp
 Profil  
 
Visa inlägg nyare än:  Sortera efter  
Svara på tråd  [ 5 inlägg ] 

Alla tidsangivelser är UTC + 1 timme


Vilka är online

Användare som besöker denna kategori: Inga registrerade användare och 1 gäst


Du kan inte skapa nya trådar i denna kategori
Du kan inte svara på trådar i denna kategori
Du kan inte redigera dina inlägg i denna kategori
Du kan inte ta bort dina inlägg i denna kategori
Du kan inte bifoga filer i denna kategori

Sök efter:
Hoppa till:  
   
Drivs av phpBB® Forum Software © phpBB Group
Swedish translation by Peetra & phpBB Sweden © 2006-2010