在Debian jessie中使用Apache2/PHP,当我想在Apache (/var/www)的文档文件夹中创建一个新的子节时,我只需创建一个链接到我的PHP文件存在的外部文件夹,并简单地更改文件夹的所有者和权限,如下所示,它工作完美。
ln -s /home/myname/mynewcode /var/www/test1
chown -R www-data:www-data /home/myname/mynewcode
chmod -R 755 /home/myname/mynewcode
然后我可以访问http://localhost/test1
但是当我想要链接它的真正文件夹在NTFS分区上时,因为chown和chmod不起作用,我通过添加以下代码修改/etc/fstab,因此我的NTFS分区将以所需的权限和所有者挂载。
UUID=XXDDXDDXDDDXDDDD /media/myname/lable ntfs user,exec,uid=www-data,gid=www-data 0 2
ln -s /media/myname/lable/mynewcode2 /var/www/test2
但是我仍然从Apache2得到权限错误,我不知道该怎么做!!
禁止您没有权限访问此服务器上的/test2。
Apache/2.4.10 (Debian) Server at localhost Port 80
我不能提供一个100%有效的解决方案,但我有两点你可能想要检查。
首先,尝试将umask
添加到fstab
行。我认为这会导致权限错误。umask
在挂载时为所有文件(644)和目录(755)添加正确的权限。你必须重新挂载NTFS文件夹!
UUID=XXDDXDDXDDDXDDDD /media/myname/lable ntfs user,exec,uid=www-data,gid=www-data,umask=022 0 2
您需要确保www-data
用户能够将cd
放入目标文件夹:
sudo su www-data -s bash && cd /media/myname/lable
第二,确保"FollowSymlinks"在特定文件夹上是允许的,我想你已经有了,但无论如何尝试:
<Directory "/media/myname/lable/">
Options FollowSymLinks +Indexes
AllowOverride None
Order allow,deny
Allow from all
</Directory>
<Directory "/var/www">
Options FollowSymLinks +Indexes
AllowOverride None
Order allow,deny
Allow from all
</Directory>
我假设NTFS分区属于Windows机器?您可以在Windows中共享它,并通过
将其挂载到Debian中 mount -t cifs //windows_host/share /var/www/test2 uid=xxx,gid=xxx,rw,sec=ntlmv 0 0
所以你不需要直接处理NTFS