【问题标题】:How do I use PHP on a Rails server?如何在 Rails 服务器上使用 PHP?
【发布时间】:2014-06-25 21:12:38
【问题描述】:

我正在用 Ruby on Rails 创建一个站点,但我还需要合并一些 PHP 脚本。如何让 PHP 在 Rails 服务器上运行?如果不可能,我可以使用什么替代方法?

【问题讨论】:

  • 澄清一下,这些 PHP 脚本会生成网页吗?
  • google 找到了很多答案。
  • “Rails 服务器”是任何能够运行 Ruby 的机器。你能更具体地了解你的架构吗? IaaS/专用主机、PaaS 还是共享主机?你是在使用 Apache、Nginx 还是其他什么东西,还是什么都不用?您的 Rails 代码是否由 Unicorn/Mongrel/Thin/Puma/Passenger 提供服务?

标签: php mysql ruby-on-rails ruby


【解决方案1】:

是的,这是可能的,我曾经将一个 WordPress 博客整合到一个 Rails 应用程序中。你需要覆盖Passenger并告诉它忽略你的php脚本目录。

我在 Rails 应用程序的公共目录中放置了一个 cms 目录。然后在 apache 配置文件(或 vhost.conf)中我输入以下内容:

DocumentRoot /path/to/app/public

<Directory /path/to/app/public>
  Options All
  AllowOverride All
  Order allow,deny
  Allow from all
</Directory>

<Location /cms>
  PassengerEnabled off
</Location>

这是最后一部分 PassengerEnabled off 发挥了作用。看看这个链接: https://www.phusionpassenger.com/documentation/Users%20guide%20Apache.html#PassengerEnabled

【讨论】:

    【解决方案2】:

    PHP

    当您提到您需要在 Rails 应用程序中“合并” PHP 脚本时,您的意思是您需要在 Rails 应用程序中运行 PHP 脚本,还是在 rails / ruby​​ 服务器上运行 PHP 脚本?

    两者有明显区别:

    PHP == Ruby
    PHP != Rails
    

    当您运行 Rails 服务器时,您将获得一个“封闭”的环境。它无法从Ruby / Rails 以外的来源读取任何外部数据 - 您必须使用一些第三方 Web 服务才能做到这一点,例如 API

    --

    服务器

    正如Mark Kenny 推荐的那样,您可以轻松地在服务器上安装 PHP 和 Ruby,轻松地并行运行它们。重要的是正确设置您的服务器配置,以便让合适的人在合适的时间使用合适的系统

    如果您尝试将 PHP 系统融入您的 Rails 应用程序,它根本就无法工作。这是糟糕的系统设计,通常会导致严重的头痛

    我会做的事情是要么在 Rails 应用程序中复制 PHP 系统的功能(取决于你的预算有多大/你有多长时间),或者看看你会怎么样能够通过 Web 服务简单地将 PHP 系统集成到您的 Rails 应用程序中

    【讨论】:

      猜你喜欢
      • 2015-11-24
      • 1970-01-01
      • 2018-06-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-14
      • 2012-12-02
      • 1970-01-01
      相关资源
      最近更新 更多