在ubuntu服务器上进行文件写访问

时间:2015-07-12 00:50:50

标签: python ubuntu flask

我有这个简单的功能。

@app.route('/save')
def save():
    with open("hello.txt", 'w') as file:
        file.write("hello")
        file.close()
    return "done"

但是当我访问www.example.com/save路由时,服务器返回500内部服务器错误,并且不写入文件。我应该为驻留在Flask的{​​{1}}应用设置哪种权限,以便应用可以在目录中写入文件?

错误说明:/var/www/

1 个答案:

答案 0 :(得分:2)

您必须确保python进程用户(在本例中为Flask应用程序服务器)对您要保存文件的目录具有写访问权限。例如,如果要将文件保存到/ var / www目录中,请确保python进程用户具有正确的访问权限。

ls -al /var/www
sudo chown flask-user /var/www

此外,在Flask路径中,您应该指向保存目录位置,而不是将文件保存到进程工作目录中(这就是您的情况)。像这样的东西可以正常工作:

@app.route('/save')
def save():
    with open("/var/www/hello.txt", 'w') as file:
        file.write("hello")
        file.close()
    return "done"

注意:您应该选择一些其他目录,但/ var / www用于存储文件的位置。