无法通过虚拟主机 + centos + apache 将网站域指向 Rails 应用程序

Posted

技术标签:

【中文标题】无法通过虚拟主机 + centos + apache 将网站域指向 Rails 应用程序【英文标题】:Unable to point website domain to rails app via virtual host + centos + apache 【发布时间】:2015-07-01 00:30:31 【问题描述】:

我在 Hostgator 中有专门的服务器网络托管。 - CentOs 6 64位 - 专用服务器 - 阿帕奇 我有一个专用的主机 IP,我用 IP 创建了“A”记录(域名托管在 GoDaddy 中)。

我的问题是创建虚拟主机以将 rails 应用程序指向我的域。我正在尝试配置域。我没有找到配置默认文档根目录的 conf 文件。我尝试更改 etc/httpd/conf/httpd.conf 中的 conf 文件,但没有用。一些默认文档根(/usr/local/apache/htdocs)页面正在呈现。我需要找到文档根虚拟配置,然后需要将我的域指向它。我需要这方面的帮助。

这是我在 httpd conf 文件中的默认虚拟主机设置:

NameVirtualHost *
# Default vhost for unbound IPs
<VirtualHost *>
    ServerName examle_server_name
    DocumentRoot /usr/local/apache/htdocs
    ServerAdmin root@example_server
    <IfModule mod_suphp.c>
        suPHP_UserGroup nobody nobody
    </IfModule>
</VirtualHost>

即使我将服务器名称更改为我的域名,也没有更改。此外,如果我删除这些行,它会显示默认页面 /usr/local/apache/htdocs.

如何/在哪里可以更改它以将我的 Rails 应用程序指向/指向域。

我还需要在 rails 3000 端口上运行的 rails 应用配置的 Apache VirtualHost 设置

请帮帮我。

问候, 兰吉特

【问题讨论】:

【参考方案1】:

Apache 是否与 easyapache/Cpanel 一起安装? (hostgator 经常出现这种情况) 然后你的 apache 主 conf 文件将位于 /usr/local/apache/conf/httpd.conf。但是,不建议您直接更改该文件,因为它可能会在 apache 重建其 conf 文件时被覆盖。 对于虚拟主机中未包含的更改,请使用 pre 和 posts 文件,其位置将在主 conf 文件中指示。 对于虚拟主机内部的更改,请使用 conf 文件中为每个域指定的文件进行更改

【讨论】:

【参考方案2】:

为了在服务器中部署应用程序,我使用此虚拟主机配置

<VirtualHost *:80>
    ServerName mydomain.com
    DocumentRoot /path/to/rails/public/folder


    <Directory /path/to/rails/public/folder >
        Options Indexes FollowSymLinks
        AllowOverride all
        Require all granted
    </Directory>

</VirtualHost>

我在/etc/apache2/sites-enabled/mysite.conf 中创建了一个文件,但我是在 Ubuntu 服务器中进行的。不知道CentOS中的位置是不是一样。

您可以为 3000 端口应用创建另一个类似这样的文件。

我跳过了文件中的 Passenger (https://www.phusionpassenger.com/) 设置。我用它来服务 Rails 应用程序。

进行任何更改后,您需要重新启动服务器

sudo service apache2 restart

【讨论】:

以上是关于无法通过虚拟主机 + centos + apache 将网站域指向 Rails 应用程序的主要内容,如果未能解决你的问题,请参考以下文章

Linux学习--CentOS7 安装好MySQL及Apache后,宿主机无法打开网页

虚拟机centos下apache开启但是主机输入ip无法访问

Linux(CentOS)上,安装了Apache(httpd)后,其他的电脑无法访问的原因

在 Centos 6 上使用 Apache 进行反向代理

无法使用 httpd (CentOS) 将虚拟主机绑定到不同的端口

CentOS 7运维管理笔记----Apache 基于端口的虚拟主机配置