我尝试使用apache2和wsgi设置Ubuntu服务器,但是我收到500内部错误。 WSGI无法找到文件" client_secrets.json"。
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
初始化的.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@email.com
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>
答案 0 :(得分:1)
您必须提供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']