|
|
@ -2,17 +2,39 @@ |
|
|
|
==================== |
|
|
|
==================== |
|
|
|
|
|
|
|
|
|
|
|
共有ホスティング環境では、たいてい、構成やディレクトリ構造について、大きな制約があります。 |
|
|
|
共有ホスティング環境では、たいてい、構成やディレクトリ構造について、大きな制約があります。 |
|
|
|
それでも、ほとんどの場合、Yii 2.0 を共有ホスティング環境で走らせることは可能です。 |
|
|
|
それでも、ほとんどの場合、少し調整をすれば、Yii 2.0 を共有ホスティング環境で走らせることが可能です。 |
|
|
|
|
|
|
|
|
|
|
|
ベーシックアプリケーションを配備する |
|
|
|
## ベーシックプロジェクトテンプレートを配備する |
|
|
|
------------------------------------ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
通例、一つのウェブルートしかありませんので、ベーシックプロジェクトテンプレートを使用することを推奨します。 |
|
|
|
通例、共有ホスティング環境では、一つのウェブルートしかありませんので、可能であればベーシックプロジェクトテンプレートを使用して下さい。 |
|
|
|
[Yii をインストールする](start-installation.md) の節を参照して、プロジェクトテンプレートをローカル環境にインストールしてください。 |
|
|
|
まず、[Yii をインストールする](start-installation.md) の節を参照して、プロジェクトテンプレートをローカル環境にインストールします。 |
|
|
|
|
|
|
|
そして、ローカル環境でアプリケーションが動くようにした後で、共有ホスティング環境でホスト出来るようにいくつかの修正を行います。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### ウェブルートの名前を変える <span id="renaming-webroot"></span> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
FTP またはその他の手段であなたの共有ホストに接続します。おそらく、下記のようなディレクトリが見えるでしょう。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
``` |
|
|
|
|
|
|
|
config |
|
|
|
|
|
|
|
logs |
|
|
|
|
|
|
|
www |
|
|
|
|
|
|
|
``` |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
上記で `www` はウェブサーバのウェブルートディレクトリです。 |
|
|
|
|
|
|
|
別の名前かもしれません。よくある名前は、`www`、`htdocs`、`public_html` です。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
私たちのベーシックプロジェクトテンプレートではウェブルートの名前は `web` になっています。 |
|
|
|
|
|
|
|
あなたのウェブサーバにアップロードする前に、ローカルのウェブルートの名前をあなたのサーバに適合するように変更します。 |
|
|
|
|
|
|
|
すなわち、`web` から `www` や `public_html` など、何であれ、あなたの共有ホストのウェブルートの名前に変更します。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### FTP ルートディレクトリは書き込み可能 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ルートレベルのディレクトリ、すなわち、`config`、`logs`、`www` があるディレクトリに対して書き込みが出来るのであれば、 |
|
|
|
|
|
|
|
`assets`、`commands` などをそのままルートレベルのディレクトリにアップロードします。 |
|
|
|
|
|
|
|
|
|
|
|
### ウェブサーバのための追加設定 <span id="add-extras-for-webserver"></span> |
|
|
|
### ウェブサーバのための追加設定 <span id="add-extras-for-webserver"></span> |
|
|
|
|
|
|
|
|
|
|
|
使用されているウェブサーバが Apache である場合は、次の内容を持つ `.htaccess` ファイルを `web` (`index.php` があるディレクトリ) に追加する必要があります。 |
|
|
|
使用されているウェブサーバが Apache である場合は、次の内容を持つ `.htaccess` ファイルを `web` (または `public_html` など、要するに、`index.php` があるディレクトリ) に追加する必要があります。 |
|
|
|
|
|
|
|
|
|
|
|
``` |
|
|
|
``` |
|
|
|
Options +FollowSymLinks |
|
|
|
Options +FollowSymLinks |
|
|
@ -30,87 +52,17 @@ RewriteRule . index.php |
|
|
|
|
|
|
|
|
|
|
|
nginx の場合は、追加の構成ファイルは必要がない筈です。 |
|
|
|
nginx の場合は、追加の構成ファイルは必要がない筈です。 |
|
|
|
|
|
|
|
|
|
|
|
### ウェブルートの名前を変える <span id="renaming-webroot"></span> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
FTP またはその他の手段であなたの共有ホストに接続したとき、下記のようなディレクトリが見えれば、あなたはきっとラッキーです。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
``` |
|
|
|
|
|
|
|
config |
|
|
|
|
|
|
|
logs |
|
|
|
|
|
|
|
www |
|
|
|
|
|
|
|
``` |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
上記で `www` はウェブサーバのディレクトリルート (すなわち、ウェブルート) です。 |
|
|
|
|
|
|
|
別の名前かもしれません。よくある名前は、`www`、`htdocs`、`public_html` です。 |
|
|
|
|
|
|
|
ベーシックプロジェクトテンプレートではウェブルートの名前は `web` になっていますので、アップロードする前に、これをホストのウェブルートの名前に変更する必要があります。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### FTP ルートディレクトリは書き込み可能 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ルートレベルのディレクトリ、すなわち、`config`、`logs`、`www` があるディレクトリに対して書き込みが出来るのであれば、`assets`、`commands` などをそのままアップロードします。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### 必要条件をチェックする |
|
|
|
### 必要条件をチェックする |
|
|
|
|
|
|
|
|
|
|
|
Yii を走らせるためには、ホストは Yii の必要条件を満たさなければなりません。 |
|
|
|
Yii を走らせるためには、あなたのウェブサーバは Yii の必要条件を満たさなければなりません。 |
|
|
|
最低限の必要条件は PHP 5.4 です。 |
|
|
|
最低限の必要条件は PHP 5.4 です。 |
|
|
|
残りの条件をチェックするために、`requirements.php` をルートディレクトリからウェブルートディレクトリにコピーして、`http://example.com/requirements.php` という URL を使ってブラウザ経由で走らせます。 |
|
|
|
必要条件をチェックするために、`requirements.php` をルートディレクトリからウェブルートディレクトリにコピーして、 |
|
|
|
|
|
|
|
`http://example.com/requirements.php` という URL を使ってブラウザ経由で走らせます。 |
|
|
|
後でファイルを削除するのを忘れないでください。 |
|
|
|
後でファイルを削除するのを忘れないでください。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
アドバンストアプリケーションを配備する |
|
|
|
## アドバンストプロジェクトテンプレートを配備する |
|
|
|
-------------------------------------- |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
アドバンストアプリケーションを共有ホストに配備するのは、ベーシックアプリケーションを配備するのに比べると、少しトリッキーになります。 |
|
|
|
|
|
|
|
なぜなら、アドバンストアプリケーションは、共有ホストが通常は持っていない二つのウェブルートを持つからです。 |
|
|
|
|
|
|
|
このため、構造を少し修正します。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### エントリスクリプトを単一のウェブルートに移動する |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
まずは、ウェブルートディレクトリが必要です。 |
|
|
|
アドバンストプロジェクトテンプレートを共有ホストに配備することは、ベーシックプロジェクトテンプレートを配備するのに比べると少しトリッキーにはなりますが、可能です。 |
|
|
|
上記の [ウェブルートの名前を変える](#renaming-webroot) で説明したように、あなたのホストのウェブルートに合うように名前を付けてください。 |
|
|
|
[アドバンストプロジェクトテンプレートのドキュメント](https://github.com/yiisoft/yii2-app-advanced/blob/master/docs/guide-ja/topic-shared-hosting.md) |
|
|
|
次に、以下のような構造を作成します。 |
|
|
|
で説明されている指示に従って下さい。 |
|
|
|
|
|
|
|
|
|
|
|
``` |
|
|
|
|
|
|
|
www |
|
|
|
|
|
|
|
admin |
|
|
|
|
|
|
|
backend |
|
|
|
|
|
|
|
common |
|
|
|
|
|
|
|
console |
|
|
|
|
|
|
|
environments |
|
|
|
|
|
|
|
frontend |
|
|
|
|
|
|
|
... |
|
|
|
|
|
|
|
``` |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
`www` がフロントエンドディレクトリになりますので、`frontend/web` の内容をそこに移動します。 |
|
|
|
|
|
|
|
同じように、`backend/web` の内容を `www/admin` に移動します。 |
|
|
|
|
|
|
|
どちらの場合も、`index.php` および `index-test.php` の中のパスを修正する必要があります。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### セッションとクッキーを分離する |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
元来は、バックエンドとフロントエンドは異なるドメインで走ることを意図されています。 |
|
|
|
|
|
|
|
両方を同じドメインに移動すると、二つが同じクッキーを共有して干渉することになります。 |
|
|
|
|
|
|
|
これを修正するために、バックエンドのアプリケーション構成 `backend/config/main.php` を以下のように修正します。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
```php |
|
|
|
|
|
|
|
'components' => [ |
|
|
|
|
|
|
|
'request' => [ |
|
|
|
|
|
|
|
'csrfParam' => '_backendCSRF', |
|
|
|
|
|
|
|
'csrfCookie' => [ |
|
|
|
|
|
|
|
'httpOnly' => true, |
|
|
|
|
|
|
|
'path' => '/admin', |
|
|
|
|
|
|
|
], |
|
|
|
|
|
|
|
], |
|
|
|
|
|
|
|
'user' => [ |
|
|
|
|
|
|
|
'identityCookie' => [ |
|
|
|
|
|
|
|
'name' => '_backendIdentity', |
|
|
|
|
|
|
|
'path' => '/admin', |
|
|
|
|
|
|
|
'httpOnly' => true, |
|
|
|
|
|
|
|
], |
|
|
|
|
|
|
|
], |
|
|
|
|
|
|
|
'session' => [ |
|
|
|
|
|
|
|
'name' => 'BACKENDSESSID', |
|
|
|
|
|
|
|
'cookieParams' => [ |
|
|
|
|
|
|
|
'path' => '/admin', |
|
|
|
|
|
|
|
], |
|
|
|
|
|
|
|
], |
|
|
|
|
|
|
|
], |
|
|
|
|
|
|
|
``` |
|
|
|
|
|
|
|