FastCGI用のパラメータ

DrupalでFastCGIで稼働させるためにはmod_fastcgiの設定が必要になります。設定は、fastcgi.serverパラメータでおこないます。詳しくはDocs:ModFastCGI - lighttpd - Tracにあります。基本の構成は次のとおりです。

( <extension> =>
  (
    ( "host" => <string>,
      "port" => <integer> ,
      "socket" => <string>,
      "bin-path" => <string>,
      "bin-environment" => <array>,
      "bin-copy-environment" => <array>,
      "mode" => <string>,
      "docroot" => <string>,
      "check-local" => <tring>,
      "min-procs" => <integer>,
      "max-procs" => <integer>,
      "max-load-per-proc" => <integer>,
      "idle-timeout" => <integer>,
      "broken-scriptfilename" => <boolean>,
      "disable-time" => <integer>,
      "allow-x-send-file" => <boolean>,
      "kill-signal" => <integer>
    )
   )

以降、Drupalの稼働に必要なパラメータの設定をみていきます。

Drupal用FastCGI設定

Drupalの稼働に必要な設定は少なく、

の最小セットで運用しています。

fastcgi.server = ( ".php" =>
  ( "localhost" =>
    (
      "socket" => "/tmp/php-fastcgi.socket",
      "bin-path" => "/usr/bin/php"
    )
  )
)
extension
Drupalはphpスクリプトとして稼働しますので拡張子は".php"となります。このパラメータはファイルパスを指定することもできます。
host
fastCGIの稼働するホストをhostnameまたはipで指定します。FastCGIの特徴としてプロセスの分散があるのですがそこまではしていません。ローカルホストのみでの稼働としています。
socket
ポートは使用せず、UNIXドメインを使っています。
bin-path
phpのインストールディレクトリを指定します。

ここでは指定していませんが、本番のホスティング環境では

などを設定したほうがよい場合もあります。

クリーンURL

FastCGIの設定とは関係ありませんがDrupalにはクリーンURLという機能があって、通常のURLであれば「http://localhost/drupal/index.php?q=node/1」のようにURLにクエリ文字が含まれてしまうのですが、クリーンURLの機能を使用することで「http://localhost/drupal/blog/1」のようにクエリを含まないクリーンなURLをとすることができます。Lighttpdでは、Apacheの場合と同様mod_rewriteによりこの機能を使用することができます。

url.rewrite-final = (           
 "/drupal/system/test/(.*)$" => "/drupal/index.php?q=system/test/$1",
 "/drupal/([^.?]*)\?(.*)$" => "/drupal/index.php?q=$1&$2",
 "/drupal/([^.?]*)$" => "/drupal/index.php?q=$1",
 "/drupal/rss.xml$" => "/drupal/index.php?q=rss.xml"
)

system/testはクリーンURLが有効に機能するかチェックするDrupalのURLですのでここが書き換えられないと有効にすることができません。