无法在本地 /var/www 目录中使用符号链接

无法在本地 /var/www 目录中使用符号链接

我正在设置本地 LAMP 服务器,当我访问它时,我无法使用 Apache 用户 (www-data) 跟踪符号链接。此时,我尝试了 chowning 和 chmoding,并
在我的 DocumentRoot 的 httpd.conf 文件中添加了 Options FollowSymLinks。我不知所措。

所以我要问的是:

如果您使用标准 11.10 LAMP 安装来设置您的 Apache,那么您将采取哪些步骤来使 Apache 用户的符号链接正常工作?

答案1

这听起来像是权限问题。确保 Apache 必须访问的每个目录和父目录(在 /var/www 和符号链接的目标目录中)都设置了全局执行位。

例如,如果您的符号链接指向 /home/somebody/www,请执行以下操作:

sudo chmod a+x /var /var/www /home /home/somebody /home/somebody/www

这是不是有必要在任何目录上设置读取访问权限;只有 Apache 应该读取的文件才必须具有适当的读取权限。

答案2

我会用我的脚本查看权限pathlldhttp://paste.ubuntu.com/757530/):

例如pathlld

walt@aardvark:~(0)$ ll $(type -p emacsclient)  
lrwxrwxrwx 1 root root 29 2011-10-23 11:20 /usr/bin/emacsclient -> /etc/alternatives/emacsclient  
walt@aardvark:~(0)$ pathlld $(type -p emacsclient)   
drwxr-xr-x 27 root root 4096 2011-12-02 04:07 /  
drwxr-xr-x 12 root root 4096 2011-10-23 19:29 /usr  
drwxr-xr-x 2 root root 135168 2011-12-02 16:03 /usr/bin  
lrwxrwxrwx 1 root root 29 2011-10-23 11:20 /usr/bin/emacsclient -> /etc/alternatives/emacsclient  
-rwxr-xr-x 1 root root 23440 2011-08-14 12:41 /usr/bin/emacsclient  
drwxr-xr-x 27 root root 4096 2011-12-02 04:07 /  
drwxr-xr-x 234 root root 12288 2011-12-02 16:06 /etc  
drwxr-xr-x 2 root root 20480 2011-11-29 09:31 /etc/alternatives  
lrwxrwxrwx 1 root root 28 2011-10-23 11:20 /etc/alternatives/emacsclient -> /usr/bin/emacsclient.emacs23  
-rwxr-xr-x 1 root root 23440 2011-08-14 12:41 /etc/alternatives/emacsclient  
drwxr-xr-x 27 root root 4096 2011-12-02 04:07 /  
drwxr-xr-x 12 root root 4096 2011-10-23 19:29 /usr  
drwxr-xr-x 2 root root 135168 2011-12-02 16:03 /usr/bin  
-rwxr-xr-x 1 root root 23440 2011-08-14 12:41 /usr/bin/emacsclient.emacs23  

答案3

例子:

$ mkdir /home/myuser/proyects/php/myproyect

$ cd /var/www/

$ sudo ln -s /home/myuser/proyects/php/myproyect .

现在你需要:

1)将 apache 设置为你的项目的所有者

$ sudo chown myuser:www-data /home/myuser/proyects/php/myproyect -R

2)将每个文件夹的 +x 权限设置为您的路径

$ sudo chmod +x /home/myuser/proyects
$ sudo chmod +x /home/myuser/proyects/php
$ sudo chmod +x /home/myuser/proyects/php/myproyect

现在您可以在 上看到您的项目http://localhost


如果有任何问题请尝试:

重启 Apache

$ sudo service apache2 restart

如果问题仍然存在,请让 apache 用户成为链接的所有者

$ cd /var/www/
$ sudo chown myuser:www-data myproyect -R

如果问题仍然存在,请在您的主页上添加执行权限

$ sudo chmod +x /home/myuser/

相关内容