You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何永久修改/run/php目录的归属权限?

如何永久修改/run/php目录的归属权限?

我之前也碰到过一模一样的问题,折腾了好一会儿才搞明白——/run是个临时文件系统(tmpfs),每次服务器重启都会重新创建这个目录,所以手动用chown设置的权限根本留不住。下面给你两个亲测有效的解决办法:

方法一:修改PHP-FPM的systemd服务配置(推荐)

这个方法直接和PHP-FPM的服务生命周期绑定,是最贴合场景的方案:

  • 先把默认的服务文件复制到自定义目录(避免系统更新时被覆盖):
    sudo cp /lib/systemd/system/php8.2-fpm.service /etc/systemd/system/
    
  • 编辑这个自定义服务文件:
    sudo nano /etc/systemd/system/php8.2-fpm.service
    
  • 找到[Service]段落,在RuntimeDirectory=php这一行下面,添加两行配置(把你的新用户名和你的新用户组换成你实际的用户信息):
    RuntimeDirectoryMode=0755
    RuntimeDirectoryOwner=你的新用户名:你的新用户组
    
    举个例子,如果你的用户和组都是myappuser,就写RuntimeDirectoryOwner=myappuser:myappuser
  • 重新加载systemd的配置,让修改生效:
    sudo systemctl daemon-reload
    
  • 最后重启PHP-FPM服务:
    sudo systemctl restart php8.2-fpm
    
    下次重启服务器后,/run/php的归属就会自动设置成你的指定用户了。

方法二:用tmpfiles.d配置全局临时目录规则

如果方法一不适用,也可以通过系统的tmpfiles机制来管理:

  • 创建一个自定义的tmpfiles配置文件:
    sudo nano /etc/tmpfiles.d/php.conf
    
  • 在文件里添加一行规则(同样替换成你的用户和组):
    d /run/php 0755 你的新用户名 你的新用户组 -
    
  • 先手动测试一下配置是否生效:
    sudo systemd-tmpfiles --create /etc/tmpfiles.d/php.conf
    
    这样重启服务器后,系统会自动按照这个规则设置/run/php的权限。

额外提醒:别忘了确保你的新PHP用户拥有网站根目录、日志目录等相关路径的访问权限,避免出现其他运行时权限问题。

备注:内容来源于stack exchange,提问作者Henning Haugen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.21 11:48:00