我已经根据此网站创建了一个 virtualHost 设置: https://ourcodeworld.com/articles/read/302/how-to-setup-a-virtual-host-locally-with-xampp-in-ubuntu
这部分设置显然是可行的。但是,我希望将项目文件夹放在 htdocs 以外的其他位置,以便工作内容可以与我的其他文档一起自动备份到云中。
VirtualHost 文件如下所示:
<VirtualHost 127.0.0.2:80>
DocumentRoot "/home/dave/Dropbox/Documents/Projects/MyApp"
ServerName lcover.local
DirectoryIndex index.html
<Directory "/home/dave/Dropbox/Documents/Projects/MyApp">
Options All
AllowOverride All
Require all granted
</Directory>
ErrorLog "logs/lcover.local-error_log"
CustomLog "logs/lcover.local-access_log" common
</VirtualHost>
当我去http://lcover.local,我收到 403 错误。
我很确定这是一个所有者/权限问题,并且我尝试了几种组合但无法使其工作。
我应该如何设置目录和文件的权限?
答案1
为了对文件具有可读访问权限,用户(任何用户)还必须对父目录的整个路径具有读取-执行权限。用户主目录及其内部文件的典型/默认权限为:
drwxr-xr-x
(或755
在八进制)用于目录和-rw-r--r--
(或644
)用于文件。
这意味着所有other
用户(第三个三位一体或八进制中的第三位)都对每个用户的主目录(以及里面的常规文件)具有可读访问权限。
在这些情况下,我们假设 Apache 的用户不是所讨论的项目,但成员用户other
(当然)无法从目录中读取文件~/Dropbox/Documents/Projects/MyApp
,我们想要改变这种状况 - 步骤如下:
# Grant to `other` users read-execute permissions for the path
chmod o+rx ~/Dropbox ~/Dropbox/Documents ~/Dropbox/Documents/Projects
# For the next levels we can apply the permissions recursively
find ~/Dropbox/Documents/Projects/MyApp -type d -exec chmod o+rx {} \;
find ~/Dropbox/Documents/Projects/MyApp -type f -exec chmod o+r {} \;