このプロジェクト・テンプレートが要求する最低限の必要条件は、あなたのウェブ・サーバが PHP 5.6.0 をサポートしていることです。
Composer を持っていない場合は、 決定版ガイドの Yii をインストールする のセクションの指示に従ってインストールしてください。
Composer がインストールされていれば、次のコマンドを使ってアプリケーションをインストールすることが出来ます。
composer create-project --prefer-dist yiisoft/yii2-app-advanced yii-application
このコマンドは yii-application
という名前のディレクトリにアドバンスト・アプリケーションをインストールします。
望むなら別のディレクトリ名を選ぶことも出来ます。
Bower と NPM の依存パッケージを Composer によって管理するために asset-packagist を使っています。 以前のバージョンのように asset-plugin を使うことも出来ますが、 動作は低速です。
yiiframework.com からダウンロードしたアーカイブ・ファイルをウェブ・ルートの直下、
advanced
と名付けられたディレクトリに解凍します。
その後は、次の項に記載されている指示に従ってください。
アプリケーションをインストールした後に、インストールされたアプリケーションの初期設定をするために、次の各ステップを実行しなければなりません。 これらは全体で一度だけやれば十分です。
コンソール・ターミナルを開き、init
コマンドを実行して環境として dev
を選択します。
/path/to/php-bin/php /path/to/yii-application/init
スクリプトで自動化する場合は、非対話モードで init
を実行します。
/path/to/php-bin/php /path/to/yii-application/init --env=Development --overwrite=All --delete=All
新しいデータベースを作成し、それに従って /path/to/yii-application/common/config/main-local.php
の components['db']
の構成情報を修正します。
コンソール・ターミナルを開き、/path/to/php-bin/php /path/to/yii-application/yii migrate
というコマンドでマイグレーションを適用します。
ウェブ・サーバのドキュメント・ルートを設定します。
/path/to/yii-application/frontend/web/
、URL は http://frontend/
を使用/path/to/yii-application/backend/web/
、URL は http://backend/
を使用Apache の場合は、次のように設定することが出来ます。
<VirtualHost *:80>
ServerName frontend.test
DocumentRoot "/path/to/yii-application/frontend/web/"
<Directory "/path/to/yii-application/frontend/web/">
# 綺麗な URL をサポートするために mod_rewrite を使用
RewriteEngine on
# ディレクトリまたはファイルがある場合は、リクエストを直接使用
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# そうでなければ、index.php にリクエストを引き渡す
RewriteRule . index.php
# index.php をインデックス・ファイルとして使用
DirectoryIndex index.php
# ... その他の設定 ...
# Apache 2.4
Require all granted
## Apache 2.2
# Order allow,deny
# Allow from all
</Directory>
</VirtualHost>
<VirtualHost *:80>
ServerName backend.test
DocumentRoot "/path/to/yii-application/backend/web/"
<Directory "/path/to/yii-application/backend/web/">
# 綺麗な URL をサポートするために mod_rewrite を使用
RewriteEngine on
# ディレクトリまたはファイルがある場合は、リクエストを直接使用
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# そうでなければ、index.php にリクエストを引き渡す
RewriteRule . index.php
# index.php をインデックス・ファイルとして使用
DirectoryIndex index.php
# ... その他の設定 ...
# Apache 2.4
Require all granted
## Apache 2.2
# Order allow,deny
# Allow from all
</Directory>
</VirtualHost>
nginx の場合は、次のように設定することが出来ます。
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 frontend.test;
root /path/to/yii-application/frontend/web/;
index index.php;
access_log /path/to/yii-application/log/frontend-access.log;
error_log /path/to/yii-application/log/frontend-error.log;
location / {
# 本当のファイルでないものは全て index.php にリダイレクト
try_files $uri $uri/ /index.php$is_args$args;
}
# 存在しない静的なファイルの呼び出しを Yii が処理するのを防ぐためには、コメントをはずす
#location ~ \.(js|css|png|jpg|gif|swf|ico|pdf|mov|fla|zip|rar)$ {
# try_files $uri =404;
#}
#error_page 404 /404.html;
# /assets ディレクトリの php ファイルへのアクセスを拒否する
location ~ ^/assets/.*\.php$ {
deny all;
}
location ~ \.php$ {
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_pass 127.0.0.1:9000;
#fastcgi_pass unix:/var/run/php5-fpm.sock;
try_files $uri =404;
}
location ~* /\. {
deny all;
}
}
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 backend.test;
root /path/to/yii-application/backend/web/;
index index.php;
access_log /path/to/yii-application/log/backend-access.log;
error_log /path/to/yii-application/log/backend-error.log;
location / {
# 本当のファイルでないものは全て index.php にリダイレクト
try_files $uri $uri/ /index.php$is_args$args;
}
# 存在しない静的なファイルの呼び出しを Yii が処理するのを防ぐためには、コメントをはずす
#location ~ \.(js|css|png|jpg|gif|swf|ico|pdf|mov|fla|zip|rar)$ {
# try_files $uri =404;
#}
#error_page 404 /404.html;
# /assets ディレクトリの php ファイルへのアクセスを拒否する
location ~ ^/assets/.*\.php$ {
deny all;
}
location ~ \.php$ {
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_pass 127.0.0.1:9000;
#fastcgi_pass unix:/var/run/php5-fpm.sock;
try_files $uri =404;
}
location ~* /\. {
deny all;
}
}
hosts ファイルを書き換えて、フロントエンドとバックエンドのドメインをあなたのサーバに向ける。
c:\Windows\System32\Drivers\etc\hosts
/etc/hosts
次の行を追加します。
127.0.0.1 frontend.test
127.0.0.1 backend.test
アプリケーションにログインするためには、最初にユーザ登録をする必要があります。あなたの任意のメール・アドレス、ユーザ名、パスワードを指定してください。 そうすれば、同じメール・アドレスとパスワードを使って何時でもアプリケーションにログインすることが出来ます。
Note:
/
をフロントエンド、/admin
をバックエンドにして、アドバンスト・テンプレートを単一のドメインで走らせたい場合は、 共有ホスティング環境でアドバンスト・プロジェクト・テンプレートを使う を参照して下さい。
この方法が最も簡単ですが、時間はかかります (~20分)。
このインストール方法では、(ウェブ・サーバ、PHP、MySQL 等々の) ソフトウェアを事前にインストールする必要はありません。 - 単に以下のステップを実行するだけです。
プロジェクトを準備する
git clone https://github.com/yiisoft/yii2-app-advanced.git
cd yii2-app-advanced/vagrant/config
cp vagrant-local.example.yml vagrant-local.yml
vagrant-local.yml
に置くプロジェクトのルート・ディレクトリに移動する
cd yii2-app-advanced
下記のコマンドを実行する
vagrant up
これで全部です。後はただ完了するのを待つだけです。完了後には、次の URL でローカルのプロジェクトにアクセスすることが出来ます。
プロジェクトを準備する
yii2-app-advanced-master/vagrant/config
ディレクトリに入る を
vagrant-local.yml` にコピーする作成した GitHub personal API token を vagrant-local.yml
に置く
ターミナル (cmd.exe
) を開き、 プロジェクトのルート・ディレクトリに移動して 次のコマンドを実行する
vagrant up
(コマンド・プロンプトでディレクトリを移動する方法については、ここ を読んでください)
これで全部です。後はただ完了するのを待つだけです。完了後には、次の URL でローカルのプロジェクトにアクセスすることが出来ます。
アプリケーションの依存をインストールします。
docker-compose run --rm backend composer install
コンテナの中で init
コマンドを実行することによってアプリケーションを初期化します。
docker-compose run --rm backend php /app/init
それに合せて common/config/main-local.php
の 'db' コンポーネントの構成を修正します。
'dsn' => 'mysql:host=mysql;dbname=yii2advanced',
'username' => 'yii2advanced',
'password' => 'secret',
Docker ネットワーキングが
backend
およびfrontend
のコンテナから利用できるmysql
というホストの DNS エントリを作成します。
別のデータベース、例えば Postgres を使いたい場合は、
docker-compose.yml
の対応するセクションのコメントを外して、データベース接続を更新して下さい。
'dsn' => 'pgsql:host=pgsql;dbname=yii2advanced',
Docker のセットアップに関する更なる詳細は ガイド を参照して下さい。
アプリケーションを開始します。
docker-compose up -d
マイグレーションを実行します。
docker-compose run --rm backend yii migrate
ブラウザで下記を開いてアプリケーションにアクセスします。