我刚刚从路径/media/rahul/142E875C2E873630/xampp/htdocs/
(即我在 ubuntu 中挂载的驱动器的路径)创建新的虚拟主机。现在,当我创建此 URL 的虚拟主机时,它已成功创建,但现在,当我打开主机 URL 时,它显示403 Forbidden
。
我的shared.conf
:
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName shared
ServerAlias www.shared.com
DocumentRoot /media/rahul/142E875C2E873630/xampp/htdocs
<Directory />
Options FollowSymLinks
AuthType None
AllowOverride None
Order deny,allow
Deny from all
</Directory>
<Directory /media/rahul/142E875C2E873630/xampp/htdocs/>
Require all granted
Options Indexes FollowSymLinks MultiViews
AuthType None
AllowOverride None
Order allow,deny
allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
我也添加了url
主机文件但仍然出现同样的错误。
知道为什么会发生这种情况吗?
关于权限:
答案1
这都是关于权限的问题。运行你的 Web 服务器的系统用户 (www-data) 必须已阅读权限到该文件夹htdocs
以及该文件夹的完整路径。
在这里我将描述实现这一目标的三种方法:
- 简单的方法 - 只需给予足够的权限;
- 正确的方法(据我所知) - 使用终端和
/etc/fstab
; - 最简单正确的方法 - 使用 GUI 工具
Disks
。
1. 只需授予足够的权限
为此,打开一个终端窗口并输入:
sudo chmod 755 /media/rahul/
Nemo
或者按照以下方式授予这些权限截屏从问题中。请记住777
这不是最好的选择。
2. 使分区成为静态文件系统树的一部分:/etc/fstab
指定静态挂载点并使用以下方式挂载分区(设备)正确的权限通过/etc/fstab
:
1.创建适当的挂载点 - 打开终端窗口并输入:
sudo mkdir /mnt/shared
2.查找必要的初步信息:
找到分区(设备)标识。输入
sudo blkid
并识别目标分区(设备)。我们假设它是/dev/sda4
和UUID=142E875C2E873630
。找到你的用户的
uid
(user-id) 和gid
(group-id)。在终端中输入:id
。结果应该类似于:uid=1000(rahul) gid=1000(rahul) groups=1000(rahul),..
更多复杂的权限设置例如,需要其他一些用户的数据
id www-data
将返回:uid=33(www-data) gid=33(www-data),...
3.以 root 身份编辑/etc/fstab
文件(使用sudo
)并添加新行:
当设备/分区在以下情况下格式化时
NTFS
这条新线可能是:/dev/sda4 /mnt/shared ntfs uid=1000,gid=33,nls=utf8,umask=0022,fmask=111 0 0
在哪里:
/dev/sda4
分区(设备) - 按/dev
位置或UUID
- 包含文件系统。/mnt/shared
上述分区(设备)的挂载位置。ntfs
目标设备文件系统的类型。uid=1000,gid=1000
将为用户和组设置所有权权限rahul
;uid=1000,gid=33
将为用户rahul
和组设置所有权权限www-data
。nls=utf8
方法使用 UTF-8 转换文件名。umask=0022
将设置权限将所有文件夹转换为drwxr-xr-x
八进制755
。fmask=111
将所有文件的权限设置为-rw-rw-rw-
或八进制666
。
当分区(设备)格式化为
ext4
这条新线可能是:/dev/sda4 /mnt/shared ext4 default 0 0
Ant 其内容的权限可以像往常一样进一步管理 -
chown
,,chmod
等等。
4.保存 的编辑/etc/fstab
,然后重新加载:sudo mount -a
。
重要的提示!如果这是外部(USB)设备,拔掉它就会出现错误。解决方法是:1)进入恢复模式,2)编辑/etc/fstab
并 3)注释(#
)上面描述的行。
3. 使分区成为静态文件系统树的一部分:Disks
1.打开 Dash 并输入Disks
:
2.找到您的目标设备并选择Edit Mount Options
:
3.编辑挂载选项并点击OK
:
4.安装设备——单击Play
按钮:
进一步措施
1.找到文件夹的新位置htdocs
。它应该是这样的:
/mnt/shared/xampp/htdocs
2.编辑您的shared.conf
文件:
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName shared
ServerAlias www.shared.com
DocumentRoot /mnt/shared/xampp/htdocs
<Directory />
#etc ...
</Directory>
<Directory /mnt/shared/xampp/htdocs/>
#etc ...
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
3.重新启动 Apache2 并尝试访问您的站点。