先日、某レンタルサーバー(共用型)にNetCommonsをインストールする機会がありました。
インストール先のレンサバは(レンサバ業者は公開してなかったけど、独自に調べたら)FreeBSD。なので、「NetCommonsはLinux版もWindows版も違いはないけど、インストール先がUNIX系だからLinux版でいいだろう」と思い、NetCommons公式サイトから、NetCommonsNetCommons2.2.0.1 for 「Linux」(NetCommons2.2.0.1.tar.gz)をWindowsVistaにダウンロードしました。
で、lhaplusで展開後、お決りのhtdocs、maple、webappとindex.phpをffftpでレンサバにバイナリーモードですべてアップロード。そして、これまたいつものように、ブラウザ(FF)でアクセスし、NetCommonsインストール画面からインストール開始。なに1つ問題なく、最後までインストールが成功したので、安心してTOPページに飛んだら。。。
なんと、お知らせモジュールのWelcome to NetCommonsの本文が抜けていました。そのほかにも、管理画面が真っ白!さらには、セッティングモードのモジュールリスト追加リストボックスが空っぽ!!
いくつか調べたのですが、DBの特定テーブルへのinsertができていないなど、変な状況なので、「そういえばFFFTPでアップするとき、何回かTimeOutしたので再アップしたけど、どれか失敗したかな?」と思い、アップロードした全ファイルを消し、登録したテーブルもすべて消した後、今度はWinSCP(FTPモード)で注意深くアップロードし直し、再度インストール。。
しかし、今度のTOPもやはりWelcomeToNetCommonsのお知らせ本文が抜けている。モジュール追加のリストボックスはでるようになり、管理画面のアイコンが出るようになったけど、セキュリティーのプレフィックス設定タブが空っぽなど、やはりどこかおかしい。。。
レンサバの設定を疑ったり、通信時のアップ失敗を再度疑ったり、、、いろいろと調べててもどうもそれらではないらしことはわかってきたが、、ただ、設定した後のファイルやテーブルの状況がおかしいのは確か。(TT)
最後にVistaに展開した転送元ファイルを調べているうちに、webapp/modules/announcement/templates/defaults 下を覗いてびっくり、、、拡張子の.htmlが
.ht000664といったへんな拡張子になっているものがいくつか。。。その他のテンプレートファイルを調べると、あるある、拡張子.htmlがhtxxxxxxとばけばけのファイルがいっぱい。。。こりゃいった何だ、と調べたら、どうやらこういうことのようです。
補足)具体的にどうなるか知りたい?と知人に言われたので、画面キャプチャを載せます。
GNU tar で圧縮されたtar.gzファイルを、Windows上の圧縮展開ソフト lhaplusなどで展開した場合、「長いファイル名が格納されている GNU 拡張フォーマット 」が問題で、ファイル名が化けるらしく、それらはデスクトップ上に@LongLinkファイルで報告される、とのこと。
試しに、NetCommons2.2.0.1 WIndows版(アーカイブ形式はzip)をダウンロードし、lhaplusで展開したら、展開後すると、これらのファイル名の文字化けはなくなりました。
NetCommons2系では、Windows版とLinux版でソースに違いはなく、ただtarボール(圧縮ファイル)の作り方が違うだけ、ときいていたので、あらためてレンサバの環境をクリーンにしなおし、今度はこのローカルPCに展開したNetCommons2.2.0.1 Windows版をアップロードして、インストール。。。すると、今度は、インストール後のTOP画面でちゃんとWelcometoNetCommonsの本文が表示され、その他おかしかったところもすべて直っていました。
いや~参りました。。。汗汗;;
そういえば、今まで自分たちは、UNIXを自由に扱える環境だったので、
tar.gz(Linux版)を直接ダウンロードし、LinuxやFreeBSD上でtar -xvfz で直接展開していていたこと。
windowsからレンサバにアップする時も、このtar -xvfzで展開されたファイル群を使ってアップしていたこと。
zip(windows版)を使うときは、XAMPPに入れるケースだったこと、
に気づいたのです。
(教訓)レンサバでsshが使えないため、WindowsマシンからNetCommonsの展開後のファイル群をレンサバにアップする時は、レンサバのOSが、Linux/BSD/Windowsに関係なく、NetCommonsの「Window版」(というか、ZIP版)をダウンロード&展開してから、アップすべし。Linux版(というか、tar.gz版)を使うのは、Linux/BSD上でtarコマンドで直接展開できるときに限定すべし。
※lhaplusでなく、lhazなどを使えばこの文字化けはおきないとの記事も見ましたが、Windowsの場合、かなりの人が圧縮展開ソフトとしてlhaplusを使っているので、上記の教訓のようにするのが無難ですね。
2010/02/11追記)
lhaplusで同じ問題にあたり、lhazを入れて対応された方の記事があります。参考になれば。
http://voicetwo.selfip.com/yashikiba/blog/item/193/catid/11