WordPressやSymfonyのTipsを中心にアニメや日常の出来事について語ります。
メニュー

blogチュートリアル 基本(1) Symfony2のインストール

この記事は約6分47秒で読めます

Symfony2 blogチュートリアル Symfony インストール
ゆっきー
ども、カフェブロガーの悠木です。 お気に入りのカフェはドトールコーヒーです。 14時からの限定スイーツ「シューシャポー」が大好きです。
2015.10.30 更新 Symfony2.7.2 → Symfony2.7.6

PHPの大人気フレームワーク「Symfony2」のインストール方法をご紹介します。
今回ご紹介するSymfony2.7は長期サポートバージョン(LTS)です。

LTSバージョンはバグ修正期間として3年間、セキュリティ問題のみの修正期間として4年間サポートされます。
ちなみに通常のマイナーバージョンは、バグ修正期間として8ヶ月間、セキュリティ問題のみの修正期間として14ヶ月間メンテナンスされます。

Symfony2.7は2015年5月~2019年5月までサポートされます。詳しくはリリースプロセスを参照。
これから始めるなら2.7.xで始めることを推奨します!

Symfony2 blogチュートリアル

日本Symfonyユーザー会さんのblogチュートリアルに沿って、進めていきたいと思います。

* リンクなしの記事はまだ書いてません。追々書きます。この記事をシェアしてくれたらモチベーションあがります!

* まだ書いてない記事は気分によって順番が前後する場合もあります。


動作環境

Mac環境

  • Mac: OS X EI Capitan 10.11.1
  • PHP: 5.6.10
  • MySQL: 5.6.13
  • Apache: 2.4.16
  • MAMP: 3.4
  • Symfony: 2.7.6

Windows環境

  • Windows: 7 Professional
  • PHP: 5.5.9
  • MySQL: 5.6.16
  • Apache: 2.4.7
  • Symfony: 2.7.6

さくらのVPS(CentOS)環境

CentOSはMacと同じコマンドで確認できました。

  • CentOS: 7.1.1503
  • PHP: 7.0.0RC7
  • MySQL: 5.6.27
  • Nginx: 1.6.3
  • Symfony: 2.7.6

Comoserとは

ComoserとはPHPの依存関係を管理するツールです。
Symfony2ではこのComposerを使ってBundleを管理します。

composer.phar 本体
composer.json 設定ファイル
composer.lock 設定ファイル

composer.jsonファイルに必要なBundle名を追記してアップデートすると必要となるBundleを取得してくれます。
composer.lockファイルがあると差分だけ更新してくれます。

Composerのダウンロード

Composerの公式サイトからダウンロードできます。
今回はコマンドからダウンロード、インストール、パス設定まで行います。

Composerのダウンロード&インストールコマンド

MacはTerminal、Windowsはコマンドプロンプトを起動して次のコマンドを実行してください。
コマンドは公式サイト(Introduction)に書かれているものを参考にしています。

上記のコマンドでcomposer.pharをパスが通ったディレクトリに配置します。
Windowsはバッチでcomposerを実行させてあげる必要があるのでバッチも作成してます。

ゆっきー
Windowsではcomposer.pharをそのまま実行してくれないので、バッチファイルから実行させます。

Composerのバージョン確認

Composerのバージョンを確認するには下記のコマンドを実行します。

ゆっきー
バージョンの確認ができたらComposerのインストールは完了です。

Composer自身のアップデート

Composer自身のアップデートは下記のコマンドです。
最新版がインストールされてるはずです。

元々Composerを導入していた人は下記のコマンドで最新版にアップデートしてください。

Symfony2のインストール要件

Symfony2.7のインストールに必須及び任意の要件は次のとおりです。
必須条件を必ず満たしていることを確認して下さい。

チェックコマンドで確認できます。

必須要件

  • PHP 5.3.9 か、それ以降のバージョンがインストールされていること
  • json が有効になっていること
  • ctype が有効になっていること
  • php.ini に date.timezone の設定があること

任意要件

  • PHP-XML モジュールがインストールされていること
  • libxml の 2.6.21 か、それ以降のバージョンがインストールされていること
  • PHP tokenizer が有効化されていること
  • mbstring 関数群が有効化されていること
  • iconv が有効化されていること
  • POSIX 拡張が有効化されていること( *nix 系OSの場合)
  • ICU 4以上にリンクした Intl がインストールされていること
  • APC 3.0.17以上または他の OPCODE キャッシュシステムがインストールされていること
  • php.ini の推奨設定は次のとおりです
    • short_open_tag = off
    • magic_quotes_gpc = off
    • register_globals = off
    • session.auto_start = off

Symfony2.7インストール

