2014-09-04 4 views
0

우분투에서 아파치에 플라스크 응용 프로그램을 실행하려고합니다. 나는 브라우저에서이 오류를 받고 있어요 : 로그 레벨이 디버그 있는데도아파치에 파이썬 플라스크 webapp 실행

Internal Server Error 

The server encountered an internal error and was unable to complete your request. Either the server is overloaded or there is an error in the application. 

아파치 로그는 오류를 표시하지 않습니다. 내 WSGI 파일은 다음과 같습니다 나는 또한 시도했다

import sys 
sys.path.insert(0, '/var/www/myflask/') 
from run import app as application 

:

from appimport app as application 

을 운이없이. 나는에 WSGI 파일 내용 변경하는 경우 :

def application(environ, start_response): 
    status = '200 OK' 
    output = 'Hello World!' 

    response_headers = [('Content-type', 'text/plain'), 
         ('Content-Length', str(len(output)))] 
    start_response(status, response_headers) 

    return [output] 

다음 작동합니다. 또한 파이썬 콘솔에서 내 wsgi의 3 행을 실행하면 예외가 발생하지 않습니다. 내가 잘 다음과 같이 그 자체가 독립 서버와 응용 프로그램을 실행할 수있는 run.py의 SCRPT 있습니다

├── app 
│   ├── db_access.py 
│   ├── db_access.pyc 
│   ├── __init__.py 
│   ├── __init__.pyc 
│   ├── static 
│   ├── templates 
│   │   └── index.html 
│   ├── views.py 
│   └── views.pyc 
├── __init__.py 
├── __init__.pyc 
├── myapp.wsgi 
├── requirements.txt 
├── run.py 
├── run.pyc 

어떤 아이디어가 어떻게 실행할 수 있도록 : 여기

from flask import Flask 
app = Flask(__name__) 
from app import app 
if __name__ == "__main__": 
    app.run(host='0.0.0.0', port=5000) 

는 파일 시스템입니다 아파치? 은 내가 이미 읽은 : 나는 그것이 작동 얻을 관리 http://flask.pocoo.org/docs/0.10/deploying/mod_wsgi/

http://fosshelp.blogspot.in/2014/03/how-to-deploy-flask-application-with.html

+1

필자는 "python app.py"와 다른 뭔가 필요한 경우 Python 스크립트를 실행하는 데 몇 가지 문제가있었습니다. 그런 다음 파이썬 소프트웨어가 어떻게 보이는지 알아 냈고 Machete (https://pypi.python.org/pypi/machete/)라는 도구를 만들었습니다. 비어있는 (그러나 실행 가능한) 플라스크 응용 프로그램을 만들어서 시도한 다음 Apache 구성과 통합하려고 시도 할 수 있습니다. 작동 할 수도 있습니다. 파이썬 소프트웨어 구조는 다소 까다 롭습니다. – Lovato

답변

0

. wsgi에서 run.py를 타겟팅하는 대신 경로 태그가있는 views.py를 대상으로했습니다. 또 다른 문제는 내 sqlite 데이터베이스가 응용 프로그램을 실패하게하는 적절한 권한이 없지만 오류가 발생하지 않는다는 것입니다. /etc/apache2/sites-available/mydomain.com 의 상단에

WSGIRestrictStdout Off 

내 WSGI에

sys.stdout = sys.stderr 

를 추가하고 예외를 추가 : 오류를 보려면, 나는 추가했다 python print 명령으로 처리합니다.

+0

stdout으로해야한다면 mod_wsgi의 고대 버전을 사용하고 있습니다. 당신은 정말로 업그레이드해야합니다. http://blog.dscpl.com.au/2009/04/wsgi-and-printing-to-standard-output.html 및 http://blog.dscpl.com.au/2014/09/debugging-with를 참조하십시오. -pdb-when-using-modwsgi.html –

관련 문제