【问题标题】:Running Rails applications with Passenger alongside PHP applications使用Passenger 和PHP 应用程序运行Rails 应用程序
【发布时间】:2012-10-16 23:00:47
【问题描述】:

我正在设置一个服务器,我需要在其中运行 Ruby On Rails 3 应用程序以及一些 PHP 网站。 服务器是运行 Apache 2.4.3 的 CentOS 5.8 机器。 该服务器用于测试和预生产,因此性能不是问题。

我正在为 Rails 应用程序使用 Phusion Passenger,并且我创建了一堆虚拟主机(带有关联的文件夹和数据库帐户)。 然后,我打算为 PHP 使用其他 v-hosts。

有可能吗?我应该如何进行?

非常感谢


详情:
httpd.conf:

LoadModule passenger_module /app/auser/.rvm/gems/ruby-1.9.3-p286/gems/passenger-3.0.17/ext/apache2/mod_passenger.so  
PassengerRoot /app/auser/.rvm/gems/ruby-1.9.3-p286/gems/passenger-3.0.17  
PassengerRuby /app/auser/.rvm/wrappers/ruby-1.9.3-p286/ruby  

(...)

##
## Virtual hosts
Include conf/extra/httpd-vhosts-phpmyadmin.conf
Include conf/extra/httpd-vhosts-rails01.conf
Include conf/extra/httpd-vhosts-rails02.conf
Include conf/extra/httpd-vhosts-php01.conf
Include conf/extra/httpd-vhosts-php02.conf
....

乘客管理的 v-host 将类似于:
包括 conf/extra/httpd-vhosts-rails01.conf

<VirtualHost *:80>
   ServerName rails01.lcl
   DocumentRoot "/app/auser/apps/rails01/public"
   <Directory "/app/auser/apps/rails01/public">
      AllowOverride all
      Options -MultiViews
   </Directory>
</VirtualHost>

基于 PHP 的 v-host 将如下所示: 包括 conf/extra/httpd-vhosts-php01.conf

<VirtualHost *:80>
    ServerName php01.lcl
    DocumentRoot "/app/auser/apps/php01/public"
    <Directory "/app/auser/apps/php01/public">
        Options FollowSymLinks MultiViews
        AllowOverride None
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

【问题讨论】:

  • 我实际上遇到了麻烦。我在一个 v-host 中创建了一个存根 Rails 应用程序......虽然它可以工作,但它似乎覆盖了其他 v-host。所以如果我尝试访问另一个,我会得到 Rails 的默认 500 错误。
  • 奇怪的是你能粘贴你的 apache 配置(即 apache2.conf/httpd.conf)文件以及你定义的虚拟主机,如果它通过文件包含在 apache 配置中
  • 好的,我会在问题中添加详细信息
  • 原来在 v-hosts 设置中有错误。我仍然想知道这是否可行。

标签: php ruby-on-rails ruby apache passenger


【解决方案1】:

是的,与 PHP 一起运行 Rack/Rails 绝对有效。

【讨论】:

    【解决方案2】:

    有一个非常酷的宝石,叫做rack-legacy,它可能就是您正在寻找的东西。它允许您通过 php-cgi 执行托管在 Rails 应用程序服务器上的 PHP 代码。

    Rack Legacy 尝试提供与 PHP 和 CGI​​ 等遗留环境的交互,同时仍然获得 Rack 的可移植性,因此您不需要完整的 Apache/lighttpd 堆栈。

    我已经使用了一些实验,似乎可以运行一个 wordpress 并与 Rails 应用服务器一起提供服务,而不必弄乱 apache/ngix 文件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-04-12
      • 1970-01-01
      • 1970-01-01
      • 2023-03-29
      • 1970-01-01
      • 2014-07-20
      • 2016-06-21
      相关资源
      最近更新 更多