【问题标题】:How do I create a virtual host in Apache for a rails app如何在 Apache 中为 Rails 应用程序创建虚拟主机
【发布时间】:2014-07-10 00:21:35
【问题描述】:

我目前在我的家庭网络上的另一台计算机上运行 Ubuntu 服务器。我已经为我的 PHP 应用程序安装了 LAMP,并为我的 ruby​​ on rails 应用程序安装了 ruby​​。在我的 /etc/hosts 文件中,我输入了我希望将域名附加到的应用程序的域名(还不是真实的)。所以,现在我想我只是在模拟输入该域并在完成后访问我的服务器上的应用程序,并且我有一个真正的 http 请求进入该地址。这是我的 /etc/hosts 文件:

27.0.0.1       localhost
127.0.1.1       mB590

# I want this to point to my rails app
192.168.24.100  example.com

# The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

我已经在我的服务器上创建了一个名为 example.com 的虚拟主机文件:

<VirtualHost *>
    RailsEnv development
    ServerName www.example.com
    ServerAlias example.com
    DocumentRoot /var/www/example/public
</VirtualHost>

在同一网络上的另一台计算机上,我可以输入 example.com,然后出现我的 apache 欢迎页面。如果我输入 example.com:3000 它指向我的 rails 应用程序,因为我已经设置了一个虚拟主机来实现这一点。但我想设置它,以便当我输入 example.com 时它指向我的 rails 应用程序,而无需指定端口号。我尝试了以下方法,然后重新启动了 apache 和 rails 服务器:

<VirtualHost *:3000>
    RailsEnv development
    ServerName www.example.com
    ServerAlias example.com
    DocumentRoot /var/www/example/public
</VirtualHost>

.. 什么都没做。然后我尝试输入Listen 3000:

Listen 3000
<VirtualHost *>
    RailsEnv development
    ServerName www.example.com
    ServerAlias example.com
    DocumentRoot /var/www/example/public
</VirtualHost>

.. 但收到此错误:

=> Booting WEBrick
=> Rails 4.1.0 application starting in development on http://0.0.0.0:3000
=> Run `rails server -h` for more startup options
=> Notice: server is listening on all interfaces (0.0.0.0). Consider using 127.0.0.1 (--binding option)
=> Ctrl-C to shutdown server
[2014-05-21 20:17:13] INFO  WEBrick 1.3.1
[2014-05-21 20:17:13] INFO  ruby 2.0.0 (2014-02-24) [i686-linux]
[2014-05-21 20:17:13] WARN  TCPServer Error: Address already in use - bind(2)
Exiting
/home/martyn/.rvm/rubies/ruby-2.0.0-p451/lib/ruby/2.0.0/webrick/utils.rb:85:in `initialize': Address already in use - bind(2) (Errno::EADDRINUSE)
.
.
.

我需要做什么才能按照我的意愿进行设置? (输入 URL,不带端口号,它将被定向到我的应用程序)

【问题讨论】:

    标签: ruby-on-rails apache virtualhost


    【解决方案1】:

    问题是您已经在收听port 3000,从配置中我看到Listen 3000 已经绑定到端口3000,当您按照默认方式运行服务器时,它需要端口3000。因此出现错误.

    评论Listen 3000 行,并尝试它应该可以工作。

    【讨论】:

    • &lt;VirtualHost *&gt; 行中是否有:3000?我上面的第一次尝试我没有Listen 3000,只有&lt;VirtualHost *:3000&gt;。我尝试评论 Listen 3000 但它仍然不起作用,我仍然需要在我的客户端机器浏览器中编写 www.example.com:3000 才能查看我的 Rails 应用程序。
    猜你喜欢
    • 2013-01-17
    • 2013-02-17
    • 2022-09-27
    • 1970-01-01
    • 2016-02-08
    • 1970-01-01
    • 1970-01-01
    • 2011-09-10
    • 2016-11-26
    相关资源
    最近更新 更多