2016-07-25 4 views
1

다른 컴퓨터에서 내 CherryPy 사이트에 액세스하고 싶습니다만 답변 양식 herehere을 사용해 보았지만 어느 것도 작동하지 않았습니다. 나는 OSX El Capitan, Python 3.5.2와 함께 Mac을 사용하고 있으며 CherryPy의 최신 버전이라고 믿습니다. 이것은 현재 코드입니다. 주소가 무엇인지 신경 쓰지 않고 그냥 작동합니다. 어떤 도움을 주셔서 감사합니다!Python 3 (CherryPy) 서버가 다른 컴퓨터에서 작동하지 않습니다.

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

# bind to all IPv4 interfaces 
cherrypy.config.update({'server.socket_host': '0.0.0.0'}) 
cherrypy.quickstart(HelloWorld()) 

편집 :

내가 localhost:8080127.0.0.10.0.0.0에서 사이트에 액세스 할 수 있습니다. 콘솔 출력은 다음과 같습니다.

[26/Jul/2016:19:10:26] ENGINE Listening for SIGTERM. 
[26/Jul/2016:19:10:26] ENGINE Listening for SIGHUP. 
[26/Jul/2016:19:10:26] ENGINE Listening for SIGUSR1. 
[26/Jul/2016:19:10:27] ENGINE Bus STARTING 

Warning (from warnings module): 
    File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/cherrypy/_cpchecker.py", line 105 
    warnings.warn(msg) 
UserWarning: The Application mounted at '' has an empty config. 
[26/Jul/2016:19:10:27] ENGINE Started monitor thread '_TimeoutMonitor'. 
[26/Jul/2016:19:10:27] ENGINE Started monitor thread 'Autoreloader'. 
[26/Jul/2016:19:10:27] ENGINE Serving on http://0.0.0.0:8080 
[26/Jul/2016:19:10:27] ENGINE Bus STARTED 

IDLE을 사용하여 파일을 실행하며 방화벽을 사용하지 않습니다.

+0

1) localhost에서 사용할 수 있습니까? 2) 실제로 일부 TCP 포트에 바인딩됩니까? 콘솔 출력은 무엇입니까? 3) Mac에 방화벽이 설정되어 있습니까? 4) 앱에 어떻게 액세스하려고합니까? – webKnjaZ

+0

다른 컴퓨터의 IP 주소를 제외하고 시도한 모든 것을 언급했습니다. –

+0

@webKnjaZ 질문에 답하기 위해 내 질문을 편집하려고했습니다. TCP 포트가 무엇인지, 또는 바인딩이 무엇인지 확실하지 않습니다. 설명 할 수 있습니까? – nedla2004

답변

1

해결책은 질문 아래의 주석에 언급되어 있습니다.이 답변은 단지이 질문을 대답으로 표시하기위한 것입니다.

해결책 : cherrypy가 실행중인 컴퓨터에서 cherrypy 응용 프로그램을 보려면 Unix/Linux의 경우 ifconfig 또는 Windows의 경우 ipconfig을 사용하십시오. 그런 다음이 IP 주소를 127.0.0.1 또는 0.0.0.0 대신 cherrypy config로 설정하십시오. 당신이 IP를 변경해야하는 경우

http://192.168.1.123:8080/ (또는 유사한) :

cherrypy.config.update({'server.socket_host': '192.168.1.123'}) 

은 당신이 동일한 네트워크에있는 한, 당신은 당신이 설정하는 IP/포트에서 응용 프로그램에 액세스 할 수 있어야합니다 포트를 사용하려면 다음을 사용하십시오.

cherrypy.config.update({ 
    'server.socket_host' : '127.0.0.1', 
    'server.socket_port' : 9090, 
})