我无法理解如何在 WebDAV 设置上编辑文件。我已经正确设置了 Auth,正如大量在线教程所验证的那样,但是有一些文件,如 .htaccess
,我无法编辑。
VirtualHost设置的内容是
<VirtualHost *:80>
ServerAdmin xxx
ServerName xxx
DocumentRoot /data/www/vhosts/xxx
<Directory /data/www/vhosts/xxx>
Options Indexes MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
<Location />
DAV On
AuthType Basic
AuthName "WebDAV Access"
AuthUserFile /data/www/.htpasswd-webdav
Require valid-user
</Location>
</VirtualHost>
我也在文件中生成了正确的用户名,我可以成功登录并看到所有文件。就像我说的,问题是某些文件不可读和不可写,罪魁祸首是 .htaccess
和 .gitignore
。
我已将所有文件的权限设置为 664
并将所有文件夹的权限设置为 775
以及 xxx 的
。原因是这允许 PHP 读取/写入文件,并且我们的远程登录用户 user:group
: www-数据xxx
可以在没有权限问题的情况下执行相同的操作。
我需要做些什么来允许读写这些隐藏的点文件吗?我完全被难住了,因为我读过的大多数教程都告诉我,如果我不将点文件的权限设置为 root:root
那么它们将是可写的。我正在使用 Mac 连接到在 Ubuntu 上运行的 WebDAV 服务,如果这有什么不同的话
为了清楚起见,这个问题中所有的xxx
都是为了隐藏信息。
最佳答案
所以看来我可以使用下面的方法允许访问特定文件
<Files .htaccess>
order allow,deny
deny from all
</Files>
我忘记了默认情况下 .htaccess
文件是通过 HTTP 阻止的。
编辑:
最终的工作设置,使所有文件在 webdav 环境中可写,具有摘要安全身份验证是:
<VirtualHost *:80>
ServerAdmin xxx
ServerName www.domain.name
DocumentRoot xxx
<Directory xxx>
Options Indexes MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
<FilesMatch "\.(htaccess|php)$">
Order allow,deny
allow from all
ForceType text/plain
</FilesMatch>
<Location />
DAV On
AuthType Digest
AuthName "Webdav Access"
AuthDigestDomain / http://www.domain.name/
AuthDigestProvider file
AuthUserFile /data/www/digest.users
Require valid-user
php_value engine off
</Location>
</VirtualHost>
我希望这对其他人有帮助。花了好几天时间才在网上找到所有这些信息。
关于apache - 如何允许通过 Apache 和 WebDAV 写入文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11245937/