Windows上的Apache上的Rails - HOWTO

时间:2011-11-11 14:04:55

标签: ruby-on-rails windows apache

自从Rail 3.0问世以来(或者我找不到),这个问题还没有被问到:

如何在Windows(WAMP)上的Apache上运行Rails 3+应用程序? Mongrel是最好的选择吗?将Apache作为代理,然后是另一台服务器,听起来不是最理想的。 Windows上不存在乘客。

我希望从您那里得到的是一个魔法安装包的链接以及httpd.conf文件中的一个片段,该片段会将一个转移到rails应用程序。

3 个答案:

答案 0 :(得分:2)

使用apache(或nginx)作为代理的优点是它可以在不同的mongrel(或thin)实例之间进行负载平衡。因此,您必须启动三个mongrel实例(服务)并配置apache来代理这些实例。

将apache配置到不同的mongrel进程非常简单,可以在互联网上找到。以下是httpd-vhosts.conf的示例(由您的实际应用程序/域和根文件夹替换yourapplication):

<VirtualHost *:80>
    #ServerName 10.200.65.35
    #ServerAlias 10.200.65.35
    ServerName yourapplication.com

    DocumentRoot d:/yourapplication/current/

    <Directory c:/yourapplication/current/public/ >
      Options Indexes FollowSymLinks MultiViews
      AllowOverride All
      Order allow,deny
      allow from all
    </Directory>


     # On active les proxy qui sont par défaut désactivés
    <Proxy *>
        Order allow,deny
        Allow from all
    </Proxy>
    <Proxy balancer://mongrel_cluster>
        BalancerMember http://127.0.0.1:4000
        BalancerMember http://127.0.0.1:4001
        BalancerMember http://127.0.0.1:4002
    </Proxy>

    ProxyPass / Balancer://mongrel_cluster/
    ProxyPassReverse / balancer://mongrel_cluster/
    #ProxyReserveHost on


    #log files
    ErrorLog "/Program Files/Apache Software Foundation/Apache2.2/logs/yourapplication_error.log"
    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn
    CustomLog "/Program Files/Apache Software Foundation/Apache2.2/logs/yourapplication_access.log" combined

    #Rewrite stuff
    RewriteEngine On

    # Rewrite index to check for static
    RewriteRule ^/$ /index.html [QSA] 

    # Rewrite to check for Rails cached page
    RewriteRule ^([^.]+)$ $1.html [QSA]

    # Redirect all non-static requests to cluster
    RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f
    RewriteRule ^/(.*)$ balancer://mongrel_cluster%{REQUEST_URI} [P,QSA,L]
</VirtualHost>

在Windows上部署的另一个非常有前途的替代方法是使用TorqueBox。 TorqueBox是基于JBoss / Jruby的解决方案,因此与平台无关。在benchmarks中显示TorqueBox表现非常好,实际上任何人都应该认真考虑切换到它。

希望这有帮助。

答案 1 :(得分:0)

你试过InstantRails怎么样? http://rubyforge.org/projects/instantrails/

  

Instant Rails是一站式Rails运行时解决方案,包含Ruby,Rails,Apache和MySQL,所有这些都已预先配置好并可以运行。没有安装程序,只需将其放入您选择的目录并运行即可。它不会修改您的系统环境。

尝试像Vagrant这样的虚拟机:http://vagrantup.com/docs/getting-started/index.html

或者JRubyStack。

据我所知,在Windows中部署rails的唯一方法是使用apache + mongrel。祝你好运!

答案 2 :(得分:0)

我意识到这是一个非常古老的问题,但我刚刚找到了一个非常简单的解决方案,它不涉及安装任何新软件。它只需要httpd.conf中的几个标志。这篇文章详细介绍了editrocket.com:

http://editrocket.com/articles/ruby_apache_windows.html