アクセス制御機能をはじめ、Webアプリケーションに必要な機能をオール・イン・ワン化された開発・実行基盤である「ACCON」のインストール方法。「Docker Toolbox」がリリースされた事もあり最新のインストール方法を記述いたします。
WindowsとOS X共通の手順です。ACCONの詳細については、マニュアルをご参照ください。
1.ACCON導入準備
ACCONを導入するためには、ローカル環境に「Docker Toolbox」をインストールし、ACCONコンテナの実行環境となるDocker仮想マシンを利用できる状態となっている必要があります。「Docker Toolbox」のインストール方法は、下のリンクから移動してく下さい。
2.Kitematicの起動
Kitematicから「DOCKER CLI」をクリックしてDockerのコマンドライン・インタフェースを開きます。
3.「DOCKER CLI」からローカルに開発用のディレクトリを作成
ACCONコンテナをrunすると、これから作成するディレクトリにMySQLのデータベース・テーブル作成用(初期データ含む)のスクリプトとWebアプリケーションの開発・実行に必要なPHPのプロジェクトが配置されます。
- dataディレクトリ:データベースの作成用と初期データ用のSQLファイルが配置されます。
- workspaceディレクトリ:FuelPHP+ACCONのプロジェクトが配置されます。(Xdebugのポートは9000)
3.1.ローカルにData Volume(共有ディレクトリ)の「workspace」と「data」 ディレクトリを作成
mkdir ~/develop
mkdir ~/develop/data-volume
mkdir ~/develop/data-volume/workspace
mkdir ~/develop/data-volume/data
パスは任意ですが、OSのユーザのホームディレクトリ配下である必要があります。(パスを変更した場合は、下の「docker run」の内容(-v)を合わせて変更してください)
初回起動時(「docker run」)に上のディレクトリにプロジェクトが設置されます。
4.「ACCON」の導入
「docker run」コマンドを実行して、「ACCON」コンテナの取得と起動を行います。
「docker run」実行時に、指定されたコンテナイメージがローカルに存在し無い場合、自動で「Docker Hub」からイメージを取得します。もし、イメージの中身が不安な場合は、Dockerfileをしたから取得し、自分でビルドすることも可能です。(ビルドコマンド:docker build -t accon/fuelphp-accon:1.02 .)
- [Dockerfile一式はこちらからダウンロード](https://kurobuta.jp/download/view/17 Dockerfile一式)
4.1.「ACCON」コンテナの取得と起動
下のコマンドを「DOCKER CLI」から実行します
「OS X」の場合
docker run -d -v ~/develop/data-volume/data:/develop/data:rw -v ~/develop/data-volume/workspace:/develop/workspace:rw -p 80:80 -p 443:443 -p 3306:3306 -p 2222:22 -p 9000:9000 -t -i -h project-server-01 --name project-server-01 accon/fuelphp-accon
「Windows」の場合
docker run -d -v /c/Users/[ユーザID]/develop/data-volume/data:/develop/data:rw -v /c/Users/[ユーザID]/develop/data-volume/workspace:/develop/workspace:rw -p 80:80 -p 443:443 -p 3306:3306 -p 2222:22 -p 9000:9000 -t -i -h project-server-01 --name project-server-01 accon/fuelphp-accon
コンテナイメージの取得と起動が完了すると「DOCKER CLI」にコンテナのイメージが完了した事と、そのコンテナIDが表示されます。
5.「ACCON」の起動確認
Kitematicに戻り「ACCON」コンテナが実行されていることを確認します。
コンテナ名は「project-server-01」です。左横に緑色のアイコンが表示されていれば起動中です。
その「project-server-01」をクリックしてコンテナの管理画面を開きます。
「CONSOLE LOG」の下を見ると「Service activation completion」と表示され必要なサービスが起動した事が分かります。
この状態で「WEB PREVIEW」をクリックするとACCON上で起動しているサンプルアプリケーションにアクセスできます。
5.1.サンプルアプリケーションにブラウザからアクセス
開発用コンテナのためサーバー証明書は自己証明書を使用しています。
下の手順を参考に、ブラウザの「プライバシーエラー」を許容してください。
プライバシーエラーを許可するとサンプルアプリケーションの画面が表示されます。
5.2.サンプルアプリケーションのログイン方法
ACCONでは、アクセス制御の仕組みを体験するため動作確認用のアカウントが設定済みです。トップページに表示されているブログ機能(実装サンプル)から表示されている「初期ユーザについて」をクリックするとログインに必要なIDとパスワードが表示されます。各ユーザにはサンプルとして色々権限を個別に設定してあります。その内容は、後に説明がある「ACCON」の管理画面から参照・変更が可能です。
ログインを行うには上部に表示されている「ログイン」メニューをクリックします。初めての利用は、ログインID「Kurobuta」の使用をお勧めします。ある程度権限のあるアカウントです。権限により表示されるメニューや実行できるアクションに差があります。
ある程度権限のあるアカウントでログインに成功すると上部メニューに管理メニューが表示されます。
管理メニューをクリックすると「ACCON」のアクセス制御のメニューが表示されます。このアクセス制御の管理機能もACCONを利用して構築されており実装のサンプルの役割も有しています。
管理メニューから「ユーザ・マスタ」を実行した場合。
以上で、「ACCON」を利用したWebアプリケーションの開発準備が整いました。
6.各ミドルウェアの起動と停止
コンテナをrun時、下のミドルウェアは全て起動した状態となっております。
また、起動と停止はsshで接続して行います。(本番環境ではsshをコンテナに導入することは推奨しません)
6.1.サーバーに接続(ssh)
sshのポートは「2222」です。developユーザでログインしてください。(パスワードはdevelop)
ssh -p 2222 develop@192.168.99.101
下の起動停止は上のsshで接続を行って実行します。
6.2.HTTPサーバー(Nginx)
- 起動:sudo service nginx start
- 停止:sudo service nginx stop
6.3.データベース(MySQL)
- 起動:sudo service mysql start
- 停止:sudo service mysql stop
6.4.PHP-FPM
- 起動:sudo service php5-fpm start
- 停止:sudo service php5-fpm stop
6.5.KVS(Redis)
- 起動:sudo service redis-server start
- 停止:sudo service redis-server stop
6.6.ssh
- 起動:sudo service ssh start
- 停止:sudo service ssh stop
7.Webアプリケーションの開発方法
コンテナ内で稼働しているWebアプリケーションのプロジェクトファイルは、ホストOSのローカルのホームディレクトリ配下の「develop/data-volume/workspace」と共有しています。それらをPhpStormやEclips、テキストエディタで変更することで即座にWebアプリケーションに反映されます。
8.リモートデバッグ方法
Xdebugが有効な状態で起動しています。Xdebugの接続ポート番号は「9000」。