序章

SymfonyはフルスタックのオープンソースPHPフレームワークです。 他のPHPプロジェクトに簡単に統合できる独立したコンポーネントでよく知られています。 Symfonyフレームワークは、コマンドラインでのみ実行することを目的としたコンソールアプリケーションを含む、あらゆるサイズのPHPアプリケーションの構築に適しています。

このチュートリアルでは、Ubuntu14.04にSymfony2アプリケーションをインストール、構成、および開始する方法を説明します。

これは開発セットアップであり、Symfonyに精通し、最初のSymfonyプロジェクトの作成を開始することを目的としています。 真新しいSymfonyプロジェクトのセットアップとインストールについて説明します。

前提条件

このチュートリアルでは、次のものが必要になります。

ステップ1—PHPのインストール

始める前に、コマンドライン環境用にPHPをインストールする必要があります。 Symfonyには、アプリケーションの開発中にPHPの組み込みWebサーバーを簡単に実行および管理できるコンソールコマンドが付属しているため、ApacheやNginxなどのフル機能のWebサーバーをインストールする必要はありません。 これは、開発モードでアプリケーションを実行するためのシンプルで効率的な方法です。

まず、パッケージマネージャーのキャッシュを更新しましょう。

  1. sudo apt-get update

ここで、コマンドラインを介してPHPスクリプトを使用および実行するには、 php5-cli パッケージ。

  1. sudo apt-get install php5-cli

これで、サーバーにPHPがインストールされているはずです。 正常にインストールされたかどうかを確認するには、次のコマンドを実行します。

  1. php -v

そして、次のような出力が得られるはずです。

Output
PHP 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

ステップ2—php.iniでdate.timezoneを構成する

symfonyにはオプションが必要です date.timezone あなたに設定されています php.ini ファイル。 新しいサーバーでこのチュートリアルをテストしている場合、このオプションはまだ定義されていません。 その場合、Symfonyアプリケーションは実行されません。

サーバーを編集する必要があります php.ini このオプションが定義されていることを確認するためのファイル。 このファイルは次の場所にあります。 /etc/php5/cli/php.ini.

を開きます php.ini nanoまたはお気に入りのコマンドラインエディタを使用したファイル:

  1. sudo nano /etc/php5/cli/php.ini

を含む行を検索します date.timezone. を削除してディレクティブのコメントを解除します ; 行の先頭にサインインし、アプリケーションに適切なタイムゾーンを追加します。 この例では、 Europe/Amsterdam、ただし、でサポートされているタイムゾーンを選択できます。

変更されたphp.ini
[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone = Europe/Amsterdam

ファイルを保存して終了します。

ステップ3—Symfonyインストーラーを入手する

新しいSymfonyプロジェクトを作成する最も簡単な方法は、公式のSymfonyインストーラーを使用することです。 これは、新しいSymfonyアプリケーションのブートストラップを容易にするために作成された単純なスクリプトです。

次のコマンドはSymfonyインストーラーをダウンロードしてあなたの /usr/local/bin 道:

  1. sudo curl -LsS http://symfony.com/installer -o /usr/local/bin/symfony

次に、次のコマンドでスクリプトを実行可能にする必要があります。

  1. sudo chmod a+x /usr/local/bin/symfony

Symfonyインストーラーをテストするには、以下を実行します。

  1. 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 . . .

ステップ4—新しいSymfonyプロジェクトを作成する

これでSymfonyインストーラーが配置されたので、先に進んで新しいSymfonyプロジェクトを作成できます。 これは開発セットアップであり、PHPの組み込みWebサーバーを使用するため、ホームディレクトリ内にプロジェクトを作成することができます。 この例では、「myproject」という名前のプロジェクトを作成しますが、次のコマンドで独自のプロジェクト名を使用できます。

  1. cd ~
  2. symfony new myproject

これにより、新しいフォルダが作成されます myproject ホームディレクトリ内に、新しいSymfonyアプリケーションが含まれています。 このコマンドは、次のような出力を生成します。

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

ステップ5—Symfonyコンソールでアプリケーションを実行する

PHPに付属する組み込みのWebサーバー(PHP 5.4以降)は、開発中、テスト中、またはデモンストレーション用にPHPアプリケーションを実行するのに適しています。 ApacheやNginxのようなフル機能のWebサーバーをわざわざ構成する必要がないため、より摩擦の少ないエクスペリエンスが可能になります。

Symfonyには、PHPの組み込みWebサーバーの起動/停止プロセスを容易にするコンソールコマンドが付属しており、(Symfony 2.6以降)バックグラウンドでWebサーバーを実行することもできます。

SymfonyコンソールはCLIスクリプトであり、アプリケーションのビルドとテストに役立ついくつかのコマンドがあります。 PHPで記述された独自のコマンド含めることもできます。

Webサーバーは、コンソールコマンドを使用していつでも開始できます。 server:run. ただし、Symfonyコマンドで使用されるデフォルト設定は、 localhost ポートで 8000. 外部の開発/テストサーバーまたはローカル仮想マシンでこのチュートリアルを実行している場合は、コマンドに追加のパラメーターを指定して、Webサーバーに別のIPアドレスをリッスンするように指示する必要があります。

内部ネットワークと外部ネットワークの両方からの接続を許可するには、プロジェクトディレクトリ内から次のコマンドを実行します。

  1. php app/console server:run 0.0.0.0:8000
Output
Server 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 代わりにコマンド:

  1. php app/console server:start 0.0.0.0:8000
Output
Web server listening on http://0.0.0.0:8000

これにより、Webサーバーがバックグラウンドで実行され、ターミナルセッションが他のコマンドを実行できるようになります。 サーバーを停止するには、次を使用する必要があります。

  1. php app/console server:stop 0.0.0.0:8000
Output
Stopped the web server listening on http://0.0.0.0:8000

次の方法でWebサーバーのステータスを確認することもできます。

  1. php app/console server:status 0.0.0.0:8000

サーバーが実行されていない場合、これは取得する必要のある出力です。

Output
No web server is listening on http://0.0.0.0:8000

指定されたIPとポートでアクティブなサーバーが実行されている場合、次のような出力が得られるはずです。

Output
Web server still listening on http://0.0.0.0:8000

覚えておいてください server:stopserver:status コマンドには同じものを含める必要があります IPADDRESS:PORT サーバーを起動するときに使用した部分 server:start.

結論

Symfonyは、あらゆるサイズのアプリケーションを構築するのに適したフルスタックのPHPフレームワークです。 このチュートリアルでは、PHPの組み込みWebサーバーを使用してアプリケーションを実行する新しいUbuntu14.04サーバーにSymfony2をインストールして開始する方法を説明しました。 Symfonyを使用してPHPアプリケーションを構築する方法の詳細については、公式ドキュメントを参照してください。