WSL2本地Ubuntu环境下WordPress安装插件报错求助
WSL2 Ubuntu环境下WordPress插件安装语法错误问题
错误详情
安装插件时触发语法错误,报错信息:
Parse error: syntax error, unexpected '$file' (T_VARIABLE), expecting function (T_FUNCTION) or const (T_CONST) in /mnt/c/projects/wordpress/wp-admin/includes/class-wp-filesystem-direct.php line 177
对应第177行代码:
$file = trailingslashit( $file );
相关函数代码
出错的chmod函数完整代码如下:
/** * Changes filesystem permissions. * * @since 2.5.0 * * @param string $file Path to the file. * @param int|false $mode Optional. The permissions as octal number, usually 0644 for files, * 0755 for directories. Default false. * @param bool $recursive Optional. If set to true, changes file permissions recursively. * Default false. * @return bool True on success, false on failure. */ public function chmod( $file, $mode = false, $recursive = false ) { if ( ! $mode ) { if ( $this->is_file( $file ) ) { $mode = FS_CHMOD_FILE; } elseif ( $this->is_dir( $file ) ) { $mode = FS_CHMOD_DIR; } else { return false; } } // if ( ! $recursive || ! $this->is_dir( $file ) ) { // return chmod( $file, $mode ); } // Is a directory, and we want recursive. $file = trailingslashit( $file ); $filelist = $this->dirlist( $file ); foreach ( (array) $filelist as $filename => $filemeta ) { $this->chmod( $file . $filename, $mode, $recursive ); } return true; }
已尝试的解决方法
- 修改Apache的php.ini及WordPress配置中的
max_execution_time限制 - 设置
define('fs_method', 'direct') - 调整文件夹所有者:执行命令
sudo umount /mnt/c && sudo mount -t drvfs C: /mnt/c -o metadata后修改所有者 - 配置文件夹权限:创建
/etc/wsl.conf文件并设置权限为文件夹775、文件644,配置内容:[automount] enabled=true options="metadata" mountFsTab = false
当前临时解决方式
仅通过注释以下代码段才能成功安装插件:
/* // Is a directory, and we want recursive. $file = trailingslashit( $file ); $filelist = $this->dirlist( $file ); foreach ( (array) $filelist as $filename => $filemeta ) { $this->chmod( $file . $filename, $mode, $recursive ); } return true; } */
需求
寻求该语法错误的根源及更规范的解决方式。
内容的提问来源于stack exchange,提问作者qo0d
相关产品推荐
相关产品推荐

