这与我今天早些时候提出的另一个问题有关。
我从源代码构建了SVN 1.6.2。在这个过程中,它完全搞砸了我的开发环境。
我构建SVN后,Apache没有加载。它给了我这个错误:
Syntax error on line 117 of /private/etc/apache2/httpd.conf: Cannot load /usr/libexec
/apache2/mod_dav_svn.so into server: dlopen(/usr/libexec/apache2/mod_dav_svn.so, 10): no
suitable image found. Did find:\n\t/usr/libexec/apache2/mod_dav_svn.so: mach-o, but
wrong architecture
似乎SVN覆盖了旧的mod_dav_svn.so并且我无法将其构建为FAT,我无法恢复原来的那些。
我通过注释掉加载mod_dav_svn.so的行来解决这个问题(暂时?),并让Apache在此时启动。
但是,即使Apache正在运行,我现在在尝试访问我的开发站点时收到此错误:
Directory index forbidden by Options directive: /usr/share/tomcat6/webapps/ROOT/
我让Apache2坐在Tomcat6前面。我使用内部名称“http://localthesite”访问我的本地开发站点。我已经设置了虚拟目录,直到这个SVN崩溃。
Tomcat安装在/ usr / local / apache-tomcat,webapps是/ usr / local / apache-tomcat / webapps。
我们的生产服务器将tomcat部署到/ usr / share / tomcat6,因此我在系统上设置了符号链接来复制它。这些指向实际的安装路径。这一切都很好。
我们对Apache2,Tomcat或.htaccess的配置都没有改变。在周末,我在系统上执行了“修复磁盘权限”。这是在我发现mod_dav_svn.so问题之前。
我整个上午都在阅读这篇文章,最常见的答案是有一个Options -Indexes集。我们在配置文件中有这个,但是之前和我在测试期间删除它时,我仍然从Apache获得了相同的错误。
此时,我假设我要么在这台Mac上完全使用原生Apache2安装,要么在某个地方存在我遗漏的权限错误。权限错误可能来自SVN安装,也可能来自我的修复过程。
有没有人任何想法可能是什么问题?我现在完全被阻止了,不知道接下来要去哪里检查。
答案 0 :(得分:0)
尝试
grep -n Options /etc/httpd/*
获取存在Options指令的所有行。如果您有任何行-Indexes
,那么可能就是这样。您可能还需要检查文件。 (在/private/etc/httpd/users/*
我认为..)
另一件事是权限。 (这听起来更有可能。)我相信Apache需要一个文件夹上的+ x来显示其内容的索引。尝试
ls -l /usr/share/tomcat6/webapps/
寻找
drwxr-xr-x 1 user user 100 Jun 15 13:37 ROOT/
^
您可能需要使用
进行设置chmod a+x /usr/share/tomcat6/webapps/ROOT
我不确定这一点,因为我自己没有遇到同样的问题。希望它有效!
干杯!
(旁注:这可能不是你想要的,但我强烈推荐MacPorts - 它是一个工具,允许你自动安装软件(如apache,svn,mysql等),依赖关系解析成沙子框,以便您的默认Mac OS X不受影响。您可以停用并激活软件,从而轻松尝试不同的版本等。链接:www.macports.org)
答案 1 :(得分:0)
这可能与您所遇到的“选项指令”问题有关,也可能没有关系,但第一次错误中的关键位是
Did find:\n\t/usr/libexec/apache2/mod_dav_svn.so: mach-o, but
wrong architecture
我在Apache和SVN之间遇到了类似的问题,但是有一个不同的库。我的记忆在这方面有点模糊,但我想有一段时间后苹果转向64位二进制文件。 Mac OS X上的大多数库都是i386或x86_64架构。您可以使用'file'命令找到架构,例如:
file /usr/libexec/apache2/mod_dav_svn.so
可能会输出
mod_dav_svn.so: Mach-O 64-bit dynamically linked shared library x86_64
如果比较svn和httpd可执行文件的体系结构以及mod_dav_svn插件,可能会发现冲突。