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

Drupal 10.4.3迁移服务器后无法写入styles文件夹求助

Drupal 10.4.3迁移后styles目录无法写入内容的排查方案

1. 检查服务器安全模块限制(SELinux/AppArmor)

很多时候目录权限一致但写入失败,是安全模块拦截了操作:

  • SELinux:
    • 执行getenforce查看状态,若为Enforcing,临时执行setenforce 0测试是否恢复正常。
    • 若测试有效,可执行restorecon -Rv /sites/default/files修复文件上下文,或修改SELinux规则设为Permissive。
  • AppArmor:
    • 执行aa-status查看是否有针对PHP/Imagemagick的限制规则,如有需调整对应配置文件。

2. 验证PHP运行用户与目录所有者匹配

迁移后服务器的PHP运行用户可能和原服务器不同:

  • 查看PHP运行用户:执行ps aux | grep php-fpm,或在phpinfo页面查看User/Group字段。
  • 确认/sites/default/files及styles子目录的所有者为该PHP用户,或目录权限设为775且PHP用户属于目录所属组。

3. 检查Drupal文件系统配置

  • 后台进入配置 > 媒体 > 文件系统,确认:
    • 公共文件系统路径为sites/default/files
    • 临时目录(如/tmp)权限正常且可写(图片处理需先写入临时目录再移动到styles)
  • 检查settings.php中$settings['file_public_path']的配置是否正确。

4. 手动测试写入与图片生成权限

  • 用PHP运行用户手动创建文件:sudo -u [PHP运行用户] touch /sites/default/files/styles/medium/test.txt,若无法创建则确认用户权限问题。
  • 直接测试Imagemagick命令:convert /sites/default/files/test.jpg /sites/default/files/styles/medium/test.jpg,排查工具本身的执行权限问题。

5. 检查目录特殊权限与磁盘状态

  • 查看目录权限:ls -ld /sites/default/files,确认无+t粘滞位等特殊限制导致的写入拦截。
  • 检查磁盘空间:df -h确认styles目录所在分区未被占满。

6. 清除Drupal缓存

执行drush cr或后台手动清除所有缓存,避免旧配置或路径缓存导致的异常。

7. 查看服务器错误日志

  • 检查Apache/Nginx的错误日志、PHP错误日志,日志中会记录具体的写入失败原因(如权限被拒、磁盘IO错误等)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 05:12:34