News:本站已支持双栈访问,纯IPv6环境下可能存在部分元素无法加载问题,正在修复中

DirectAdmin下运行Nextcloud报错405 Method Not Allowed处理

帆尼玛 40 0 条

安装Nextcloud

  1. 在Directadmin面板绑定域名,创建数据库
  2. Nextcloud官网下载最新版程序,选择Download For Server获取.zip包。解压之后丢到对应站点的/public_html文件夹里面,访问站点会自动跳转到安装流程。
  3. 填写管理用户名、密码,根据需要选择数据库类型,图方便可以选sqlite,正常的就用MYSQL,填写MYSQL的主机、数据库、用户、密码后直接点Install即可安装完成。

访问报错

报错内容

打开站点并登录刚才设定的管理账号密码后,发现文件列表一直处于加载状态,怀疑运行出现问题。按F12(Chrome浏览器),并刷新页面,发现存在一个错误提示,在/remove/dav/files/用户名处报错PROPFIND 405 Method Not Allowed

修复

搜索相关信息,发现大部分人使用Nextcloud报错PROPFIND 405 Method Not Allowed主要出现在webdav上,Nexcloud官方说明是可能存在使用了旧版客户端、webdav冲突或者在modcgi模式下没有开启apache处理某两个模块。但我这里用的是web界面而不是客户端,也没用modcgi模式运行
接着搜索相关信息,发现PROPFIND是Webdav专用的一种请求方式,类似GET或者POST,此时想起来httpd.conf配置中有关于请求方式ALLOW或者DENY的设定,转去扒一下相关文件,最后在/etc/httpd/conf/extra/httpd-directories.conf中找到了以下内容

<Directory />
        Options All
        AllowOverride All
</Directory>

<Directory /home>
        AllowOverride All
        Options -MultiViews -Indexes +FollowSymLinks +IncludesNoExec +Includes
        AllowMethods GET HEAD POST
</Directory>

Include /etc/httpd/conf/extra/httpd-hostname.conf

<Directory /var/www/cgi-bin>
        AllowOverride None
        Options None
        Require all granted
</Directory>

如果理解没有错误的话,在/home文件夹内的Methods只有GET HEAD POST是允许的,所以在这里加上PROPFIND

<Directory /home>
        AllowOverride All
        Options -MultiViews -Indexes +FollowSymLinks +IncludesNoExec +Includes
        AllowMethods GET HEAD POST PROPFIND
</Directory>

然后通过传统的service httpd restart重启apache,刷新页面,问题解决。

更新

经过检查,在Nectcloud(webdav)使用中还存在额外几种method:PUT DELETE MKCOL MOVE,将他们都添加到上文说到的配置文件中,可解决后续上传、删除文件时的同类报错。

发表我的评论

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址