【问题标题】:Running Rails and PHP on Lighttpd on Linux在 Linux 上的 Lighttpd 上运行 Rails 和 PHP
【发布时间】:2011-06-23 08:06:39
【问题描述】:

嗯,我想知道是否有一种方法可以在 Lighty 和 Ubuntu 上同时运行 rails 和 PHP。我想在一台服务器/域上同时运行我的 PHP 项目和 Rails 项目。

我真的对 Linux 没什么经验,所以请原谅我的幼稚。

如果有办法,请告诉我:)

【问题讨论】:

    标签: php ruby-on-rails linux ubuntu lighttpd


    【解决方案1】:

    同时运行它们非常简单。我一直这样做(ROR 运行 Redmine,其余的运行 PHP)。

    对于 ROR,您有 2 个实际选项。要么从 FastCGI(我所做的)提供它,要么使用独立服务器(如 Mongrel 等)运行它并代理它。两者都有优势。 FastCGI 的优势在于它是独立的(无需运行辅助服务器)。独立的优点是更容易配置。

    如果您有具体问题,我可以提供指导,但互联网上有关于如何执行此操作的指南。

    我的 lighttpd.conf:

    $HTTP["host"] =~ "my.ror.site" {
        server.error-handler-404="/dispatch.fcgi"
        fastcgi.server = (".fcgi" => ("ror_1" => (
                "min-procs"=>8,
                "max-procs" => 8,
                "socket" => "/tmp/myrorlock.fastcgi",
                "bin-path"=> "/path/to/ror/site/public/dispatch.fcgi",
                "kill-signal" => 9,
                "bin-environment" => ( "RAILS_ENV" => "production" )
        )))
    }
    
    fastcgi.server = ( ".php" =>
        (
            (
                "socket" => "/tmp/php-fastcgi.socket",
                "bin-path" => "/usr/bin/php-cgi -c /etc/php.ini",
                "min-procs" => 1,
                "disable-time" => 1,
                "max-procs" => 1,
                "idle-timeout" => 20,
                "broken-scriptfilename" => "enable",
                "bin-copy-environment"=> (
                    "PATH", "SHELL", "USER"
                ),
                "bin-environment" => (
                    "PHP_FCGI_CHILDREN" => "40",
                    "PHP_FCGI_MAX_REQUEST" => "50000"
                )
            )
        )
    )
    

    就是这样。注意kill-signal 选项。这很重要,否则每次重新启动服务器时都会到处出现僵尸进程......

    【讨论】:

    • $HTTP["host"] =~ "my.ror.site" -- =~ 表示它正在进行正则表达式比较,可能不需要。当您想要进行正常的字符串比较时,请使用==More info。除此之外,感谢您的示例!
    • @Garret:好点。我实际上在我的中使用了正则表达式(因为有多个域指向它,原因有几个)。我只是将其剥离(消毒)以便在此处发布。但这是值得一提的......
    【解决方案2】:

    查看 Lighty 配置目录的 conf.d 子目录中的 fastcgi.conf(不确定它在 Ubuntu 上的位置,但快速搜索建议 /etc/lighttpd)。 PHP 和 Rails 都有注释掉的示例;通过将两者结合起来,您应该能够获得所需的设置(尽管我建议先让一个工作,然后再设置另一个)。

    FastCGI 是 Lighty 可以与 Ruby 或 PHP 等运行时通信的方法。 Lighty 也可以使用 SCGI,尽管我自己从未使用过它,并且不确定它的效果如何(最后我听说它仍然是实验性的)。

    您可能还会发现 Lighty 文档 wiki 上的 Optimizing FastCGI 页面很有帮助,尽管它是相当特定于 PHP/MySQL 的。

    【讨论】:

      【解决方案3】:

      我不使用 Lighty。 Rails 最好与Passenger 和Apache 一起使用,考虑到Passenger 对Apache 的附加功能。我通过将其路径指向其他地方,在与我的 Rails 应用程序相同的域中提供 Wordpress (PHP)。 Here's an article to follow。 HTH。

      【讨论】:

      • 感谢您的回复,但我请求帮助将其配置为在 lighty 上运行,而不是在 apache 上运行。特别不是 Apache。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-12-10
      • 1970-01-01
      • 2015-02-26
      • 1970-01-01
      • 2012-08-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多