鍍金池/ 問(wèn)答/Python  Linux/ apache+flask上傳文件提示服務(wù)器錯(cuò)誤

apache+flask上傳文件提示服務(wù)器錯(cuò)誤

在ubuntu上部署了apache+flask創(chuàng)建的web應(yīng)用上傳文件時(shí)總報(bào)錯(cuò),更改了很多次路徑仍然無(wú)法解決,登錄頁(yè)面和其他都是正常的,個(gè)人感覺(jué)是上傳的目錄的問(wèn)題,但是改了很多次仍無(wú)法解決,奇怪的是在我的win10系統(tǒng)上測(cè)試的上傳目錄是static/,這樣是沒(méi)問(wèn)題的,但是部署到服務(wù)器上就出問(wèn)題了。

目錄結(jié)構(gòu)

.
├── app
│?? ├── __init__.py
│?? ├── static
│?? ├── templates
│?? └── venv
└── flaskapp.wsgi
import os
from flask import Flask
from flask import render_template
from flask import request

UPLOAD_FOLDER = '/var/www/cardShow/app/static'

app = Flask(__name__)
app.config['UPLOAD_FOLDER'] = UPLOAD_FOLDER
app.debug = True

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

@app.route('/login', methods=['GET'])
def login_form():
    return render_template('login.html')

@app.route('/login', methods=['POST'])
def login():
    if request.form['username'] == 'username' and request.form['password'] == 'password':
        return render_template('upload.html')
    return 'you\'re not admin'

@app.route('/upload', methods=['POST'])
def upload():
    f = request.files['picture']
    f.save(os.path.join(app.config['UPLOAD_FOLDER'], f.filename))
    return 'sucessfully upload!'

@app.route('/card/<name>')
def card(name):
    return render_template('index.html', name=name)

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

錯(cuò)誤提示信息

[Wed Mar 21 13:07:29.758365 2018] [mpm_prefork:notice] [pid 8121] AH00169: caught SIGTERM, shutting down
[Wed Mar 21 13:07:30.844091 2018] [wsgi:warn] [pid 13152] mod_wsgi: Compiled for Python/2.7.11.
[Wed Mar 21 13:07:30.844131 2018] [wsgi:warn] [pid 13152] mod_wsgi: Runtime using Python/2.7.12.
[Wed Mar 21 13:07:30.846226 2018] [mpm_prefork:notice] [pid 13152] AH00163: Apache/2.4.18 (Ubuntu) mod_wsgi/4.3.0 Python/2.7.12 configured -- resuming normal operations
[Wed Mar 21 13:07:30.846250 2018] [core:notice] [pid 13152] AH00094: Command line: '/usr/sbin/apache2'
[Wed Mar 21 13:07:47.520318 2018] [wsgi:error] [pid 13157] [client 218.17.207.25:62899] mod_wsgi (pid=13157): Exception occurred processing WSGI script '/var/www/cardShow/$
[Wed Mar 21 13:07:47.520382 2018] [wsgi:error] [pid 13157] [client 218.17.207.25:62899] Traceback (most recent call last):, referer: http://d.imurob.cn/login
[Wed Mar 21 13:07:47.520406 2018] [wsgi:error] [pid 13157] [client 218.17.207.25:62899]   File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1997, in __call_$
[Wed Mar 21 13:07:47.520846 2018] [wsgi:error] [pid 13157] [client 218.17.207.25:62899]     return self.wsgi_app(environ, start_response), referer: http://d.imurob.cn/login
[Wed Mar 21 13:07:47.520859 2018] [wsgi:error] [pid 13157] [client 218.17.207.25:62899]   File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1985, in wsgi_ap$
[Wed Mar 21 13:07:47.520875 2018] [wsgi:error] [pid 13157] [client 218.17.207.25:62899]     response = self.handle_exception(e), referer: http://d.imurob.cn/login
[Wed Mar 21 13:07:47.520882 2018] [wsgi:error] [pid 13157] [client 218.17.207.25:62899]   File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1540, in handle_$
[Wed Mar 21 13:07:47.520893 2018] [wsgi:error] [pid 13157] [client 218.17.207.25:62899]     reraise(exc_type, exc_value, tb), referer: http://d.imurob.cn/login
[Wed Mar 21 13:07:47.520899 2018] [wsgi:error] [pid 13157] [client 218.17.207.25:62899]   File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1982, in wsgi_ap$
[Wed Mar 21 13:07:47.520909 2018] [wsgi:error] [pid 13157] [client 218.17.207.25:62899]     response = self.full_dispatch_request(), referer: http://d.imurob.cn/login
[Wed Mar 21 13:07:47.520916 2018] [wsgi:error] [pid 13157] [client 218.17.207.25:62899]   File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1614, in full_di$
[Wed Mar 21 13:07:47.520925 2018] [wsgi:error] [pid 13157] [client 218.17.207.25:62899]     rv = self.handle_user_exception(e), referer: http://d.imurob.cn/login
[Wed Mar 21 13:07:47.520931 2018] [wsgi:error] [pid 13157] [client 218.17.207.25:62899]   File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1517, in handle_$
[Wed Mar 21 13:07:47.520941 2018] [wsgi:error] [pid 13157] [client 218.17.207.25:62899]     reraise(exc_type, exc_value, tb), referer: http://d.imurob.cn/login
[Wed Mar 21 13:07:47.520947 2018] [wsgi:error] [pid 13157] [client 218.17.207.25:62899]   File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1612, in full_di$
[Wed Mar 21 13:07:47.520957 2018] [wsgi:error] [pid 13157] [client 218.17.207.25:62899]     rv = self.dispatch_request(), referer: http://d.imurob.cn/login
[Wed Mar 21 13:07:47.520963 2018] [wsgi:error] [pid 13157] [client 218.17.207.25:62899]   File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1598, in dispatc$
[Wed Mar 21 13:07:47.520985 2018] [wsgi:error] [pid 13157] [client 218.17.207.25:62899]     return self.view_functions[rule.endpoint](**req.view_args), referer: http://d.i$
[Wed Mar 21 13:07:47.520992 2018] [wsgi:error] [pid 13157] [client 218.17.207.25:62899]   File "/var/www/cardShow/app/__init__.py", line 29, in upload, referer: http://d.i$
[Wed Mar 21 13:07:47.521024 2018] [wsgi:error] [pid 13157] [client 218.17.207.25:62899]     f.save(os.path.join(app.config['UPLOAD_FOLDER'], f.filename)), referer: http://$
[Wed Mar 21 13:07:47.521034 2018] [wsgi:error] [pid 13157] [client 218.17.207.25:62899]   File "/usr/local/lib/python2.7/dist-packages/werkzeug/datastructures.py", line 27$
[Wed Mar 21 13:07:47.521509 2018] [wsgi:error] [pid 13157] [client 218.17.207.25:62899]     dst = open(dst, 'wb'), referer: http://d.imurob.cn/login
[Wed Mar 21 13:07:47.521533 2018] [wsgi:error] [pid 13157] [client 218.17.207.25:62899] IOError: [Errno 13] Permission denied: u'/var/www/cardShow/app/static/cx01.jpg', re$
回答
編輯回答
扯機(jī)薄

建議把
UPLOAD_FOLDER = '/var/www/cardShow/app/static'
改成
UPLOAD_FOLDER = '/var/www/cardShow/app/static/'

2018年8月26日 03:33
編輯回答
乖乖噠

簡(jiǎn)單粗暴點(diǎn),
chmod 777 /var/www/cardShow/app/static/
如果是這個(gè)原因,再根據(jù)情況修改權(quán)限

2017年4月29日 21:41