2. Symfony2のインストール
ダウンロードしたSymfony2のアーカイブを使用するサーバ上に持っていきます。
ファイルをサーバ上にアップしたらインストールしたいディレクトリに
アップロードしたファイルを移動させます。
1 |
$ mv Symfony_Standard_Vendors_2.1.3.tgz ./public_html/ |
そしたら、そこで、Symfony2のアーカイブファイルを解凍します。
1 |
$ tar zxvf Symfony_Standard_Vendors_2.1.3.tgz |
解凍すると、”Symfony”というディレクトリが作成され、その下に
以下のようなファイルが展開されます。
1 2 3 4 5 6 7 8 9 |
-rw-r--r-- 1 hogehoge hogehoge 1065 7月 12 03:00 LICENSE -rw-r--r-- 1 hogehoge hogehoge 6405 7月 12 03:00 README.md drwxr-xr-x 6 hogehoge hogehoge 4096 11月 6 08:44 app drwxr-xr-x 2 hogehoge hogehoge 4096 11月 6 08:44 bin -rw-r--r-- 1 hogehoge hogehoge 1581 7月 12 03:00 deps -rw-r--r-- 1 hogehoge hogehoge 521 7月 12 03:00 deps.lock drwxr-xr-x 3 hogehoge hogehoge 4096 11月 6 08:44 src drwxr-xr-x 13 hogehoge hogehoge 4096 7月 12 03:00 vendor drwxr-xr-x 3 hogehoge hogehgoe 4096 7月 12 03:00 web |
一応これで完成ですが、今回はディレクトリ名をデフォルトの”Symfony”から
“symfony2″変更しておきます。
1 |
$ mv Symfony symfony2 |
ここで、インストールが正常に行われたか確認してみます。
以下のアドレスにブラウザでアクセスしてみてください。
(hogehoge.comというホストの/~hogehoge/symfony2/ にインストールした場合)
「This script is only accessible from localhost.」とでる
上記アドレスにアクセスすると、以下のメッセージのみ出力される
場合があります。
1 |
This script is only accessible from localhost. |
これは、Symfony2ではIP制限をかけており、デフォルトのままではSymfony2のサーバとは別のところからのアクセスができないようになっております。
なので、この制限を解除する必要があります。
“config.php”を見るとわかりますが、ここでアクセスにIP制限をしており、127.0.0.1しか
通さないようにしています。
1 2 3 4 5 6 7 |
if (!in_array(@$_SERVER['REMOTE_ADDR'], array( '127.0.0.1', '::1', ))) { header('HTTP/1.0 403 Forbidden'); exit('This script is only accessible from localhost.'); } |
なので、ブラウザを起動してアクセスしているパソコンのIPアドレスを入れるか、
このチェック処理自体を削除します。
1 2 3 4 5 6 7 8 |
if (!in_array(@$_SERVER['REMOTE_ADDR'], array( '127.0.0.1', '10.10.10.10', // <== 追加! '::1', ))) { header('HTTP/1.0 403 Forbidden'); exit('This script is only accessible from localhost.'); } |
(同じ処理を web/app_dev.php に対しても行っておいてください)
これで、IP制限の対策は完了です。
app/cacheとapp/logsのpermissionエラーが出る
上記アドレスにアクセスすると今度は以下のようなエラーが出るかもしれません。
1 2 3 4 5 6 |
2 Major problems Major problems have been detected and must be fixed before continuing : Change the permissions of the "app/cache/" directory so that the web server can write into it. Change the permissions of the "app/logs/" directory so that the web server can write into it. |
これは、”app/cache/”ディレクトリと、”app/logs/”ディレクトリにwrite権限がないよ!
って言ってます。
なので付けましょう。
方法は3通りあります。
1) chmod +a コマンドをサポートしているシステム上で ACL を使う方法
1 2 3 4 5 |
rm -rf app/cache/* rm -rf app/logs/* sudo chmod +a "www-data allow delete,write,append,file_inherit,directory_inherit" app/cache app/logs sudo chmod +a "yourname allow delete,write,append,file_inherit,directory_inherit" app/cache |
2) chmod +a コマンドをサポートしていないシステム上で ACL を使う
1 2 |
sudo setfacl -R -m u:apache:rwx -m u:yourname:rwx app/cache app/logs sudo setfacl -dR -m u:apache:rwx -m u:yourname:rwx app/cache app/logs |
apacheやyournameの部分は、それぞれ、webサーバのアカウント、あなたのユーザ名に
置き換えて実行してください。
3) ACL を使わない方法
1 2 3 4 5 |
umask(0002); // This will let the permissions be 0775 // or umask(0000); // This will let the permissions be 0777 |
これらのいずれかを実施してください。
自分は以下のように、rootになってsetfaclコマンドを実行しました。
1 2 |
# setfacl -R -m u:apache:rwx -m u:hogehoge:rwx app/cache app/logs # setfacl -dR -m u:apache:rwx -m u:hogehoge:rwx app/cache app/logs |
上記コマンドを実行後再度 “config.php” にアクセスすると”Problem”が消えているはずです。
これで、Symfony2を使用する準備が整いましたので、”Bypass configuration and go to the Welcome page”をクリックして開発用のページに行きます。
この時 “You are not allowed to access this file. Check app_dev.php for more information.”
と表示されたら、IPが許可されていないので、web/app_dev.php を web/config.php の時と同じように、IPの処理を削除するかアクセスしたいIPを許可リストに追加するかしてください。
これで、web/app_dev.php が表示されればインストール完了です。
次は、実際にSymfony2でページを作ってみます。