我有静态资源(mp3 和图像),我想在 Apache 虚拟主机上托管的网站中使用这些资源,配置如下:
<VirtualHost *:80>
ServerName example.com
serverAlias myexample.loc
DocumentRoot /home/USER/www/yii2/web
<Directory "/home/USER/www/yii2/web">
AllowOverride All
Options Indexes FollowSymLinks MultiViews
Require all granted
</Directory>
</VirtualHost>
这些资源位于闪存上的路径中,如下所示:
/media/USER/KINGSTON/audio
我在站点的文档根目录中为上述目录创建了一个符号链接,ls -s
如下所示:
sudo ln -s /media/USER/KINGSTON/audio /home/USER/www/yii2/web
但是,尝试访问任何资源都会导致403 Forbidden
错误。我怎样才能提供允许 www-data 用户访问它的安全权限?
目录的权限是什么
/media/USER/KINGSTON/audio
?请记住,Apache 在它遍历的目录上需要 +x。因此
/media/
,/media/USER
,/media/USER/KINGSTON/
和/media/USER/KINGSTON/audio
需要为 world 加上 +x 才能使 www-data 能够访问它。sudo chmod +x /path
对于上面的每个目录,这可以通过, 来完成。如果 KINGSTON 设备不是unix 文件系统,您可能会遇到挑战,因为它没有传统的 Unix ACL。此外,如果它是永久解决方案,我可能会将其添加为正常的挂载点。有关如何做到这一点,请查看此问答
作为一个简短的示例 - 请注意,# 作为提示符表示以 root 身份运行的命令,$ 表示普通用户。