Azureサーバ側でDebugKitを作成

広告:超オススメUnity Asset
  広告:超オススメUnity Asset

Microsoft Azure に CakePHP をセットアップして ローカルGit でソース管理」でセットアップしたCakePHPには、プラグインの「DebugKit」がインストールされていない状態だったので、なんとか楽な方法で、これをインストールしておきたいと思います。

【追記】結局、リモートコンソールだけでいろいろできると思っていたのですが、こんな変なエラーで先に進まなくなったので、Azure上でCakePHPを使うのはやめました。Azureはexpressとか別でまた使おうと思います。

26

通常のWebサーバ用にセットアップしたときのMEMOはこちら

以前、Azure + CakePHPの組み合わせで手軽にCakePHPを利用しようとしたのですが、当然使えると思っていたリモートコンソールで...

追記:ここまで。

全部緑のこんな状態↓にした時のMEMO。

D21

いろいろ試しながらやっているので、以下の流れはベストな方法ではないかもです(楽だけど)。

結論を先に簡単に書いておくと、

  1. Azure上にサーバー側のコンソールがあるのでAzure上で直接DebugKitをインストールしちゃえば楽やん
  2. サーバーで直接インストールしても、ローカルにないとソースをコミットしたときに、「ない」状態が反映されてサーバー側からもなくなってしまう。
  3. 仕方ないので、サーバー側で作ったDebugKitをFTPで落として、ローカルソースに加えてコミット
  4. 一応、これでうまくいった。

という感じです。なので、やはり、結局これはローカルにPHPやComposerやらをセットアップするしかねぇべかなぁ、という気になっています。実際にやるには、ここにやり方が書いてあります。

*ローカル(MacOS)にComposerをセットアップした時のMEMOは、また別途書くかもですが、ひとことだけここで書いておくと、ローカルのPHPが7だったりする場合、composer.json内の「require」部分の「"ext-mcrypt": "*”」の行は削除するといいです。

サーバー側(Azure上)のコンソールを使ってDebugKitをインストール

Composerが必要になるので、「機能拡張」に追加しておきます。(追加せずに試さなかったのですが、このステップなしにcomposerが使えたりするかも?)でもまぁ、入れておきましょう。

D01

これだけでComposerが用意できるのは楽です。ローカルだとちょい面倒。

D02

D03

Composerが正常にインストールされたことが通知されます。

D04

Composer.jsonに以下を記述しておきます。これをやっておかないと、app/Pluginにインストールされず、だいぶ無駄な時間を費やしました。

こちらのサイトがとても詳しく記載してくれてました。

一部、インストールするパスが若干違ったので「./app/Plugin/」に書き直しました。

D05

既存のcomposer.jsonに追加するコードだけgistに書き出しておきます↓

source code by gist.

composer.jsonを書き換えたらコミット。すると、デプロイとともにComposerも実行されるのか、このコミッティングは、かなり時間がかかりました。

D06

一応、Successするまでコーヒーでも飲んで待機。

D07

この処理で、もしかすると、DebugKitは作成されたかもなのですが、確認しなかった。。

改めて自分でDebugKitを作成するために、Azureのコンソールを開きます。コンソールを立ち上げるとプロジェクトのルートを開いてくれるので、「ls」で一応確認してから、「composer update」しました。

D08

なんか、これエラーが多発したんじゃないかと思わせる文字化けっぽいこんなのがログされるのですが、よくみるとエラーは発生しておらず、これでDebugKitはインストールされたっぽい(赤文字やめてほしい)。

D09

「app/Plugin」フォルダを確認すると作られてた。

D10

DebugKitの使用準備

「app/Config/bootstrap.php」の69行目あたり「CakePlugin::load('DebugKit');」をコメント解除します。

D11

で、これをコミット&プッシュ。

D12

これでよしのはず、と思って、実際にサイトを確認してみると、

D13 1

なぜか、DebugKitが消えてる!

これは、ローカルの「app/Plugin」が空の状態なのをコミットしたもんだから、サーバー側はそれを反映して、せっかく直接インストールしたDebugKitを元に戻しやがったわけです。サーバー側はリポジトリがそのまま、Webのディレクトリになるわけではなさそうで、サーバー側のWebディレクトリに反映したものをプルすることもできません。まぁ、こういうことも勉強のうちです。

D13 2

結局、Azure上に作ったDebugKitをFTPでローカルに落とす

ローカルGitにすると、FTPのホストURLなども概要やプロパティに記述がありますので、FTPソフトで繋いでAzure上で作成したDebugKitをローカルのソース内にダウンロードします。ローカルで作らなかった分、少し楽だったと思っておきましょう。少し注意する点は、AzureのFTPアカウントは、プロパティページの「FTP/デプロイユーザー」というところに書いてある「hogehoge\user」みたいな文字列です。デプロイ資格情報ページにあるuser部分だけじゃないので注意です。しかし、パスワードは、デプロイ資格情報ページで設定したものと一致しています。

D15

さっきのコミットでDebugKitは、消えてしまったので、もう一度「composer update」を。

D16

サーバー側に作成されたら、FTPでそれを落としておきます。(こんなことするなら、ローカルにPHP環境やComposerセットアップした方がよさそうね、という感じになりますが、これはいろいろやった結果ということで)

D17

で、改めてコミット&プッシュ。

D18

もうローカルにあるわけだから、何をやっても消されることはないでしょう。

D19

サイトを確認してみます。

D20

「DebugKit plugin is present」となり、ようやく、全部緑になってくれました。

D21

いろいろやった結果、コミットするとAzure側は完全にローカルと同じ状態になるということで、プラグインなどの追加を今後もやるようだったら、ローカル環境にもcomposerをセットアップしておいた方がよさそうですね。