The symfony Cookbook

IIS上でsymfonyをインストールする

Be trained by symfony experts
Oct 29: Atlanta (1.1 - English)
Oct 29: Montreal (1.1 - English)
Nov 19: Paris (1.1 - Francais)
Nov 26: Atlanta (1.1 - English)
Dec 10: Paris (1.1 - Francais)
and more...

About

You are currently reading "The symfony Cookbook" which is licensed under the Creative Commons Attribution-Noncommercial-No Derivative Works 3.0 Unported License license.

Search


powered by google

Chapter Content

何が必要でしょうか?

symfonyをインストールする

プロジェクトを初期化する

IISを設定する

URLの書き換えを設定する

symfonyを設定する

独自のディレクトリ内でsymfonyアプリケーションを設定する

You are currently browsing "The symfony Cookbook" in Japanese for the 1.0 version. Switch to another version: Switch to another language:
Creative Commons License This work is licensed under a Creative Commons Attribution-Noncommercial-No Derivative Works 3.0 Unported License.
Translation of this work into another language is explicitly allowed.

もちろん、ウェブサーバーに関してApache以外の選択肢があります。それがIIS上にsymfonyをインストールする方法のチュートリアルを見る理由です。

何が必要でしょうか?

symfonyをインストールする

最初に、PEARパッケージを行進して下さい。チャネルを取り扱うためにバージョン1.4.0以降が必要だからです:

$ pear upgrade PEAR

それからsymfonyのチャネルを追加して下さい:

$ pear channel-discover pear.symfony-project.com

ベータバージョン0.5.73以降のsymfonyをインストールして下さい:

$ pear install symfony/symfony-beta

phingパッケージがない場合、同じようにインストールする必要があります:

$ pear install http://phing.info/pear/phing-current.tgz

詳細な内容はsymfonyのインストール方法の章を調べて下さい。

プロジェクトを初期化する

プロジェクトのディレクトリ(c:\myprojectを使う場合)とmyappと呼ばれるアプリケーションのための基本的なツリー構造を作るために、コマンドコンソールを開き次の内容を入力して下さい:

$ cd c:\myproject
$ symfony init-project myproject
$ symfony init-app myapp

IISを設定する

これから2つの設定オプションを考えます:

バーチャルディレクトリをサーバーのメインディレクトリに追加します。これをsfと名付けpearディレクトリのdata\symfony\web\sfに設定します。デフォルトの設定でPHP5をc:\php5にインストールした場合、フルパスはc:\php5\PEAR\pear\data\symfony\web\sfです。

URLの書き換えを設定する

isapi/rewriteがサーバーにインストールされ機能していることを前提とします。まだISAPIを購入していないので、設定するのは1つのhttpd.iniファイルのみです。設定は以前定義したオプションに依存します:

IISを再起動します

symfonyを設定する

最後のステップはsymfonyプロジェクトのconfigディレクトリ内に設置されたsettings.ymlファイルを編集することです(我々の例ではc:\myproject\apps\myapp\config\です)。2つのオプションが少々異なっていることを発見しても驚かないでしょう:

Important note: isapi/rewrite/を使わない場合、HTTP_X_REWRITE_URLは間違っている可能性があります。symfonyの設定方法を知るために詳細なテストを作らなければなりません。プロジェクトのwebディレクトリ内のmyapp_dev.phpファイル(もしくはwhatever you named your application_dev.php)を開き、次の2行を追加します:

print phpinfo();
die();

では次のURL: http://myproject/myapp_dev.php/test/rewrite(もしくは設定に依存するhttp://myserver/myproject/myapp_dev.php/test/rewrite)を開き、PHP変数を見ます。_SERVER["PATH_INFO"]が/test/rewriteと等しい場合、settings.ymlファイルからpath_info_key行を削除するか、この値(isapi/rewriteに対するHTTP_X_REWRITE_URL)を含む変数の名前を探さなければなりません。以前の2行を除去すれば、symfonyの準備が整います。

独自のディレクトリ内でsymfonyアプリケーションを設定する

symfonyプロジェクトはいくつかのアプリケーションを含みます。デフォルトの設定において、すべてのアプリケーションは同じCSSとアップロードディレクトリを共有します。これを変更し、myappアプリケーションに対して個別のディレクトリを作ります。以前のオプションを考慮して、次のURL: http://myproject/myapphttp://myserver/myappを実現することにします。今回、これらのオプション間の設定に違いはありません。

symfonyプロジェクトのwebサブディレクトリ内にmyappサブディレクトリを作ります(我々の場合c:\myproject\web\myappです)。

index.phpmyapp_dev.phpファイルをこのディレクトリにコピーし、cssuploadsという名前の2つのディレクトリを作ります。

IISの管理コンソール内で、myappという名前のサーバーのroot上に新しいバーチャルディレクトリを作ります。このバーチャルディレクトリをc:\myproject\myappに設定します。

httpd.iniファイルの最後で次の行を追加して下さい:

  #[myappに直接アクセスするための設定]
  # .html以外の.something拡張子を持つファイルをすべてスキップする
  RewriteCond URL /myapp/.*\..+$
  RewriteCond URL (?!/myapp/.*\.html$).*
  RewriteRule /myapp/(.*) /myapp/$1 [L]

  # .phpファイルはそのままにする
  RewriteRule /myapp/(.*\.php)(.*) /myapp/$1$2 [L]

  # 最後にフロントウェブコントローラにリダイレクトする
  RewriteRule /myapp/(.*) /myapp/index.php [L]

myappアプリケーションのsettings.ymlファイル(c:\myproject\apps\myapp\config\settings.yml)を編集し次の行を追加します:

  all:
   .settings:
     path_info_key:          HTTP_X_REWRITE_URL

(HTTP_X_REWRITE_URLに関する前回のノートを参照)

最後に、フロントコントローラ(c:\myproject\web\myapp内のindex.phpmyapp_dev.php)の両方を編集し変更します:

define('SF_ROOT_DIR',    realpath(dirname(__FILE__).'/..'));
 

上記のコードを以下のようにします:

define('SF_ROOT_DIR',    realpath(dirname(__FILE__).'/../..'));
 

これでお終いです。うまくゆきました。

Questions & Feedback

If you find a typo or an error, please register and open a ticket.

If you need support or have a technical question, please post to the user mailing-list or to the forum.