5月8日に「baserCMS初心者ワークショップ」を開催しました(^^)/。初めてのbaserCMSイベントでどうなることやらと思っていましたが、思ったより多くの人に集まっていただき楽しくイベントができて、安心しました。
そのイベント中に私の環境で「zipファイルからプラグインをアップロードするとエラーになる」ということがあり、そのエラーが出ないように環境を調整してみましたのでそれについて書きます。
zipでプラグインをインストールしようとしたときに出るエラー
エラーの状況はこんなかんじです。
アップローダーというプラグインをダウンロードして、ダウンロードしたzipファイルをアップロードします。
すると、
このようにエラー画面になります。下の部分が文字化けしているので、文字コードを変えて見てみると
このように、
‘unzip’ は、内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチ ファイルとして認識されていません。
というエラーが出ているようです。私の環境はWindows7+XAMPPで動かしています。このエラーが出ている部分でどのようなコマンドを動かそうとしているかを調べたところ、
unzip -o C:/xampp54/htdocs/bc0508\app\tmp\plugin_Uploader-3.0.3.zip -d C:/xampp54/htdocs/bc0508\app\Plugin\
こういうコマンドを実行していました。このコマンドをDOSプロンプトで動かすと、
このように全く同じエラーメッセージが出ました。ということはつまり、私のローカル環境(Windows)でunzipが動かない事が原因ということが分かりました。
Windowsのコマンドラインでunzipが動くようにする
ググって方法を調べてやってみました。
unzip.exeをダウンロードする
http://sourceforge.jp/projects/sfnet_unigw/downloads/unzip/5.50/unzip.exe/
でunzip.exeというファイルをダウンロードします。いきなりダウンロードになるのでびっくりしますが。。
このunzip.exeというファイルにPATHを通さないといけません。既にPATHの通っている適当なフォルダがあればそこに置きたかったのですが、適当なフォルダが無かったので、
C:\Program Files (x86)
に unzip というフォルダを作ってそこに、unzip.exeを置きました。
フォルダにPATHを通す
スタートボタンをクリック
コンピュータ を右クリック
プロパティ をクリック
システムの詳細設定 をクリック
システムのプロパティ 画面になるので 環境変数 をクリック
上下に似たようなモノがありますが、下の システム環境変数 の方を編集します。システム環境変数のPathをクリックしてから 編集 をクリック・
この画面の、変数値 をコピーしてテキストエディタなどに貼り付けます。
C:\Program Files (x86)\Skype\Phone\;C:\Program Files\ISC BIND 9\bin
貼り付けたデータが上のような感じだったら、最後の部分に ;(半角のセミコロン)を追加してから、unzip.exeを置いたフォルダのPATHを追加します。
C:\Program Files (x86)\Skype\Phone\;C:\Program Files\ISC BIND 9\bin;C:\Program Files (x86)\unzip\
こんな感じになります。これをコピーして、
今開いていた、変数値 にペーストし、OKをクリック
OKをクリック
OKをクリック。
これで環境が整ったはずです
再度プラグインをアップロードしてみる
準備ができたので再度アップロードしてみたいと思います。
zipを指定して アップロード をクリックします。
先ほどのエラーは無くなりましたが、また別のエラーが出てしまいました(>_<)。しかし、
プラグイン管理で見ると、すでにアップローダーはアップロードされているようで、
インストールしてみたところ、問題なくインストールできて使うことができました。
まとめ:baserCMSの問題では無くWindows環境でのunzipが無かった
そういえば、、と思い出したのですがXAMPPで開発をしていると既存のシステムで一部動かない機能がありました。それはやはり、コマンドラインで何かをしようとしていた部分のようなので、Windowsで開発をしている場合はそういうときに適宜環境を作って行く必要があると思いました。
あと、アップロードできたけどエラーが出るというのは、
http://project.e-catchup.jp/issues/7726
この問題だったのかもしれません。
コメント