我使用Snow Leopard用PHP进行Web开发 . 我的主目录中有一个文件夹,用作项目的eclipse工作区 . 我想将它用作Apache中的部署目录,以便我所做的任何更改都会立即可见 .
为此,我在httpd.conf中创建了一个Alias,如下所示:
Alias /mysite/ "/Users/mysuser/workspace/mysite"
<Directory "/Users/victor/workspace/mysite">
Order allow,deny
Allow from all
</Directory>
但是,当我尝试访问http://localhost/mysite/index.php时,我得到:
Forbidden
You don't have permission to access /mysite/index.php on this server.
我检查了文件夹的权限,所有用户都可以读/写/执行 .
我错过了什么吗?另外,使用指向我的工作区的别名是否有更好的选择?谢谢,维克多 .
3 回答
确保上面的所有文件夹(很可能是
/Users/mysuser
)都有权读取/执行任何文件夹 . 为目录设置时的执行位,授予遍历其树以访问文件或子目录的能力 .要回答问题的后半部分,我总是使用
VirtualHosts
,并在/etc/hosts
文件中定义主机名(即127.0.0.1 mysite.local
) . 这样您就不太可能遇到使用绝对路径的问题 . 您的"template"文件可以链接到/css/main.css
,而不必担心基本路径问题......@gnarf在第一段中是正确的:
具体来说,解决此问题的方法是转到终端,cd到这些文件所在的正确目录并键入:
如果由于某种原因它仍然无法正常工作,您可能希望对目录中的文件执行相同的操作 . 作为最后的手段,只是为了测试权限不再是问题,尝试将它们chmod到0777(暂时,因为这是一个安全漏洞,如果你离开它) .
在10.6 / 10.5的ALIAS / REDIRECT实现中有一个严重的错误(更不用说他们的蹩脚的apache设置范例) .
您在服务器管理员中创建的任何"Aliases"或"Redirects"都会在参数周围添加引号...在生成的.conf文件中
<DocumentRoot "XXX">
和<Directory "XXX">
指令....我已经一直在努力奋斗这么久我不能再说不出来......解决方案...在服务器管理员中设置基本的VHost结构,然后停止使用它!进入它在
/etc/apache2/Sites
中创建的.conf文件并手动添加mod_alias
指令 . 这是Server Admin的输出结果 .这应该是它应该是什么样的,实际上是什么,(我认为)......
从这一点开始, NEVER hit save in "Web" in "Server Admin" again . 如果你这样做,我们很乐意为你报上所有报价!
整个Web管理,特别是“别名”“面板”是苹果公司为实现简化而努力的一个可怕例子 . 他们重新命名惯例,使研究解决方案成为一场噩梦,并且它们的实施被打破了 . 更不用说他们本应该使用mod_rewrite了......最重要的是他们专有的设置方法的文档很少,唉!
我喜欢Apple,但Mac OS X服务器的一些挫折和缺乏配置选项真的是不可原谅和烦人的 .