apache2 VirtualHost 服务器和乘客行为

apache2 VirtualHost 服务器和乘客行为

我已经在 Apache2 中安装了一个 phusion-passenger 网站,该网站在我的网络中位于 192.168.0.50。

这是 VirtualHost 元素

<VirtualHost *:80>
        ServerName my_web_host

        DocumentRoot /var/www/redmine
        ServerAdmin [email protected]
        LogLevel debug
        ErrorLog /var/log/apache2/redmine_error
        CustomLog /var/log/apache2/redmine_access combined

        <Directory /var/www/redmine>
        RailsBaseURI /redmine
        PassengerResolveSymlinksInDocumentRoot on
            Options Indexes FollowSymLinks MultiViews
            AllowOverride None
            Order allow,deny
            allow from all
        </Directory>
    </VirtualHost>

现在,这是我迄今为止成功访问它的方法:

  • 为了能够从局域网中的另一台机器访问该网站,我需要将其添加my_web_host到我的/etc/hosts文件中,然后通过浏览器访问它http://my_web_host

让我烦恼并想改变的事情是

  • 如果我直接访问机器,http://192.168.0.50/我会看到来自 Apache 的通用消息,告诉我“它有效”,但如果可能的话,我希望它将我重定向到 redmine 网站

  • 完全不可接受的事实是,如果我访问机器,http://192.168.0.50/redmine我就可以看到实际位于的所有文件和文件夹/var/www/website(这实际上是指向 redmine 公共安装文件夹的符号链接)

** 这是一个仅限 LAN 的网站,所以我真的不关心 WAN 访问,但如果你想教我如何在网站出现故障时修复这个问题通过公共互联网访问,请随意访问

答案1

您可以为默认文档根目录设置 Passenger 选项(应该位于 /etc/apache2/sites-available/default 中,具体取决于您的操作系统)或将您的虚拟主机绑定到 IP 地址:

<VirtualHost 192.168.0.50:80>

答案2

您使用基于名称的虚拟托管有什么原因吗?根据您的描述,这似乎是您在服务器上托管的唯一网站。如果这是正确的,请将基于名称的虚拟托管排除在外。

您是否必须将网站文件放在 /var/www/redmine 中,而不是放在常规 apache web 文件夹中?如果没有,请将文件放在正常位置(Redhat 系统上的 /var/www/html)。

我坚信让事情尽可能简单,但看起来你正在给你的设置添加不必要的复杂性。

巴特。

相关内容