selfoss 在 phpenv 下无法稳定运行,因其依赖 sqlite 写入、定时任务及 apache 重写规则,而 phpenv 缺乏 mysql 服务、无 cron 支持、apache 配置封闭且默认禁用 path_info,同时 data/ 目录无写权限,导致数据库打开失败、路由 404 及功能失效。

phpEnv 下 selfoss 启动就报 SQLSTATE[HY000]: General error: 14 unable to open database file
这是最常见现象,本质是 phpEnv 的 Apache 进程(通常以 SYSTEM 或当前 Windows 用户身份运行)对 data/sqlite 路径没有写权限。即使你手动 chmod(Windows 下无效),也无法绕过 Windows UAC 和 phpEnv 自带的 Apache 封装逻辑。
- Selfoss 必须能创建并写入
data/sqlite/selfoss.db,而 phpEnv 默认把整个站点根目录设为只读或受限 - 你改了
config.ini中的db_type = sqlite和db_file = data/sqlite/selfoss.db,但路径解析仍会失败——因为 phpEnv 的DocumentRoot和实际文件系统路径映射混乱 - 尝试用
sqlite3命令行手动建库?phpEnv 根本没集成sqlite3.exe,也找不到可调用的 CLI 环境
想用 php -S 内置服务器跑 Selfoss?PHP Warning: Unknown: failed to open stream: No such file or directory
Selfoss 严重依赖 Apache/Nginx 的重写规则(尤其是 /update、/login 等路由),而 PHP 内置服务器不解析 .htaccess,也不支持 mod_rewrite。即使你加了路由器脚本,index.php 会反复 404 或跳转丢失。
- 官方要求 Web 服务器必须支持 PATH_INFO 或
AcceptPathInfo On,phpEnv 的 Apache 默认关闭该选项,且配置文件被封装在 exe 内部不可编辑 -
php -S localhost:8000 router.php方式只能跑极简 demo,Selfoss 的登录态、AJAX 刷新、OPML 导入等全部失效
有没有折中办法?有,但只适用于临时查看,不能当 RSS 阅读器用
如果你只是想快速看一眼 Selfoss 界面长什么样,可以跳过数据库和定时更新,强制进入「只读演示模式」:
- 下载
selfoss-2.18.zip,解压到 phpEnv 的www/目录下(如C:\phpEnv\www\selfoss\) - 编辑
config.ini,把db_type = sqlite改成db_type = none(Selfoss 会降级为内存模式,刷新即丢数据) - 注释掉所有
update相关配置,包括cron_update和auto_update - 访问
http://localhost/selfoss/—— 你能看到 UI,能添加 RSS 地址,但关掉浏览器就清空,无法登录、无法收藏、无法离线
真正能用的替代方案,其实就两个
别在 phpEnv 上硬刚 Selfoss。Windows 下想搭 RSS 阅读器,直接选更适配的路径:
-
Docker Desktop + Selfoss 镜像:比 phpEnv 更轻,启动命令就一行:
docker run -d -p 8888:8888 -v %cd%/data:/selfoss/data rsprta/selfoss,SQLite 自动初始化,定时更新走容器内 cron,权限干净 -
FreshRSS + XAMPP(非 phpEnv):FreshRSS 对 Windows 友好得多,XAMPP 允许你手动开
mod_rewrite、改httpd.conf、给data/目录加写权限,且自带 MariaDB,比 SQLite 更稳
phpEnv 的定位是「跑个 phpinfo() 和简单表单」,不是生产级 PHP 应用容器。Selfoss 的 SQLite 依赖、文件锁机制、后台更新模型,和 phpEnv 的设计目标根本不在一个维度上。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











