Sto cercando di creare un sito Web con Web.py ma non mi permette di aprire un socket sulla porta 80 ma funziona su ogni altra porta.Perché Web.py non consente di eseguire un server sulla porta 80?
Ho la porta inoltrata e tutto il resto non è questo il problema.
python main.py 80
ma quando faccio questo ottengo l'errore:
http://0.0.0.0:80/
Traceback (most recent call last):
File "main.py", line 43, in <module>
app.run()
File "/usr/local/lib/python2.7/dist-packages/web/application.py", line 311, in run
return wsgi.runwsgi(self.wsgifunc(*middleware))
File "/usr/local/lib/python2.7/dist-packages/web/wsgi.py", line 54, in runwsgi
return httpserver.runsimple(func, validip(listget(sys.argv, 1, '')))
File "/usr/local/lib/python2.7/dist-packages/web/httpserver.py", line 148, in runsimple
server.start()
File "/usr/local/lib/python2.7/dist-packages/web/wsgiserver/__init__.py", line 1753, in start
raise socket.error(msg)
socket.error: No socket could be created
mio codice finora è:
import MySQLdb
import web
import hashlib as h
urls = (
'/', "index", "/register/?", "register", "/login/?", "login", "/thankyou/?", "thankyou"
)
app = web.application(urls, globals())
render = web.template.render("templates/")
db = web.database (dbn="mysql", user="root", pw="461408", db="realmd")
class index():
def GET(self):
return render.index()
class register():
def GET(self):
return render.register()
def POST(self):
i = web.input()
user = h.sha1(i.username).hexdigest()
pw = h.sha1(i.password).hexdigest()
n = db.insert("account", username=user, password=pw)
if __name__ == '__main__':
app.run()
Can
qualcuno aiuto per favore?
Hai un altro servizio in ascolto sulla porta 80? Come l'apache? – Will
"... funziona su ogni altra porta." Veramente? –
Hai provato la porta 81? Forse un errore di permessi. Su Linux (almeno), devi essere root per ascoltare su una porta bassa come quella. (Credo). –