WordPress更新插件时触发chmod()无对应文件目录警告报错
WordPress插件更新chmod()找不到文件异常修复
报错信息
执行插件更新操作时流程无法推进,页面抛出警告:
Warning: chmod(): No such file or directory in /www/wwwroot//wp-includes/plugin.php(493) : runtime-created function on line 1
核心诱因
- 路径配置异常:报错路径中
/www/wwwroot//存在双斜杠,说明WordPress读取的站点根目录路径末尾携带多余斜杠,拼接插件文件、临时文件路径时生成非法路径,导致chmod执行时找不到目标资源 - 目录权限错误:Web运行进程对站点目录、插件目录、系统临时目录无读写权限,插件更新包无法正常解压落盘,后续权限修改步骤无对应文件可操作
- 临时目录失效:PHP配置的临时上传目录不存在、不可写,或WordPress更新临时目录被删除,更新包下载后无法正常存储
- 自定义逻辑拦截:安全插件、主题自定义代码中挂载的文件系统钩子逻辑异常,在文件写入完成前就提前触发chmod权限修改操作
修复步骤
按优先级依次排查操作:
- 修正路径配置
- 打开站点根目录下
wp-config.php文件,检查WP_HOME、WP_SITEURL常量配置,确认路径末尾无多余斜杠;如果没有手动配置这两个常量,到WordPress后台「设置-常规」里检查站点地址、WordPress地址配置,移除末尾多余斜杠 - 如果使用面板部署站点,检查面板中站点根目录的绑定路径是否存在双斜杠、多余字符,修正后重载PHP服务
- 打开站点根目录下
- 校准目录权限
以Linux环境下常见的www为Web运行用户为例,执行以下命令调整权限:- 修正站点目录属主:
chown -R www:www /www/wwwroot/你的站点实际目录名 - 统一设置目录权限为755、文件权限为644:
find /www/wwwroot/你的站点实际目录名 -type d -exec chmod 755 {} \; find /www/wwwroot/你的站点实际目录名 -type f -exec chmod 644 {} \;- 单独确认
wp-content/plugins、wp-content/upgrade目录可被Web进程写入
- 修正站点目录属主:
- 修复临时目录配置
- 打开PHP对应版本的
php.ini配置文件,检查upload_tmp_dir、sys_temp_dir配置项,确认指定的目录真实存在,且属主为Web运行用户、具备读写权限 - 若无法修改系统级临时目录配置,可在
wp-config.php中手动指定WordPress专属临时目录,添加配置行:define('WP_TEMP_DIR', ABSPATH . 'wp-content/temp');,之后在wp-content目录下手动新建temp文件夹,配置好对应读写权限
- 打开PHP对应版本的
- 排查异常拦截逻辑
- 临时禁用所有安全防护、文件管理类插件,重试插件更新操作,定位是否为插件逻辑导致的提前触发chmod问题
- 检查当前启用主题的
functions.php文件、自定义功能插件中是否存在挂载到文件系统相关钩子的自定义权限修改代码,移除逻辑异常的代码段
内容的提问来源于stack exchange,提问作者liuqasd
相关产品推荐
相关产品推荐

