在Sites目录中创建符号链接

Cod*_*ama 58 macos apache2

我在我的~/Sites目录中有一个文件,当我浏览它时它工作正常coderama.local/~coderama/index2.php

现在我想变得棘手并将我的index2.php文件移动到我系统上的其他位置,所以我通过创建符号链接来实现这一点.但是,当我尝试访问时,coderama.local/~coderama/index2.php我现在得到以下错误.

任何人的想法?

谢谢!

被禁止

您无权访问此服务器上的/~coderama/index2.php.

Mar*_*rvo 101

这是一个可配置的Apache选项.默认情况下,Macs(可能是大多数安装)似乎将Apache配置为不遵循符号链接.我猜测(正如上面提到的那样)它是出于安全目的.

但是,有时可以非常方便地启用符号链接,特别是在开发某些类型的应用程序时.您需要做的是1)更改Apache配置以允许以下符号链接,然后2)重新启动Apache.

配置步骤如下:

a)cd/etc/apache2(默认情况下,这是Apache的配置文件在Mac上)

b)你会在这里看到几个目录.一个叫做用户

c)cd用户

d)ls应该显示一个带有你的登录名的.conf文件(登录 .conf)我是"marvo"所以我的名字叫"marvo.conf"

e)编辑这个文件(我使用vi) - 但你必须使用sudo来做:

sudo vi marvo.conf
Run Code Online (Sandbox Code Playgroud)

f)你会看到类似的东西

<Directory "/Users/marvo/Sites/">
    Options Indexes MultiViews 
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>
Run Code Online (Sandbox Code Playgroud)

g)添加"FollowSymLinks"选项,以使该.conf文件的第二行如下所示:

Options Indexes MultiViews FollowSymLinks
Run Code Online (Sandbox Code Playgroud)

(您可以在'net上找到其他配置选项.我找到了这个页面:http: //httpd.apache.org/docs/2.0/mod/core.html#directory)

h)保存文件.

现在你必须重新启动Apache,以便它获取配置更改.谷歌搜索了一下,我发现这很容易通过以下命令从命令行完成:

sudo /usr/sbin/apachectl restart
Run Code Online (Sandbox Code Playgroud)

(发现在http://mcapewell.wordpress.com/2006/09/22/restart-apache-in-mac-os-x/)

现在,符号链接应该在您的网站页面上正常工作.

  • 阅读agarie的下一个答案,获取正确的信息.至少在Mountain Lion上,默认情况下会配置FollowSYmLinks*,但是如果你在链接到的Documents,Dropbox等中有东西,你需要为这些目录添加+ rx权限. '默认情况下是a-rx. (3认同)

aga*_*rie 56

有同样的问题.不幸的是,Marvo的答案还不够.

问题在于从路径中的每个文件夹设置的权限~/.目录需要设置execute标志才能递归目录树.所以,在我的情况下,我将一个主题文件夹符号链接 ~/Dropbox/projects/theme到wordpress安装~/Site/wordpress.

答案是:

chmod a+x ~/Dropbox/
chmod a+rx ~/Dropbox/projects
Run Code Online (Sandbox Code Playgroud)

这是一个老问题,但如果有人到达此页面,它可能会有用.:)


Cod*_*ama 5

似乎是一个安全问题(Matt也建议)

http://discussions.apple.com/thread.jspa?threadID=1771399