Symfonyプロジェクトをインストールするディレクトリを作成します。
今回は「blog」ディレクトリを新しく作成しました。

MAMP, XAMPPの例です。
例ではhtdocs配下にプロジェクトルートディレクトリを作成してます。

作成したプロジェクトルートディレクトリをカレントディレクトリにしてください。

Symfonyインストールコマンド

Symfony2をインストールするには下記コマンドを実行します。
プロジェクトルートディレクトリで実行してください。

対話形式で質問があるので次のように入力します。
打ち間違えてもあとで変更できるので気にしないでください。

全部空Enterでも問題ありません。

インストール時のオプションでバージョン指定ができます。
「2.7.*」の場合は2.7系の最新版がインストールされます。

Symfony2.7をインストールのチェック

checkコマンドでSymfony2のインストール要件を満たしているかチェックしてくれます。

[OK]と出てくればok
php.iniのパスも表示されるので確認してください。

パーミッションエラーが出なかった場合はSymfonyのアップデートに進みます。

パーミッションの設定

Symfony2インストール時のよくある問題としてパーミッションエラーが起こることがあります。

app/cache, app/logsディレクトリは「Webサーバー実行ユーザー」と「コマンドライン実行ユーザー」のいずれからも書き込み可能でなければなりません。
Windows環境では特にパーミッションは意識しなくて大丈夫だと思います。

開発時は下記のコマンドでパーミッションの設定を777にしてます。

本番環境などちゃんとしたパーミッション設定が必要であれば下記の魔法のコマンドを実行します。

*1 chmod +a コマンドをサポートしているシステム上で ACL を使う

このコマンドでお使いの環境のWebサーバーユーザーを検出し、APACHEUSERにセットしています。

*2 chmod +a コマンドをサポートしていないシステム上で ACL を使う

*3 ACL を使わない方法 (非推奨)

app/consoleweb/app.phpweb/app_dev.php
ファイルの先頭に記述します。

umask の変更はスレッドセーフではないため、ACL で設定可能な場合は ACL を使うことをおすすめします。

Symfonyアップデートコマンド

composer.json設定ファイルを参照して、差分を更新してくれるコマンドです。
他のライブラリを追加、削除したときは必ず実行するので覚えておきましょう。

更新されたくないライブラリはバージョンを個別に指定してください。

composer.lockファイルを参照して差分をアップデートしてくれます。
このファイルを削除すると最初からアップデートになるので少し時間がかかると思います。

Symfonyのバージョン確認コマンド

Symfony2ウェブ設定画面を表示する

ApacheやNginxなどのWebサーバーを起動し、次のURLにアクセスしてください。

http://localhost/blog/web/config.php

Symfony2 web/config.php

こんな画面が表示されればokです。
大きな問題(MAJOR PROBLEMS)や勧告(RECOMMENDATIONS)が表示されてしまった場合は下記の記事を参考にしてください。
開発環境であればそのまま進めてしまっても構わないです。

外部アクセスした際にエラーが表示された場合

You are not allowed to access this file. Check app_dev.php for more information.

web/config.phpは外部からのアクセスは通常、拒否されます。
さくらのVPSなど外部からアクセスしている場合は次の行をコメント化してください。

4行目あたりに自信のIPアドレスを追加するのがベストですが、開発環境ですのでとりあえずコメント化します。
運用するときはこのコメントは削除してください。

ブラウザからフロントコントローラー(app_dev.php)にアクセスしてみる

次のURLにアクセスしてください。

http://localhost/blog/web/app_dev.php/

これはSymfonyインストール時に自動生成された「AppBundle」が画面を表示しています。

app/config/routing.yml
まずはルーティング設定によりDefaultControllerが呼ばれます。

src/AppBundle/Controller/DefaultController.php
indexAction()関数が呼ばれて、

app/Resources/views/default/index.html.twig
Twigテンプレートが描画されています。

外部アクセスした際にエラーが表示された場合

開発用のフロントコントローラーですので、こちらも外部からアクセスはできなくなっています。

You are not allowed to access this file. Check app_dev.php for more information.

とりあえず、アクセスするため上記の箇所をコメント化します。

コマンドまとめ

説明不要な人向けにコマンドリストを作りました。

Symfony2のアンインストール方法

プロジェクトごとディレクトリを削除してください。

参考サイト

以上、Symfony2.7のインストール手順の解説でした。

Symfony2,PHP オススメ書籍

関連記事

  1. MySQL
  2. symfony2
  3. Symfony2 blogチュートリアル 04 バンドルの作成
  4. symfony2
  5. symfony2
  6. symfony2

コメントをお待ちしております

PR

カテゴリー