2012-04-14 4 views
1

Flask가 결과가없는 몇 시간 동안 Webfaction 서버에서 작동하도록했습니다. Webfaction에 간단한 Flask 응용 프로그램을 배포 할 수 없습니다.

나는 내 index.py 파일이 htdocs를 아래에 저장이 http://flask.pocoo.org/snippets/65/

의 지침을 따랐다.

import sys 
yourappname = "/home/<myusername>/webapps/myapp/htdocs" 
if not yourappname in sys.path: 
    sys.path.insert(0, yourappname) 

from yourappname import app as application 

그런 다음 내 httpd.conf 파일이 추가되었습니다 :

WSGIPythonPath /home/yourusername/webapps/yourapp/htdocs/ 
#If you do not specify the following directive the app *will* work but you will 
#see index.py in the path of all URLs 
WSGIScriptAlias//home/yourusername/webapps/yourapp/htdocs/index.py 

<Directory /home/yourusername/webapps/yourapp/htdocs/> 
    AddHandler wsgi-script .py 
    RewriteEngine on 
    RewriteBase/
    WSGIScriptReloading On 
</Directory> 

그때 내가 index.py 옆에있는 같은 htdocs에 디렉토리에 myapp.py 있습니다

from flask import Flask 
app = Flask(__name__) 

@app.route('/') 
def hello_world(): 
    return 'Hello World!' 

if __name__ == '__main__': 
    app.run() 

내 도메인 webfaction 내 프로젝트를 가리 키도록했습니다. 기본 index.py는 지침에 명시된대로 새로운 항목으로 덮어 쓰기 전에 작동했습니다. 그러나, 나는 단지 서버 500을 얻는다. 나는 사과한다. 그러나 나는 리눅스와 관리 서버에 관한 완전한 noob이다. 내가 권한이 없다고 말하면 사용자의 오류 로그에 액세스 할 수도 없습니다.

나는 그것이 리눅스 서버에 플라스크를 설치 한 것과 관련이 있다고 생각한다. 쉬운 설치를 통해 설치했는데, 모든 의존성을 설치하고 오류를주지 않았다.

+1

을 실행하여 아파치 서버를 재시작 시도 되세요 임베디드 인터프리터 대신 mod_wsgi의 데몬 모드를 사용하는 것을 고려하십시오. 파이썬 코드를 문서 루트에 넣을 이유가 없습니다. – ThiefMaster

+0

감사합니다. mod_wsgi의 데몬 모드를 연구하겠습니다. 또한 파이썬 코드를 문서 루트 밖으로 옮깁니다. –

답변

1

제안의 몇 : 사방이 yourappname이

  1. 당신이 당신의 index.py에 MyApp를하지 말았어야?
  2. 또한, 나는 당신`에서 적절한 대체를 만들었다 고 가정하고 WSGIPythonPath/집/username이/웹 어플리케이션/yourapp/htdocs에
  3. 당신이 정말로 당신이해야 ~/webapps/<app_name>/apache2/bin/restart
관련 문제