0
Flask 응용 프로그램의 데이터베이스 작동을 시도하는 데 막대한 어려움을 겪고 있습니다. Flask의 샘플 튜토리얼을 따르고 Amazon EC2 인스턴스를 통해 Apache 서버에 내 사이트를 배포하고 있습니다. 사이트에 액세스하는 데 어려움이 없지만 데이터베이스에 게시하려고 할 때마다 500 내부 서버 오류가 발생합니다. 하는 error.log를 점검 보여줍니다 Flask : OperationalError : 데이터베이스 파일을 열 수 없습니다.
[Wed Sep 13 19:37:47.713249 2017] [wsgi:error] [pid 27587] [client 209.54.86.83:50492] [2017-09-13 19:37:47,712] ERROR in app: Exception on /add [POST], referer: http://www.zachflask.tk/
[Wed Sep 13 19:37:47.713291 2017] [wsgi:error] [pid 27587] [client 209.54.86.83:50492] Traceback (most recent call last):, referer: http://www.zachflask.tk/
[Wed Sep 13 19:37:47.713294 2017] [wsgi:error] [pid 27587] [client 209.54.86.83:50492] File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1982, in wsgi_app, referer: http://www.zachflask.tk/
[Wed Sep 13 19:37:47.713296 2017] [wsgi:error] [pid 27587] [client 209.54.86.83:50492] response = self.full_dispatch_request(), referer: http://www.zachflask.tk/
[Wed Sep 13 19:37:47.713299 2017] [wsgi:error] [pid 27587] [client 209.54.86.83:50492] File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1614, in full_dispatch_request, referer: http://www.zachflask.tk/
[Wed Sep 13 19:37:47.713301 2017] [wsgi:error] [pid 27587] [client 209.54.86.83:50492] rv = self.handle_user_exception(e), referer: http://www.zachflask.tk/
[Wed Sep 13 19:37:47.713304 2017] [wsgi:error] [pid 27587] [client 209.54.86.83:50492] File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1517, in handle_user_exception, referer: http://www.zachflask.tk/
[Wed Sep 13 19:37:47.713306 2017] [wsgi:error] [pid 27587] [client 209.54.86.83:50492] reraise(exc_type, exc_value, tb), referer: http://www.zachflask.tk/
[Wed Sep 13 19:37:47.713308 2017] [wsgi:error] [pid 27587] [client 209.54.86.83:50492] File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1612, in full_dispatch_request, referer: http://www.zachflask.tk/
[Wed Sep 13 19:37:47.713310 2017] [wsgi:error] [pid 27587] [client 209.54.86.83:50492] rv = self.dispatch_request(), referer: http://www.zachflask.tk/
[Wed Sep 13 19:37:47.713312 2017] [wsgi:error] [pid 27587] [client 209.54.86.83:50492] File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1598, in dispatch_request, referer: http://www.zachflask.tk/
[Wed Sep 13 19:37:47.713314 2017] [wsgi:error] [pid 27587] [client 209.54.86.83:50492] return self.view_functions[rule.endpoint](**req.view_args), referer: http://www.zachflask.tk/
[Wed Sep 13 19:37:47.713330 2017] [wsgi:error] [pid 27587] [client 209.54.86.83:50492] File "/var/www/FlaskApp/FlaskApp/FlaskApp.py", line 76, in add_entry, referer: http://www.zachflask.tk/
[Wed Sep 13 19:37:47.713333 2017] [wsgi:error] [pid 27587] [client 209.54.86.83:50492] [request.form['title'], request.form['text']]), referer: http://www.zachflask.tk/
[Wed Sep 13 19:37:47.713334 2017] [wsgi:error] [pid 27587] [client 209.54.86.83:50492] OperationalError: unable to open database file, referer: http://www.zachflask.tk/
나는이 내 파일의 권한으로 할 수있는 뭔가가있을 수 있습니다 생각했지만
chmod 777 FlaskApp.db
어떤 결과없이.
[email protected]:/var/www/FlaskApp/FlaskApp$ ls -la
total 44
drwxr-xr-x 5 zld6fd zld6fd 4096 Sep 13 19:45 .
drwxr-xr-x 6 zld6fd zld6fd 4096 Sep 13 19:37 ..
-rwxrwxrwx 1 zld6fd zld6fd 3072 Sep 13 19:18 FlaskApp.db
-rw-rw-r-- 1 zld6fd zld6fd 3194 Sep 13 19:16 FlaskApp.py
-rw-rw-r-- 1 zld6fd zld6fd 3943 Sep 13 19:16 FlaskApp.pyc
-rw-r--r-- 1 zld6fd zld6fd 26 Sep 12 20:39 __init__.py
-rw-r--r-- 1 zld6fd zld6fd 177 Sep 12 21:25 __init__.pyc
-rwxrwxrwx 1 zld6fd zld6fd 145 Sep 12 21:33 schema.sql
drwxr-xr-x 5 zld6fd zld6fd 4096 Sep 12 22:14 static
drwxr-xr-x 2 zld6fd zld6fd 4096 Sep 13 00:34 templates
drwxr-xr-x 7 zld6fd zld6fd 4096 Sep 11 23:32 venv
내 FlaskApp.py 파일에는 다음이 포함
# Import statements
import os
import sqlite3
from flask import Flask, request, session, g, redirect, url_for, abort, \
render_template, flash
# Application Instance
app = Flask(__name__) # Create the instance
app.config.from_object(__name__) # Load config from this file
# Load default config and override config from an environment variable
app.config.update(dict(
DATABASE='/var/www/FlaskApp/FlaskApp/FlaskApp.db',
SECRET_KEY='development key',
USERNAME='admin',
PASSWORD='password'
))
을 그리고 내 아파치의 conf 파일은 다음과 같습니다
<VirtualHost *:80>
ServerName zachflask.tk
ServerAdmin [email protected]
WSGIDaemonProcess FlaskApp user=zld6fd group=zld6fd threads=5
WSGIScriptAlias//var/www/FlaskApp/flaskapp.wsgi
<Directory /var/www/FlaskApp/FlaskApp>
WSGIProcessGroup FlaskApp
WSGIApplicationGroup %{GLOBAL}
Require all granted
</Directory>
Alias /static /var/www/FlaskApp/FlaskApp/static
<Directory /var/www/FlaskApp/FlaskApp/static/>
Require all granted
</Directory>
ErrorLog /var/www/FlaskApp/logs/error.log
LogLevel warn
CustomLog /var/www/FlaskApp/logs/access.log combined
</VirtualHost>
어떤 도움을 주시면 감사하겠습니다.
아파치 외부에서 독립 실행 형으로 작동합니까? 모든 플라스크 디버깅/예외보고 기능을 켰습니까? – pvg
@pvg 예, 응용 프로그램은 localhost에서 완벽하게 실행됩니다. 플라스크 실행을하기 전에 FLASK_DEBUG = True로 설정합니다. –
은 '로컬 호스트'에서 동일한 컴퓨터/환경/앱입니까? – pvg