安装Nextcloud
- 在Directadmin面板绑定域名,创建数据库
- 在Nextcloud官网下载最新版程序,选择Download For Server获取.zip包。解压之后丢到对应站点的
/public_html
文件夹里面,访问站点会自动跳转到安装流程。 - 填写管理用户名、密码,根据需要选择数据库类型,图方便可以选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
,将他们都添加到上文说到的配置文件中,可解决后续上传、删除文件时的同类报错。
留言