前書き
symfonyはフルスタックのオープンソースPHPフレームワークです。 他のPHPプロジェクトに簡単に統合できる独立したコンポーネントで有名です。 Symfonyフレームワークは、コマンドラインでのみ実行されるコンソールアプリケーションを含む、あらゆるサイズのPHPアプリケーションの構築に適しています。
このチュートリアルでは、Ubuntu 14.04でSymfony 2アプリケーションをインストール、構成、および開始する方法について説明します。
[.note]#これはdevelopmentの設定であり、Symfonyに慣れ、最初のSymfonyプロジェクトの作成を開始することを目的としています。 真新しいSymfonyプロジェクトのセットアップとインストールについて説明します。
#
前提条件
このチュートリアルでは、次のものが必要です。
-
Ubuntu 14.04サーバー1台
-
Initial Server Setup tutorialに従って設定できるsudo非rootユーザー
[[step-1 -—- installing-php]] ==ステップ1—PHPのインストール
開始する前に、コマンドライン環境用にPHPをインストールする必要があります。 Symfonyにはコンソールコマンドが付属しているため、アプリケーションの開発中にPHPの組み込みWebサーバーを簡単に実行および管理できるため、ApacheやNginxなどのフル機能のWebサーバーをインストールする必要はありません。 開発モードでアプリケーションを実行するためのシンプルで効率的な方法です。
まず、パッケージマネージャーのキャッシュを更新しましょう。
sudo apt-get update
ここで、コマンドラインからPHPスクリプトを使用して実行するには、php5-cli
パッケージをインストールします。
sudo apt-get install php5-cli
サーバーにPHPがインストールされているはずです。 正常にインストールされたかどうかを確認するには、次を実行します:
php -v
そして、次のような出力が得られるはずです。
OutputPHP 5.5.9-1ubuntu4.11 (cli) (built: Jul 2 2015 15:23:08)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2014 Zend Technologies
with Zend OPcache v7.0.3, Copyright (c) 1999-2014, by Zend Technologies
[[step-2 -—- configuring-date-timezone-in-php-ini]] ==ステップ2—php.iniでdate.timezoneを構成する
symfonyでは、オプションdate.timezone
がphp.ini
ファイルに設定されている必要があります。 新しいサーバーでこのチュートリアルをテストする場合、このオプションはまだ定義されていません。 その場合、Symfonyアプリケーションは実行されません。
サーバーのphp.ini
ファイルを編集して、このオプションが定義されていることを確認する必要があります。 このファイルは/etc/php5/cli/php.ini
に配置する必要があります。
nanoまたはお気に入りのコマンドラインエディターを使用して、php.ini
ファイルを開きます。
sudo nano /etc/php5/cli/php.ini
date.timezone
を含む行を検索します。 行の先頭にある;
記号を削除してディレクティブのコメントを解除し、アプリケーションに適切なタイムゾーンを追加します。 この例ではEurope/Amsterdam
を使用しますが、任意のsupported timezoneを選択できます。
変更されたphp.ini
[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone = Europe/Amsterdam
ファイルを保存して終了します。
[[step-3 -—- getting-the-symfony-installer]] ==ステップ3—Symfonyインストーラーを取得する
新しいSymfonyプロジェクトを作成する最も簡単な方法は、公式のSymfonyインストーラーを使用することです。 新しいSymfonyアプリケーションのブートストラップを容易にするために作成されたシンプルなスクリプトです。
次のコマンドはSymfonyインストーラーをダウンロードし、/usr/local/bin
パスに配置します。
sudo curl -LsS http://symfony.com/installer -o /usr/local/bin/symfony
次に、次のコマンドでスクリプトを実行可能にする必要があります。
sudo chmod a+x /usr/local/bin/symfony
Symfonyインストーラーをテストするには、次を実行します:
symfony
出力は次のようになります。
Output
Symfony Installer (1.1.7)
=========================
This is the official installer to start new projects based on the
Symfony full-stack framework.
To create a new project called blog in the current directory using
the latest stable version of Symfony, execute the following command:
symfony new blog
. . .
[[step-4 -—- creating-a-new-symfony-project]] ==ステップ4—新しいSymfonyプロジェクトを作成する
Symfonyインストーラーが準備できたので、次に進み、新しいSymfonyプロジェクトを作成できます。 これは開発セットアップであり、PHPの組み込みWebサーバーを使用するため、ホームディレクトリ内でプロジェクトを作成できます。 この例では、「myproject」という名前のプロジェクトを作成しますが、次のコマンドで独自のプロジェクト名を使用できます。
cd ~
symfony new myproject
これにより、ホームディレクトリ内に新しいSymfonyアプリケーションを含む新しいフォルダmyproject
が作成されます。 コマンドは、次のような出力を生成します。
Output
Downloading Symfony...
Preparing project...
✔ Symfony 2.7.3 was successfully installed. Now you can:
* Change your current directory to /home/sammy/myproject
* Configure your application in app/config/parameters.yml file.
* Run your application:
1. Execute the php app/console server:run command.
2. Browse to the http://localhost:8000 URL.
* Read the documentation at http://symfony.com/doc
[[step-5 -—- running-the-application-with-the-symfony-console]] ==ステップ5—Symfonyコンソールでアプリケーションを実行する
PHPに付属する組み込みWebサーバー(PHP 5.4以降)は、開発中のPHPアプリケーションの実行、テスト、またはデモに適しています。 ApacheやNginxのようなフル機能のWebサーバーを設定する必要がないため、よりスムーズな操作が可能になります。
symfonyには、PHPの組み込みWebサーバーの起動/停止プロセスを容易にするコンソールコマンドが付属しています。また、(Symfony 2.6以降)バックグラウンドでWebサーバーを実行できます。
Symfonyコンソールは、アプリケーションの構築とテストに役立ついくつかのコマンドを備えたCLIスクリプトです。 PHPでinclude your own commandsを書くこともできます!
Webサーバーは、コンソールコマンドserver:run
を使用していつでも開始できます。 ただし、Symfonyコマンドで使用されるデフォルト設定は、ポート8000
のlocalhost
への接続のみを受け入れます。 外部の開発/テストサーバーまたはローカル仮想マシンでこのチュートリアルを実行している場合は、コマンドに追加のパラメーターを指定して、Webサーバーに別のIPアドレスをリッスンするように指示する必要があります。
内部ネットワークと外部ネットワークの両方からの接続を許可するには、プロジェクトディレクトリ内から次のコマンドを実行します。
php app/console server:run 0.0.0.0:8000
OutputServer running on http://0.0.0.0:8000
Quit the server with CONTROL-C.
これにより、PHPの組み込みWebサーバーが起動し、ポート8000
ですべてのネットワークインターフェイスをリッスンします。
これで、ブラウザでhttp://your_server_ip:8000
を指定すると、アプリケーションにアクセスできるようになります。 次のようなページが表示されるはずです。
コマンドは、CTRL+C
で実行を終了するまで、アクティブな端末で実行され続けます。 Webサーバーをバックグラウンドで実行するには、代わりにserver:start
コマンドを使用する必要があります。
php app/console server:start 0.0.0.0:8000
OutputWeb server listening on http://0.0.0.0:8000
これにより、Webサーバーがバックグラウンドで実行され、ターミナルセッションが他のコマンドを実行できるようになります。 サーバーを停止するには、次を使用する必要があります。
php app/console server:stop 0.0.0.0:8000
OutputStopped the web server listening on http://0.0.0.0:8000
以下を使用して、Webサーバーのステータスを確認することもできます。
php app/console server:status 0.0.0.0:8000
サーバーが実行されていない場合、これは取得する必要がある出力です。
OutputNo web server is listening on http://0.0.0.0:8000
指定されたIPおよびポートで実行されているアクティブなサーバーがある場合、次のような出力が得られます。
OutputWeb server still listening on http://0.0.0.0:8000
server:stop
およびserver:status
コマンドには、server:start
でサーバーを起動するときに使用したものと同じIPADDRESS:PORT
部分を含める必要があることに注意してください。
結論
Symfonyは、あらゆるサイズのアプリケーションの構築に適したフルスタックのPHPフレームワークです。 このチュートリアルでは、PHPの組み込みWebサーバーを使用してアプリケーションを実行する新しいUbuntu 14.04サーバーにSymfony 2をインストールして開始する方法を説明しました。 Symfonyを使用してPHPアプリケーションを構築する方法の詳細については、それらのofficial documentationを参照してください。