OpenSUSE中重启php-fpm服务报配置文件Permission denied错误
OpenSUSE下php-fpm启动报配置文件权限拒绝的原因与解决方法
问题原因
从报错信息可以确认,目标路径下的配置文件已经存在,不存在路径错误导致的找不到文件问题。报错中的Permission denied (13)是Linux文件系统的标准权限拒绝返回码,本质是php-fpm服务进程没有权限读取生成的/etc/php8/fpm/php-fpm.conf配置文件,触发逻辑通常来自复制配置文件的操作不规范:
- 若使用普通用户身份执行复制操作,无法直接在系统目录
/etc下创建文件,要么操作失败生成位置错误的配置文件,要么生成的文件权限、属主完全不符合服务运行要求 - 即使用root身份完成了复制,若文件权限被设置为仅所有者可读(比如权限位
600),php-fpm默认以专用低权限系统用户(OpenSUSE中通常为wwwrun)身份运行,就无法读取到仅root有权访问的配置文件,最终导致初始化失败。
解决操作步骤
- 第一步,核对当前配置文件与同目录默认配置文件的属主、权限差异,执行命令查看:
ls -l /etc/php8/fpm/php-fpm.conf /etc/php8/fpm/php-fpm.conf.default
正常状态下两个文件的属主应为root:root,权限位为644(所有者可读写,其余用户可读)。 - 第二步,若发现配置文件权限或属主异常,对齐默认配置的权限规则,执行命令修正:
sudo chown root:root /etc/php8/fpm/php-fpm.confsudo chmod 644 /etc/php8/fpm/php-fpm.conf - 第三步,确认php-fpm服务的运行身份,查看服务单元配置:
systemctl cat php-fpm.service
定位配置中User=、Group=字段对应的运行用户,确认该用户对/etc/php8/fpm/目录有遍历(x)权限,对目标配置文件有读(r)权限。 - 第四步,完成权限修正后,重启服务验证:
sudo systemctl restart php-fpm.service
内容的提问来源于stack exchange,提问作者samulus
相关产品推荐
相关产品推荐

