Symfonyのプロジェクトディレクトリにはwebというディレクトリが用意されていて、標準のインストールマニュアルではそこをDocument Rootに指定するようにと記載 されています。
ただ、新規にWebサービスを立ち上げるような状況であれば、それも問題ないものの既存環境にSymfonyをインストールし、Document Rootを変更することでそこで動かしていたアプリケーションなどに影響が出るといった場合は、別のディレクトリでSymfonyを動作させたいということが出てきます。
※ ここでは、Symfony1.4.8でOSはLinuxを想定した設定方法を記載しています。
SymfonyのDocumentRootをwebディレクトリ以外に設定する
まず、Apacheの設定を下記のように変更します。
Alias /apps/sf "/path/to/install/symfony/web/sf"
<Directory "/path/to/install/symfony/web/sf">
AllowOverride All
Allow from All
</Directory>
Alias /apps/ "/path/to/symfony/pjdir/web/"
<Directory "/path/to/symfony/pjdir/web">
AllowOverride All
Allow from All
</Directory>
上段の「/path/to/install/symfony/web/sf」は、Symfonyのインストールディレクトリで、この設定は標準の設定方法と変わりはありません。
下段の「/path/to/symfony/pjdir/web/」は、Symfonyのプロジェクト用のディレクトリへの設定ですが、その上にAliasで任意のパス名(apps/)を指定するとwebディレクトリが参照されるように設定しておきます。
次に、webディレクトリ内にある.htaccessファイルを編集します。
# no, so we redirect to our front web controller RewriteRule ^(.*)$ /apps/index.php [QSA,L]
Apacheの設定で、URL上ではapps/以下のアクセスでwebフォルダを参照するようにエイリアスを作成しているので、同様にwebディレクトリ内にあるindex.phpへのアクセス方法も編集しておきます。
今回の設定の場合、「example.com/apps/」でSymfonyのwebディレクトリへアクセスできるようになります。
現在別のフレームワークで運用しているとか、他のCMSが入っているなどいった場合に、既存の環境を壊すことなくSymfonyを導入することができます。
また、Symfonyへの移行が完了したからDocument Rootを変更したいといった場合でも、上記の設定を元に戻すだけで対応も可能になります。
[PR]
[PR]
関連記事
[Symfony] setFlashしたはずのセッションデータが突然消える現象への対応
[ Symfony ] インストールしてHello Worldを出すまでの3ステップ
PHP_CodeSnifferでコーディング規約に準拠しているかチェックをする
PHPのプログラムをデーモンとして動かしてくれるPEAR::System_Daemon
PHPで利用できる関数やクラス、定義済みの定数や変数を表示する
[Smarty] テンプレートファイル用ディレクトリをカスタマイズする