start-installation.md 14.5 KB
Newer Older
1 2 3
Yii をインストールする
======================

4 5
Yii は二つの方法でインストールすることが出来ます。すなわち、[Composer](http://getcomposer.org/) を使うか、アーカイブファイルをダウンロードするかです。
前者がお薦めの方法です。と言うのは、一つのコマンドを走らせるだけで、新しい [エクステンション](structure-extensions.md) をインストールしたり、Yii をアップデートしたりすることが出来るからです。
6

7 8
Yii の標準的なインストールを実行すると、フレームワークとアプリケーションテンプレートの両方がダウンロードされてインストールされます。
アプリケーションテンプレートは、いくつかの基本的な機能、例えば、ログインやコンタクトフォームなどを実装した、動作する Yii アプリケーションです。
9 10
そのコードは推奨される方法に従って組織されています。
そのため、アプリケーションテンプレートは、あなたのプロジェクトのための良い開始点としての役割を果たしうるものです。
11 12

この節と後続のいくつかの節においては、いわゆる *ベーシックアプリケーションテンプレート* とともに Yii をインストールする方法、および、このテンプレート上に新しい機能を実装する方法を説明します。
13
Yii はもう一つ、[アドバンストアプリケーションテンプレート](tutorial-advanced-app.md) と呼ばれるテンプレートも提供しています。
14 15 16 17
こちらは、チーム開発環境において多層構造のアプリケーションを開発するときに使用する方が望ましいものです。

> Info|情報: ベーシックアプリケーションテンプレートは、ウェブアプリケーションの 90 パーセントを開発するのに適したものです。
  アドバンストアプリケーションテンプレートとの主な違いは、コードがどのように組織されているかという点にあります。
18
  あなたが Yii は初めてだという場合は、シンプルでありながら十分な機能を持っているベーシックアプリケーションテンプレートに留まることを強く推奨します。
19 20


21
Composer によるインストール <a name="installing-via-composer"></a>
22 23 24
---------------------------

まだ Composer をインストールしていない場合は、[getcomposer.org](https://getcomposer.org/download/) の指示に従ってインストールすることが出来ます。
25
Linux や Mac OS X では、次のコマンドを実行します。
26 27 28 29

    curl -s http://getcomposer.org/installer | php
    mv composer.phar /usr/local/bin/composer

30
Windows では、[Composer-Setup.exe](https://getcomposer.org/Composer-Setup.exe) をダウンロードして実行します。
31

32
何か問題が生じたときや、Composer の使い方に関してもっと学習したいときは、[Composer ドキュメント](https://getcomposer.org/doc/) を参照してください。
33 34

以前に Composer をインストールしたことがある場合は、確実に最新のバージョンを使うようにしてください。
35
Composer は `composer self-update` コマンドを実行してアップデートすることが出来ます。
36

37
Composer がインストールされたら、ウェブからアクセスできるフォルダで下記のコマンドを実行することによって Yii をインストールすることが出来ます。
38

Qiang Xue committed
39
    composer global require "fxp/composer-asset-plugin:1.0.0-beta4"
40 41
    composer create-project --prefer-dist yiisoft/yii2-app-basic basic

42
最初のコマンドは [composer アセットプラグイン](https://github.com/francoispluchino/composer-asset-plugin/) をインストールします。
43
これにより、Composer を通じて bower と npm の依存パッケージを管理することが出来るようになります。
44
このコマンドは一度だけ実行すれば十分です。
45 46 47
第二のコマンドは `basic` という名前のディレクトリに Yii をインストールします。
必要なら別のディレクトリ名を選ぶことも出来ます。

48
> Note|注意: インストール実行中に Composer が あなたの Github のログイン認証情報を求めることがあるかも知れません。
49
> これは、Comoser が依存パッケージの情報を Github から読み出すために十分な API レートを必要とするためで、普通にあることです。
50
> 詳細については、[Composer ドキュメント](https://getcomposer.org/doc/articles/troubleshooting.md#api-rate-limit-and-oauth-tokens) を参照してください。
51

52
> Tip|ヒント: Yii の最新の開発バージョンをインストールしたい場合は、[stability option](https://getcomposer.org/doc/04-schema.md#minimum-stability) を追加した次のコマンドを代りに使うことが出来ます。
53 54 55
>
>     composer create-project --prefer-dist --stability=dev yiisoft/yii2-app-basic basic
>
56
> 開発バージョンは動いているあなたのコードを動かなくするかもしれませんので、本番環境では使うべきでないことに注意してください。
57 58


59
アーカイブファイルからインストールする <a name="installing-from-archive-file"></a>
60 61
--------------------------------------

62
アーカイブファイルから Yii をインストールするには、三つの手順を踏みます。
63 64 65

1. [yiiframework.com](http://www.yiiframework.com/download/) からアーカイブファイルをダウンロードする。
2. ダウンロードしたファイルをウェブからアクセスできるフォルダーに展開する。
66
3. `config/web.php` ファイルを編集して、`cookieValidationKey` という構成情報の項目に秘密キーを入力する
67
   (Composer を使って Yii をインストールするときは、これは自動的に実行されます)。
68 69 70 71 72 73 74

   ```php
   // !!! 下記に(もし空白なら)秘密キーを入力する - これはクッキー検証のために必要
   'cookieValidationKey' => '秘密キーをここに入力',
   ```


75
他のインストールオプション <a name="other-installation-options"></a>
76 77
--------------------------

78
上記のインストール方法の説明は Yii のインストールの仕方を示すものですがそれは同時に直ちに動作する基本的なウェブアプリケーションを作成するものでもあります
79 80
これは規模の大小に関わらずほとんどのプロジェクトを開始するのに良い方法です
特にYii の学習を始めたばかりの場合にはこの方法が適しています
81

82
しかし他のインストールオプションも利用可能です
83

84 85 86 87
* コアフレームワークだけをインストールしアプリケーション全体を一から構築したい場合は[アプリケーションを一から構築する](tutorial-start-from-scratch.md)
  で説明されている指示に従うことが出来ます
* もっと洗練されたチーム開発環境により適したアプリケーションから開始したい場合は [アドバンストアプリケーションテンプレート](tutorial-advanced-app.md)
  をインストールすることを考慮することが出来ます
88 89


90
インストールを検証する <a name="verifying-installation"></a>
91 92
----------------------

93
インストール完了後インストールされた Yii アプリケーションにブラウザを使って下記の URL でアクセスすることが出来ます
94 95 96 97 98

```
http://localhost/basic/web/index.php
```

99
この URL は、あなたが Yii を ウェブサーバのドキュメントルートディレクトリ直下の `basic` という名前のディレクトリにインストールしたこと、
100
そして、ウェブサーバがローカルマシン (`localhost`) で走っていることを想定しています。
101
あなたのインストールの環境に合うように URL を変更する必要があるかもしれません。
102 103 104 105 106

![Yii のインストールが成功](images/start-app-installed.png)

ブラウザに上のような "おめでとう!" のページが表示されるはずです。
もし表示されなかったら、PHP のインストールが Yii の必要条件を満たしているかどうか、チェックしてください。
107
最低限の必要条件を満たしているかどうかは、次の方法のどちらかによってチェックすることが出来ます。
108

109
* ブラウザを使って URL `http://localhost/basic/requirements.php` にアクセスする。
110
* 次のコマンドを実行する。
111 112 113 114 115 116 117 118

  ```
  cd basic
  php requirements.php
  ```

Yii の最低必要条件を満たすように PHP のインストールを構成しなければなりません。
最も重要なことは、PHP 5.4 以上でなければならないということです。
119
また、アプリケーションがデータベースを必要とする場合は、[PDO PHP 拡張](http://www.php.net/manual/ja/pdo.installation.php) および対応するデータベースドライバ (MySQL データベースのための `pdo_mysql` など) をインストールしなければなりません。
120 121


122
ウェブサーバを構成する <a name="configuring-web-servers"></a>
123 124
----------------------

125
> Info|情報: もし Yii の試運転をしているだけで、本番サーバに配備する意図がないのであれば、当面、この項は飛ばしても構いません。
126

127
上記の説明に従ってインストールされたアプリケーションは、[Apache HTTP サーバ](http://httpd.apache.org/) と [Nginx HTTP サーバ](http://nginx.org/) のどちらでも、また、Windows、Mac OS X、Linux のどれでも、PHP 5.4 以上を走らせている環境であれば、そのままの状態で動作するはずです。
128 129 130
Yii 2.0 は、また、facebook の [HHVM](http://hhvm.com/) とも互換性があります。
ただし HHVM がネイティブの PHP とは異なる振舞いをする特殊なケースもいくつかありますので、HHVM を使うときはいくらか余分に注意を払う必要があります。

131
本番用のサーバでは、`http://www.example.com/basic/web/index.php` の代りに `http://www.example.com/index.php` という URL でアプリケーションにアクセス出来るようにウェブサーバを設定したいでしょう。
132
そういう設定をするためには、ウェブサーバのドキュメントルートを `basic/web` フォルダに向けることが必要になります。
133
また、[ルーティングと URL 生成](runtime-routing.md) の節で述べられているように、URL から `index.php` を隠したいとも思うでしょう。
134 135
この節では、これらの目的を達するために Apache または Nginx サーバをどのように設定すれば良いかを学びます。

136 137
> Info|情報: `basic/web` をドキュメントルートに設定することは、`basic/web` の兄弟ディレクトリに保存されたプライベートなアプリケーションコードや公開できないデータファイルにエンドユーザがアクセスすることを防止することにもなります。
`basic/web` 以外のフォルダに対するアクセスを拒否することはセキュリティ強化の一つです。
138

139
> Info|情報: あなたがウェブサーバの設定を修正する権限を持たない共用ホスティング環境でアプリケーションが走る場合であっても、セキュリティ強化のためにアプリケーションの構造を調整することがまだ出来ます。
140
詳細については、[共有ホスティング環境](tutorial-shared-hosting.md) の節を参照してください。
141 142


143
### 推奨される Apache の構成 <a name="recommended-apache-configuration"></a>
144 145 146 147 148 149 150 151 152 153 154

下記の設定を Apache の `httpd.conf` ファイルまたはバーチャルホスト設定の中で使います。
`path/to/basic/web` の部分を `basic/web` の実際のパスに置き換えなければならないことに注意してください。

```
# ドキュメントルートを "basic/web" に設定
DocumentRoot "path/to/basic/web"

<Directory "path/to/basic/web">
    # 綺麗な URL をサポートするために mod_rewrite を使う
    RewriteEngine on
155
    # ディレクトリかファイルが存在する場合は、リクエストをそのまま通す
156 157
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
158
    # そうでなければ、リクエストを index.php に送付する
159 160 161 162 163 164 165
    RewriteRule . index.php

    # ... 他の設定 ...
</Directory>
```


166
### 推奨される Nginx の構成 <a name="recommended-nginx-configuration"></a>
167

168 169 170
[Nginx](http://wiki.nginx.org/) を使うためには、PHP を [FPM SAPI](http://jp1.php.net/install.fpm) としてインストールしなければなりません。
下記の Nginx の設定を使うことができます。
`path/to/basic/web` の部分を `basic/web` の実際のパスに置き換え、`mysite.local` を実際のサーバのホスト名に置き換えてください。
171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191

```
server {
    charset utf-8;
    client_max_body_size 128M;

    listen 80; ## listen for ipv4
    #listen [::]:80 default_server ipv6only=on; ## listen for ipv6

    server_name mysite.local;
    root        /path/to/basic/web;
    index       index.php;

    access_log  /path/to/basic/log/access.log main;
    error_log   /path/to/basic/log/error.log;

    location / {
        # 本当のファイルでないものは全て index.php にリダイレクト
        try_files $uri $uri/ /index.php?$args;
    }

192
    # 存在しない静的ファイルの呼び出しを Yii に処理させたくない場合はコメントを外す
193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210
    #location ~ \.(js|css|png|jpg|gif|swf|ico|pdf|mov|fla|zip|rar)$ {
    #    try_files $uri =404;
    #}
    #error_page 404 /404.html;

    location ~ \.php$ {
        include fastcgi.conf;
        fastcgi_pass   127.0.0.1:9000;
        #fastcgi_pass unix:/var/run/php5-fpm.sock;
        try_files $uri =404;
    }

    location ~ /\.(ht|svn|git) {
        deny all;
    }
}
```

211
この構成を使う場合は、多数の不要な `stat()` システムコールを避けるために、`php.ini` ファイルで `cgi.fix_pathinfo=0` を同時に設定しておくべきです。
212

213
また、HTTPS サーバを走らせている場合には、安全な接続であることを Yii が正しく検知できるように、`fastcgi_param HTTPS on;` を追加しなければならないことにも注意を払ってください。