2017-06-25 3 views
0

私はapache2とwsgiを使ってUbuntuサーバーを設定しようとしていますが、私は500の内部エラーを受け取ります。 WSGIは "client_secrets.json"というファイルを見つけることができません。WSGIは同じディレクトリにあるファイルを見つけることができません

のApp構造

/var/www/FlaskApp/ 
    flaskapp.wsgi 
    - FlaskApp 
     - static 
     // All js, css, imgs and fonts 
     - templates 
     // All templates in here 
     __init__.py 
     client_secrets.json 
     database_setup.py 
     starter_content.py 

のinitの.py

app = Flask(__name__) 

CLIENT_ID = json.loads(
    open('client_secrets.json', 'r').read())['web']['client_id'] 
APPLICATION_NAME = "Catalog App" 

if __name__ == '__main__': 
    app.secret_key = 'super_secret_key' 
    app.debug = True 
    app.run(host='0.0.0.0', port=5000) 

flaskapp.wsgi:

#!/usr/bin/python 
import sys 
import logging 
logging.basicConfig(stream=sys.stderr) 
sys.path.insert(0,"/var/www/FlaskApp/") 

from FlaskApp import app as application 
application.secret_key = 'MY_SECRET_KEY' 

/etc/apache2/sites-available/FlaskApp.conf:

<VirtualHost *:80> 
    ServerName SERVER_IP 
    ServerAdmin [email protected] 
    WSGIScriptAlias//var/www/FlaskApp/flaskapp.wsgi 
    <Directory /var/www/FlaskApp/FlaskApp/> 
     Order allow,deny 
     Allow from all 
    </Directory> 
    Alias /static /var/www/FlaskApp/FlaskApp/static 
    <Directory /var/www/FlaskApp/FlaskApp/static/> 
     Order allow,deny 
     Allow from all 
    </Directory> 
    ErrorLog ${APACHE_LOG_DIR}/error.log 
    LogLevel warn 
    CustomLog ${APACHE_LOG_DIR}/access.log combined 
</VirtualHost> 

は、tail -f /var/log/apache2/error.log: error.png

+0

なぜ同じディレクトリ内にあると思われますか? –

+0

私はapacheやwsgiを使ったことが一度もありません。私はアプリケーションの流れを知らず、何がどこを指しているのか混乱しています。このアプリケーションはvmでlocalhost上で動作するサーバー上で機能するアプリケーションでしたが、Apacheサーバーに切り替えようとしています –

答えて

0

あなたはjsonファイルの正しいパスを提供する必要が、あなたはopen_resourceで試すことができます。

with app.open_resource('client_secrets.json') as f:  
    CLIENT_ID = json.load(f)['web']['client_id'] 

または直接に

import os 
PROJECT_ROOT = os.path.realpath(os.path.dirname(__file__)) 
json_url = os.path.join(PROJECT_ROOT, 'client_secrets.json') 
CLIENT_ID = json.load(open(json_url))['web']['client_id'] 
+0

アプリケーションの作業ディレクトリの内容と絶対的な構造を必要とする問題の詳細については、mod_wsgiのドキュメントを参照してくださいパス名。 http://modwsgi.readthedocs.io/ja/develop/user-guides/application-issues.html#application-working-directory –

関連する問題