2008-09-22 28 views
16

Estoy usando python y CherryPy para crear un sitio web interno simple que usan aproximadamente 2 personas. Utilizo el servidor web incorporado con CherryPy.quickstart y nunca me equivoqué con los archivos de configuración. Recientemente cambié las máquinas, así que instalé la última versión de Python y cherrypy, y cuando ejecuto el sitio, puedo acceder a él desde localhost: 8080 pero no a través de la IP o el nombre del equipo de Windows. Podría ser una diferencia de configuración de la máquina o una versión más nueva de CherryPy o Python. ¿Alguna idea de cómo puedo enlazar a la dirección IP correcta?¿Cómo configuro la dirección IP con CherryPy?

Editar: para que quede claro, actualmente no tengo ningún archivo de configuración.

Respuesta

15

Eso depende de cómo se ejecute el init de cherrypy.

Si se utiliza la sintaxis cherrypy 3.1, que Wold hacerlo:

cherrypy.server.socket_host = 'www.machinename.com' 
cherrypy.engine.start() 
cherrypy.engine.block() 

Por supuesto que puede tener algo más elegante, al igual que la subclasificación de la clase servidor, o el uso de los archivos de configuración. Esos usos están cubiertos en the documentation.

Pero eso debería ser suficiente. Si no nos dices lo que estás haciendo y la versión de cherrypy, editaré esta respuesta.

+1

solo necesitaba la primera línea antes de mi llamada a cherrypy.quickstart, gracias –

+0

el enlace está roto –

+0

en "using config files" - tenga en cuenta que 'cherrypy.quickstart (application(), config = configfile)' puede tomar un archivo de configuración opcional como segundo argumento (por ejemplo, en el tuto cherrypy rial es tutconf), que, por lo que yo sé, anulará el servidor cherrypy.server.socket_host establecido en el programa –

33
server.socket_host: '0.0.0.0' 

... también funcionaría. Eso es IPv4 INADDR_ANY, que significa, "escuchar en todas las interfaces".

En un archivo de configuración, la sintaxis es:

[global] 
server.socket_host: '0.0.0.0' 

En código:

cherrypy.server.socket_host = '0.0.0.0' 
+0

¿Dónde se escribe eso en el código? –

+0

Cualquiera. Editado el anterior para reflejar eso. – fumanchu

4
import cherrypy 

class HelloWorld(object): 
    def index(self): 
     return "Hello World!" 
    index.exposed = True 

cherrypy.server.socket_host = '0.0.0.0' # put it here 
cherrypy.quickstart(HelloWorld())