在 Foreman 中提供目录列表

在 Foreman 中提供目录列表

我正在尝试在运行 Foreman 时通过 http(80) 提供目录列表。我尝试编辑 /etc/httpd/conf.d 中的 05-foreman.conf 和 15-default.conf 文件,以便允许通过 /usr/share/foreman/public 目录提供目录列表,但每次访问该页面时,我都会收到来自 Foreman/Passenger 的“您正在寻找的页面不存在”消息。我尝试访问的目录是这样的符号链接:

/usr/share/foreman/public/directory => /var/www/html/directory

我可以访问我试图访问的目录中的静态文本文件,但我看不到索引。我已在该区域发送了 FollowSymLinks 和索引,但这对我没有任何帮助。

<Directory "/usr/share/foreman/public">
   Options FollowSymLinks Indexes 
   AllowOverride None 
   Order allow,deny
   Allow from all
</Directory>

我是否遗漏了某些内容,或者缺少了其他我应该编辑的文件?

答案1

我认为你缺少 apache 别名指令

Alias /foreman /usr/share/foreman/public
<Directory "/usr/share/foreman/public">
   Options FollowSymLinks Indexes 
   AllowOverride None 
   Order allow,deny
   Allow from all
</Directory>

之后重新加载 apache 服务或重新启动它,或者如果你正在运行 foreman 和 Passenger,你需要有类似这样的内容

Listen 443
<VirtualHost *:443>
  ServerName foreman.foo.bar
  ServerAlias foreman
  DocumentRoot /usr/local/share/foreman/public
  PassengerAppRoot /usr/local/share/foreman

  SSLEngine On
  SSLVerifyClient optional
  SSLOptions +StdEnvVars
  SSLVerifyDepth 3

  SSLCertificateFile  /etc/pki/foreman/foreman.foo.bar.cert
  SSLCertificateKeyFile  /etc/pki/foreman/foreman.foo.bar.key
  SSLCACertificateFile  /var/puppet/ssl/ca/ca_crt.pem

  <Directory /usr/local/share/foreman/public>
  Options FollowSymLinks
  DirectoryIndex index.html
  AllowOverride None
  Order allow,deny
  allow from all
  </Directory>

</VirtualHost>

答案2

经过一段时间的斗争,我最终将 /etc/httpd/conf.d/05-foreman.conf 移至 /etc/httpd/conf.d/05-foreman.conf-noload,以阻止 httpd 服务在端口 80 上启动 foreman。

无论如何,我总是通过 443 访问 Web 应用程序。似乎没有出现任何问题。这似乎将目录列表返回到端口 80,因此我实际上可以使用我放在那里的结构。

也许不是最佳选择,但这让我达到了我需要的效果。谢谢!!

相关内容