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

Plesk环境下PrestaShop 1.7文件权限异常(666/777)及umask问题求助

解决PrestaShop 1.7在Plesk Onyx CentOS7上的权限异常问题

这种权限自动变为666/777的情况确实存在不小的安全风险,我帮你梳理下问题根源和可落地的解决步骤:

问题根源拆解

通常是两个层面的配置叠加导致的:

  1. PHP-FPM进程的默认umask设置过松,没有限制其他用户的写权限
  2. PrestaShop应用本身在生成缓存、模块文件时,可能默认使用了宽松的权限掩码

下面是分步解决方案:

1. 调整PHP-FPM的umask配置

PHP-FPM的进程权限直接决定了它生成文件的权限,我们需要强制它使用严格的掩码:

  • 登录服务器SSH,切换到root用户
  • 找到对应域名的PHP-FPM配置文件,路径一般是:/var/www/vhosts/system/[你的域名]/conf/php-fpm.conf
  • 在文件末尾添加一行:
    umask = 0022
    
    这个掩码会让生成的文件默认是644,文件夹默认755(逻辑是666-022=644,777-022=755)
  • 重启对应版本的PHP-FPM服务,比如你的是PHP7,执行:
    systemctl restart php7.4-fpm
    
    (如果是其他PHP7子版本,替换成php7.3-fpm等即可)

2. 覆盖PrestaShop的默认umask设置

有些时候PrestaShop的核心代码会主动设置宽松的umask,我们需要在应用层面强制修正:

  • 进入PrestaShop的根目录,打开config/config.inc.php文件
  • 在<?php之后、其他代码之前添加一行:
    umask(0022);
    
    这会确保应用在执行任何文件操作前,都使用严格的权限掩码

3. 修复已存在的危险权限文件

已经生成的666/777权限文件需要批量修正,消除安全隐患:

  • 在PrestaShop根目录执行以下命令:
    # 批量设置所有文件为644
    find . -type f -exec chmod 644 {} \;
    # 批量设置所有文件夹为755
    find . -type d -exec chmod 755 {} \;
    # 修正文件所属用户和组(替换[你的域名用户]为Plesk里的独立用户名,组固定为psacln)
    chown -R [你的域名用户]:psacln .
    

4. 验证Plesk面板的权限配置

最后确认Plesk的主机设置没有拖后腿:

  • 登录Plesk面板,进入对应域名的「主机设置」
  • 找到「文件权限」区域,确认「默认文件权限」是644,「默认目录权限」是755
  • 检查「PHP处理程序」是否设置为PHP-FPM,且运行用户是域名对应的独立用户(不要用apache或nginx的系统用户)

验证效果

完成以上步骤后,你可以尝试在后台添加一个新模块,或者清空缓存重新生成,然后检查新生成的文件/文件夹权限,应该已经稳定在644/755了。

内容的提问来源于stack exchange,提问作者gennaris

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 09:23:48