2011-02-08 15 views
6

Ubuntu上でLighty上で両方のレールとPHPを実行する方法がありますか?私は、PHPプロジェクトとRailsプロジェクトの両方を1つのサーバー/ドメインで実行したいと考えています。Linux上でLighttpd上でRailsとPHPを実行する

私はLinuxでの経験がほとんどないので、私の無礼を許してください。

theresの場合は、これを行う方法私に知らせてください:)

答えて

3

両方を実行するのはとても簡単です。私はいつもそれをやる(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オプションに注意してください。それ以外の場合は、サーバーを再起動するたびにどこでもゾンビプロセスに巻き込まれるでしょう...

+0

のお返事ありがとうございます。私の問題を解決するようです。D – Zen

+0

'$ HTTP [" host "] =〜" my.ror.site "' - ''〜 '正規表現の比較を行うことを意味しますが、これは必要ではない可能性があります。通常の文字列比較をしたいときは '=='を使います。 [詳細情報](http://redmine.lighttpd.net/wiki/lighttpd/Docs:Configuration#Conditional-Configuration)それ以外、サンプルありがとう! –

+0

@Garret:良い点。私は実際に私の中で正規表現を使用しています(なぜなら、いくつかの理由から、それを指す複数のドメインがあるからです)。私はちょうどここに投稿するためにそれを取り除いた(墨塗り)。しかし、それは言及する価値があります... – ircmaxell

-2

私はライティを使用しないでください。 ApacheへのPassengerアドオンのパワーを考慮して、RailsはPassengerとApacheに最適です。私はWordpress(PHP)を、私のRailsアプリケーションと同じドメインに、別の場所にそのパスを指すことによって提供しました。 Here's an article to follow。 HTH。

+0

返信ありがとうございますが、私はlighty、not apacheで実行するように設定するためのヘルプを依頼しました。特にApacheではありません。 – Zen

1

Lightyの設定ディレクトリのサブディレクトリconf.d(確かにUbuntuのどこにあるのかわかりませんが、クイック検索では/etc/lighttpdと表示されます)を確認してください。 PHPとRailsの両方についてコメントアウトされた例があります。 2つを組み合わせることで、探しているセットアップを手に入れることができるはずです(ただし、最初に作業を開始してからもう一方をセットアップすることをお勧めします)。

FastCGIは、LightyがRubyやPHPのようなランタイムと通信できる方法です。 LightyもSCGIを使うことができますが、私はそれを自分で使ったことはありませんし、どれくらいうまく動作しているのか分かりません(最後はまだ実験的だと聞きました)。

LightyのドキュメントwikiのOptimizing FastCGIページは、PHP/MySQL固有のものですが、参考になるかもしれません。

+0

のようになります。 – Zen

関連する問題