0

因为我正在研究 PHP + Apache + Mysql,并且我正在使用不同配置的 Ruby on Rails,所以我想用这样的配置开始我的新项目:Rails + Apache + Mysql。我已经将 Rails 项目与 mysql 连接,但我不知道如何将服务器设置为 Apache。rails server 一直在启动 WEBrick。设置apache服务器的解决方案是什么?

4

2 回答 2

1

我建议使用 nginx 而不是 apache。如果您真的想使用 apache,您可以查看乘客。

或者

你可以使用apache的proxypassreverse模块

模块依赖

  • mod_rewrite
  • mod_ssl
  • mod_proxy
  • mod_proxy_http

您的虚拟主机可能看起来像这样

<VirtualHost *:80>
ServerName gitlab.example.com

ProxyPreserveHost On

<Location />
  Order deny,allow
  Allow from all

  ProxyPassReverse http://127.0.0.1:3000/
  ProxyPassReverse http://example.com/
</Location>

RewriteEngine on
RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f
RewriteRule .* http://127.0.0.1:3000%{REQUEST_URI} [P,QSA]
</VirtualHost>

如果您的应用程序在另一个端口下运行,您将不得不更改端口

于 2013-11-03T11:35:59.857 回答
0

乘客是一个可以作为 apache 模块安装的 rails 容器。运行以下两条命令安装passenger:

gem install passenger
passenger-install-apache2-module

然后,只需按照屏幕上显示的说明进行操作。最后,您将看到一个示例VirtualHost。使用它来调整您的实际VirtualHost设置

您还将看到与将乘客加载为 apache 模块有关的 3 行。只需将这些行复制粘贴到您的 httpd.conf(或 apache.conf 视情况而定)。

使用此设置,您无需运行 WEBrick。乘客将自动启动您的 Rails 应用程序

如果您还在同一个 apache 实例上运行 PHP 应用程序,您可以VirtualHost使用PassengerEnabled off指令关闭您的PHP 中相关的乘客

有关更多配置选项,请参阅Apache 乘客手册

于 2013-11-03T15:03:50.387 回答