2015-02-05 2 views
-1

최근 오픈 쉬프트 장비에 문제가 있습니다. python 오류가 발생합니다. errno 13, Permission denied. 나는 여기에서 주위에 체크하고 같은 문제를 가진 대부분의 사람들이 app.run() 전에 if __name__ == "__main__": 진술을 잊어 버린 것을 발견했다. 그러나 나는 여전히 같은 문제가있다. openshift에 대한 로그에 따르면, 오류 python에 내장 된 socket.py에서 응원 것으로 보인다.Openshift python 장비가 설치되지 않을 것임

이것은 오픈 시프트의 두 번째 장비이며, 이것과 나의 첫 번째 것은 플라스크를 사용하여 만들어졌습니다. 첫 번째는 잘 작동하지만 내 두 번째 못해 작업이 ...

이 내가 openshift에서 파이썬 로그에 얻을 오류 메시지입니다 :

* Running on http://127.0.0.1:5000/ 
Traceback (most recent call last): 
File "app.py", line 24, in <module> 
app.run() 
File "/var/lib/openshift/54d242655973ca23980001d1/python/virtenv /lib/python2.7/site-packages/flask/app.py", line 772, in run 
run_simple(host, port, self, **options) 
File "/opt/rh/python27/root/usr/lib/python2.7/site-packages/werkzeug/serving.py", line 617, in run_simple 
inner() 
File "/opt/rh/python27/root/usr/lib/python2.7/site-packages/werkzeug/serving.py", line 599, in inner 
passthrough_errors, ssl_context).serve_forever() 
File "/opt/rh/python27/root/usr/lib/python2.7/site-packages/werkzeug/serving.py", line 408, in make_server 
passthrough_errors, ssl_context) 
File "/opt/rh/python27/root/usr/lib/python2.7/site-packages/werkzeug/serving.py", line 334, in __init__ 
HTTPServer.__init__(self, (host, int(port)), handler) 
File "/opt/rh/python27/root/usr/lib64/python2.7/SocketServer.py", line 419, in __init__ 
self.server_bind() 
File "/opt/rh/python27/root/usr/lib64/python2.7/BaseHTTPServer.py", line 108, in server_bind 
SocketServer.TCPServer.server_bind(self) 
File "/opt/rh/python27/root/usr/lib64/python2.7/SocketServer.py", line 430, in server_bind 
self.socket.bind(self.server_address) 
File "/opt/rh/python27/root/usr/lib64/python2.7/socket.py", line 224, in meth 
return getattr(self._sock,name)(*args) 
socket.error: [Errno 13] Permission denied 

편집 2 : 그래서 내가 변경된 OPENSHIFT_PYTHON_IP에 ip하지만 오류 로그는 똑같이 보입니다. 이것은 내 wsgi.py 코드입니다

#!/usr/bin/python 
import os 

virtenv = os.environ['OPENSHIFT_PYTHON_DIR'] + '/virtenv/' 
virtualenv = os.path.join(virtenv, 'bin/activate_this.py') 
try: 
    execfile(virtualenv, dict(__file__=virtualenv)) 
except IOError: 
    pass 

def run_gevent_server(app, ip, port=8080): 
    from gevent.pywsgi import WSGIServer 
    WSGIServer((ip, port), app).serve_forever() 

def run_simple_httpd_server(app, ip, port=8080): 
    from wsgiref.simple_server import make_server 
    make_server(ip, port, app).serve_forever() 

from server import app as application 

# 
# Below for testing only 
# 
if __name__ == '__main__': 
    ip = os.environ['OPENSHIFT_PYTHON_IP'] 
    port = 8080 
    zapp = impo.load_source('application', 'wsgi/application') 

    try: 
     run_gevent_server(application, ip, port) 
    except: 
     run_simple_httpd_server(zapp.application, ip, port) 
+0

앱을 실행하는 사용자는 포트에서 수신 대기 할 수있는 권한이 없습니다. openshift에서 사용하거나 연락 할 수있는 포트를 확인하십시오. stackoverflow에 대한 프로그래밍 질문이 아니라 서비스 제공 업체에 대한 헬프 데스크 질문입니다. –

+0

그래, 처음에는 Openshift 지원으로 돌아 섰지 만 그들은 전혀 도와주지 못했습니다 ... 그들은 단지 여기에 가서 질문을 올렸습니다. 그러나 감사합니다 :) – Andilutten

답변

0

어떤 포트/IP 주소를 사용하고 있습니까? openshift IP 주소의 8080 포트에 바인드해야하며 127.0.0.1에 바인드 할 수 없으므로 허용되지 않습니다.

+0

if __name__ == '__main__': ip = 'OPENSHIFT_INTERNAL_IP'] 포트 = 8080 ZAPP impo.load_source = ('애플리케이션', 'WSGI/응용') 시도 os.environ : \t run_gevent_server (애플리케이션, IP 포트)를 제외한 : \t run_simple_httpd_server (zapp.application, ip, port) – Andilutten

+0

성가신 ** 제대로 포맷 된,하지만 그건 내 진입 점 – Andilutten

+0

응용 프로그램에 SSH를 실행하고 "env | grep IP"를 실행, 나는 OPENSHIFT_INTERNAL_IP가 correc 있다고 생각하지 않습니다 더 이상. –

관련 문제