インストール

必要条件

このプロジェクト・テンプレートが要求する最低限の必要条件は、あなたのウェブ・サーバが PHP 5.6.0 をサポートしていることです。

Composer を使ってインストールする

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 と名付けられたディレクトリに解凍します。

その後は、次の項に記載されている指示に従ってください。

アプリケーションを準備する

アプリケーションをインストールした後に、インストールされたアプリケーションの初期設定をするために、次の各ステップを実行しなければなりません。 これらは全体で一度だけやれば十分です。

  1. コンソール・ターミナルを開き、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
    
  2. 新しいデータベースを作成し、それに従って /path/to/yii-application/common/config/main-local.phpcomponents['db'] の構成情報を修正します。

  3. コンソール・ターミナルを開き、/path/to/php-bin/php /path/to/yii-application/yii migrate というコマンドでマイグレーションを適用します。

  4. ウェブ・サーバのドキュメント・ルートを設定します。

    • フロントエンドのパスは /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;
            }
        }
    
  5. hosts ファイルを書き換えて、フロントエンドとバックエンドのドメインをあなたのサーバに向ける。

    • Windows: c:\Windows\System32\Drivers\etc\hosts
    • Linux: /etc/hosts

    次の行を追加します。

    127.0.0.1   frontend.test
    127.0.0.1   backend.test
    

アプリケーションにログインするためには、最初にユーザ登録をする必要があります。あなたの任意のメール・アドレス、ユーザ名、パスワードを指定してください。 そうすれば、同じメール・アドレスとパスワードを使って何時でもアプリケーションにログインすることが出来ます。

Note: / をフロントエンド、/admin をバックエンドにして、アドバンスト・テンプレートを単一のドメインで走らせたい場合は、 共有ホスティング環境でアドバンスト・プロジェクト・テンプレートを使う を参照して下さい。

Vagrant を使ってインストールする

この方法が最も簡単ですが、時間はかかります (~20分)。

このインストール方法では、(ウェブ・サーバ、PHP、MySQL 等々の) ソフトウェアを事前にインストールする必要はありません。 - 単に以下のステップを実行するだけです。

Linux/Unix ユーザ用マニュアル

  1. VirtualBox をインストールする
  2. Vagrant をインストールする
  3. GitHub personal API token を作成する
  4. プロジェクトを準備する

    git clone https://github.com/yiisoft/yii2-app-advanced.git
    cd yii2-app-advanced/vagrant/config
    cp vagrant-local.example.yml vagrant-local.yml
    
  5. 作成した GitHub personal API token を vagrant-local.yml に置く
  6. プロジェクトのルート・ディレクトリに移動する

    cd yii2-app-advanced
    
  7. 下記のコマンドを実行する

    vagrant up
    

これで全部です。後はただ完了するのを待つだけです。完了後には、次の URL でローカルのプロジェクトにアクセスすることが出来ます。

Windows ユーザ用マニュアル

  1. VirtualBox をインストールする
  2. Vagrant をインストールする
  3. 再起動する
  4. GitHub personal API token を作成する
  5. プロジェクトを準備する

    • yii2-app-advanced レポジトリをダウンロードする
    • 解凍する
    • yii2-app-advanced-master/vagrant/config ディレクトリに入る
    • vagrant-local.example.ymlvagrant-local.yml` にコピーする
  6. 作成した GitHub personal API token を vagrant-local.yml に置く

  7. ターミナル (cmd.exe) を開き、 プロジェクトのルート・ディレクトリに移動して 次のコマンドを実行する

    vagrant up
    

    (コマンド・プロンプトでディレクトリを移動する方法については、ここ を読んでください)

これで全部です。後はただ完了するのを待つだけです。完了後には、次の URL でローカルのプロジェクトにアクセスすることが出来ます。

Docker を使ってインストールする

アプリケーションの依存をインストールします。

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

ブラウザで下記を開いてアプリケーションにアクセスします。