我搜索了好多地方,但还是无法找出是什么搞乱了我的配置。我正在 Arch x86_64 上运行,希望这对任何人有帮助。
简洁版本
我启用了选项索引,重新启动了 Apache,当我尝试获取文件夹的目录列表时,返回了 404 页面未找到。禁用 dir_module 没有帮助,而且我不想使用 user_dirs 模块。如果我输入完整路径,文件就会呈现(.log 文件)。
细节
Apache 运行良好(我的其他目录也运行正常)。当我尝试共享一个目录,希望通过自动索引列出其内容时,我得到了 404 页面未找到。Apache 的日志仅显示缓存未命中和 404 尝试命中下面定义的别名。我的主要 httpd.conf 有:
LoadModule autoindex_module modules/mod_autoindex.so
LoadModule dir_module modules/mod_dir.so
LoadModule alias_module modules/mod_alias.so
...
<Directory "/srv/http">
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
<IfModule dir_module>
DirectoryIndex index.html index.php
</IfModule>
...
Include conf/extra/httpd-test-dir.conf
在 http-test-dir.conf 中我有:
Alias /test_dir /home/user/dir
<Directory "/home/user/dir">
AllowOverride All
Options Indexes FollowSymLinks MultiViews
IndexOptions FancyIndexing
Order allow,deny
Allow from all
</Directory>
我尝试注释掉 dir_module 行并重新启动 apache,但没有成功。我可以通过以下方式手动获取 /home/user/dir/ 中的文件:
http://hostname/test_dir/2012-04-06/result.log
不幸的是文件夹路径发生了变化,所以我无法对它们进行硬编码,而且我不想使用 user_dirs 模块。我检查了权限,从 / 到 /home/user/dir/ 的所有文件/文件夹都是
drwxr-xr-x
任何帮助都将不胜感激。谢谢。
答案1
弄清楚了!!!
原来是 Passenger 模块在运行(针对我的其他网站之一)。我必须按如下方式修改 http-test-dir.conf:
Alias /test_dir /home/user/dir
<Directory "/home/user/dir">
AllowOverrid All
Options Indexes FollowSymLinks MultiViews
IndexOptions FanciyIndexing
PassengerEnabled off <------Added this line
Order allow,deny
Allow from all
</Directory>
希望这能帮助其他运行 Rails 应用程序的人。就我而言,它是 GitLab。