议程:在Linux和Windows之间拥有一个公共项目文件夹
我已在我的ubuntu机器14.04中将我的文档根目录从/var/www/html
更改为/media/mithun/Projects/test
我收到错误:
禁止
您无权访问此服务器上的内容。
localhost端口80上的Apache / 2.4.7(Ubuntu)服务器
所以我添加了一些脚本:sudo gedit /etc/apache2/sites-available/000-default.conf
# DocumentRoot /var/www/html
DocumentRoot /media/mithun/Projects/test
但是Document Root /var/www/test
有效,但不适用于 Windows NTFS分区驱动器。
即使提到:
没有成功:(所以请帮助我...
注意: 项目是一个新卷(内部驱动器:在Windows中它的E:/ Drive)
@Lmwangi - 请查看我的更新,以供您参考:
输出:
ls /etc/apparmor.d/
abstractions lightdm-guest-session usr.bin.evince usr.sbin.cupsd cache local usr.bin.firefox usr.sbin.mysqld disable sbin.dhclient usr.lib.telepathy usr.sbin.rsyslogd force-complain tunables usr.sbin.cups-browsed usr.sbin.tcpdump
我试图杀死apparmor:
sudo /etc/init.d/apparmor kill
我收到的输出为:
Usage: /etc/init.d/apparmor {start|stop|restart|reload|force-reload|status|recache}
在此之后,我还能够成功重启apache
答案 0 :(得分:1)
问题可能很简单:www-data用户可以访问新的根目录吗? 试试:
$ chown -R www-data:www-data /media/mithun/Projects
答案 1 :(得分:1)
正如您现在已经发现的那样,您不能仅仅操纵NTFS分区上的权限(使用chmod
等工具)
但是,您可以在挂载时尝试强制整个分区的给定所有者/权限。
现在这样做的方法取决于你实际使用的NTFS实用程序(我不知道,所以我假设你正在使用ntfs-3g
)
E.g。使用以下参数挂载分区(将dev/sdX
替换为您的实际分区,并使用目标路径替换/path/to/where
drive / is / mounted`:
mount -o gid=www-data /dev/sdX /path/where/the/drive/is/mounted
应该使分区上的所有文件都属于www-data
组。
如果文件系统明确设置了组所有权,那么这仍然可能无法正常工作。
在这种情况下,您可能需要设置usermap
,将您的Windows用户/组(在分区上找到)映射到您的Linux用户/组。
ntfs-3g.usermap
实用程序将帮助您生成初始用户地图文件,然后您可以根据需要进行编辑:
ntfs-3g.usermap /dev/sdX
然后将usermap传递给挂载选项:
mount -o usermapping=/path/to/usermap.file /dev/sdX /path/where/the/drive/is/mounted
答案 2 :(得分:0)
我怀疑你有apparmor强制规则阻止Apache读取非列入白名单的目录路径。我建议你
答案 3 :(得分:0)
在Windows下使用ubuntu时,我遇到了同样的问题,可以通过重新安装具有读写访问权限的驱动器来解决该问题。下面的命令将帮助您做到这一点:
sudo mount -o remount,rw /disk/location /disk/new_location
如果仍然无法正常运行,请在Windows操作系统中转到电源选项并禁用快速启动。
当关闭启用了“快速启动”的计算机时,Windows会锁定Windows硬盘。如果您将计算机配置为双启动,则将无法从其他操作系统访问它。更糟糕的是,如果启动到另一个操作系统,然后访问或更改休眠的Windows安装所使用的硬盘(或分区)上的任何内容,则可能导致损坏。如果您是双重启动,则最好不要使用“快速启动”或“休眠”。
原创文章:https://www.howtogeek.com/243901/the-pros-and-cons-of-windows-10s-fast-startup-mode/