在Apache中配置Python运行时环境

今天费了很多时间配置Python在Apache中的运行时环境,主要是Flask无法连接SQLite数据,原因有2个:

  1. apache运行在www-data用户下,无法访问当前用户目录下的SQLite数据库文件,因为我把整个程序放在了当前登录用户的某个目录下以方便读写。首先需要设置db.sqlite文件为其他用户可读写chmod o+w db.sqlite。并且需要设置db.sqlite文件所在目录可读写,因为python连接SQLite数据需要获取锁权限(这个需要更多验证)。

  2. apache中运行的Python无法访问系统变量,在当前用户目录下设置.profile或者.bashrc不能被apache中的Python读取(因为是不同的用户)。但是在/etc/profile中的设置也无法被apache中的Python读取,重启apache也没有用。唯一正确的做法是在/etc/apache2/envvars中使用export FLASK_CONFIG=producton