同步到站点目录时出现权限问题

同步到站点目录时出现权限问题

有没有办法将目录符号链接ln到 OS X 上的 ~/Sites/ 目录,以便权限正确,以便当我在本地机器上进行 Web 开发时可以在 Web 浏览器中查看它?

这就是我在目录上所做的,ln -s ~/code/web/yolkportfolio ~/Sites/yolkportfoliochmod 755它仍然无法读取。

任何帮助将不胜感激。

答案1

问题出在我的 Apache 配置上。下面是允许它工作的原因,只是规则FollowSymLinks

<Directory "/Users/Joe/Sites/">
    Options Indexes MultiViews FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>

答案2

您有以下几种选择:

1.如果你正在apache使用其他用户(不是你自己的用户)运行,并且明确希望DocumentRoot指向你家里面的某个目录,你需要将你的主目录的权限(默认必须是750700)更改为755

如果这是您的笔记本电脑或个人电脑并且没有其他人可以访问它,我才会推荐它。

2.第一个不是一个选项,但你仍然想要DocumentRoot在你的家里,那么你可以更改运行的用户apache。编辑其配置文件并查找指令UserGroup

3.第二个仍然不是一个选项,而且……你仍然想要在你的家中的东西。使用 apache 的 mod_userdir。使用以下配置:

<IfModule mod_userdir.c>
        UserDir public_html
        UserDir disabled root

        <Directory /home/*/public_html>
                AllowOverride FileInfo AuthConfig Limit Indexes
                Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
                <Limit GET POST OPTIONS>
                        Order allow,deny
                        Allow from all
                </Limit>
                <LimitExcept GET POST OPTIONS>
                        Order deny,allow
                        Deny from all
                </LimitExcept>
        </Directory>
</IfModule>

这是 Debian 上 Apache 的 mod_userdir 的默认配置。您将能够访问:

/home/your-username/public_html/*

在您的浏览器上访问以下地址:

http://somewhere/your-username/*

4.最后,您可以将其放置在DocumentRoot其他地方(/srv/www/opt/www其他任何地方)并根据需要设置权限。

相关内容