一、问题现象
今天在部署 PHP + SQLite的项目时,代码在本地运行正常,但部署到 Linux 服务器后报错,无法注册登录,显示网络连接失败。控制台报:500错误。
还以为php环境有问题,看了下插件在,sqllite文件夹权限也是755 。
二、根本原因
data/ 目录属主是 root,权限 755
但 PHP-FPM 运行用户是 root(诊断显示),但实际写入时报 unable to open database file
还是文件权限不足。 是文件属主/权限问题:
还是文件权限不足。 是文件属主/权限问题:
data/ 目录属主是 root,权限 755
但 PHP-FPM 运行用户是 root(诊断显示),但实际写入时报 unable to open database file
SAPI 是 fpm-fcgi,说明是 Nginx + php-fpm
这是典型的宝塔/1Panel 环境问题:虽然显示属主是 root,但 php-fpm 实际以 www 或其他低权限用户运行,无法在 root 属主的目录里写文件。
三、解决方案
> 💡 如何确认 PHP 运行用户?
> 如果不确定用户是 www 还是 www-data,可以运行以下命令查看第一列的用户名:
>
> bash > ps aux | grep php-fpm >
找到归属后,然后手动调整文件夹的归属用户组和用户即可。
不要使用 777 权限:chmod 777 虽然能解决问题,但会让所有用户都能修改你的文件,存在严重安全隐患。