如何指定Flask Session的服务端会话文件存储路径
你之前使用的两个配置项作用均不匹配需求:
SESSION_COOKIE_PATH用于控制客户端Cookie生效的URL路径,和服务端会话文件存储位置无关APPLICATION_ROOT用于配置应用的根URL路径,也不负责设置会话存储路径
当使用Flask-Session的文件系统存储模式时,需要通过SESSION_FILE_DIR配置项指定服务端会话文件的存储目录,完整配置步骤如下:
步骤1:创建目标存储目录并配置读写权限
首先确认/var/www/webApp/webApp/cookies/目录存在,且Apache运行用户(默认是www-data)拥有读写权限,执行以下命令配置:
sudo mkdir -p /var/www/webApp/webApp/cookies sudo chown www-data:www-data /var/www/webApp/webApp/cookies sudo chmod 750 /var/www/webApp/webApp/cookies
步骤2:修改Flask应用配置
替换你之前的错误配置项,调整为以下内容:
# 显式指定会话存储方式为文件系统(默认值也是filesystem,显式配置更稳妥) app.config["SESSION_TYPE"] = "filesystem" # 配置服务端会话文件的存储路径 app.config["SESSION_FILE_DIR"] = "/var/www/webApp/webApp/cookies/" # 其余你原本的会话相关配置保留即可,比如SESSION_PERMANENT、SESSION_COOKIE_NAME等 # 配置完成后再初始化Session对象 Session(app)
步骤3:重启Apache服务生效
sudo systemctl restart apache2
配置完成后新生成的会话文件就会存储到你指定的目录下。
内容的提问来源于stack exchange,提问作者levraininjaneer
相关产品推荐
相关产品推荐

