Webサーバーの設定
みっともないやり方
前の章で、プロジェクトをホストするディレクトリを作りました。 WebサーバーのWeb公開ディレクトリのルートで作って入れば、Webブラウザーでプロジェクトにアクセスできます。
もちろん、設定をしなければ、すぐにセットアップが終わりますが、ブラウザーでconfig/databases.yml
ファイルにアクセスすると手抜きの結果がわかります。
Webサイトがsymfonyで開発されていることをユーザーが知ったら、たくさんの重要なファイルにアクセスされてしまいます。
運用サーバーでこのやり方をけっして実行しないでください。 Webサーバーを適切に設定するやり方を学ぶには次のセクションをご覧ください。
セキュアなやり方
Webのグッドプラクティスによれば、Web公開ディレクトリのルートではスタイルシート、JavaScriptと画像のようなWebブラウザーがアクセスするのに必要なファイルだけを設置します。
そしてデフォルトでは、symfonyプロジェクトのweb/
サブディレクトリの下でこれらのファイルを保存することをおすすめします。
このディレクトリを見てみると、Webアセット(css/
とimages/
)と2つのフロントコントローラーファイル用のサブディレクトリが見つかります。
フロントコントローラーはPHPのみのファイルでWeb公開ディレクトリのルートに置く必要があります。
ほかのすべてのPHPファイルはブラウザーから隠され、セキュリティに関してこれはよいアイディアです。
Webサーバーの設定
世界中から新しいプロジェクトにアクセスできるようにApacheの設定を変更しましょう。
httpd.conf
設定ファイルを見つけて開き次の設定を最後の行に追加します:
# Be sure to only have this line once in your configuration
NameVirtualHost 127.0.0.1:8080
# This is the configuration for your project
Listen 127.0.0.1:8080
<VirtualHost 127.0.0.1:8080>
DocumentRoot "/home/sfproject/web"
DirectoryIndex index.php
<Directory "/home/sfproject/web">
AllowOverride All
Allow from All
</Directory>
Alias /sf /home/sfproject/lib/vendor/symfony/data/web/sf
<Directory "/home/sfproject/lib/vendor/symfony/data/web/sf">
AllowOverride All
Allow from All
</Directory>
</VirtualHost>
NOTE
/sf
エイリアスによってsymfonyのデフォルトページとWebデバッグツールバーを適切に表示するために必要な画像とJavaScriptファイルにアクセスできるようになります。Windowsでは、
Alias
の行を次のように置き換える必要があります:Alias /sf "c:\dev\sfproject\lib\vendor\symfony\data\web\sf"
そして
/home/sfproject/web
は次のように置き換えます:c:\dev\sfproject\web
この設定によってApacheはマシンのポート番号8080
をリスニングするようになり、Webサイトは次のURLからアクセスできるようになります:
http://localhost:8080/
8080
は任意の番号に変更できますが、管理者権限が必要ない1024
より大きな番号が望ましいです。
SIDEBAR 専用のドメイン名を設定する
マシンの管理者であれば、新しいプロジェクトを始めるたびに新しいポートを追加するよりもバーチャルホストをセットアップするほうがよいやり方です。 ポートを追加する代わりに
Listen
ステートメントを追加し、ドメイン名を選びServerName
ステートメントを追加します:# This is the configuration for your project <VirtualHost 127.0.0.1:80> ServerName sfproject.localhost <!-- same configuration as before --> </VirtualHost>
Apacheで使われるドメイン名である
sfproject.localhost
はローカルで宣言しなければなりません。 Linuxシステムを稼働させている場合、/etc/hosts
ファイルで作業を行います。 Windows XPを稼働させている場合、このファイルはC:\WINDOWS\system32\drivers\etc\
ディレクトリに設置されています。次の行を追加します:
127.0.0.1 sfproject.localhost
新しい設定をテストする
Apacheを再起動し、ブラウザーを開きhttp://localhost:8080/index.php/
もしくはhttp://sfproject.localhost/index.php/
から新しいアプリケーションにアクセスできることを確認します。
URLは前のセクションで選んだApacheの設定方法によります。
TIP Apacheの
mod_rewrite
モジュールをインストールしていれば、URLのindex.php/
の部分を取り除くことができます。 これはweb/.htaccess
ファイルで設定されるルールを書き換えることで実現可能です。
開発環境のアプリケーションにもアクセスしてみます(環境の詳細は次のセクションを参照)。 次のURLを入力します:
http://sfproject.localhost/frontend_dev.php/
Webデバッグツールバーは右上コーナーに表示されます。
小さなアイコンが含まれるのはsf/
エイリアスが正しいことを証明します。
Note Windows環境のIISでsymfonyを稼働させたい場合、セットアップ方法は少し異なります。 関連チュートリアルで設定方法がわかります。