伊藤清徳の垂直落下式ムーンサルトプレス

PerlとかPHPとかMySQLとか...がんばっても8割だ。

Category: オープンソースソフト

WordCamp → ゆるPerl → WordCamp

今日はWordCampNagoyaの開催日
 
9時から名古屋におけるサイト解析第一人者である運営堂森野代表のセッションがあるということで、普段10時起床の私にとっては、かなりの早朝の7時起床でいってきました。

Google Analyticsに関してのセッションでした。
私が生業としているECの世界においても解析は重要なのですが、Google Analyticsは使ったことがありません。
慣れなのでしょうが、とっつきにくくて…。
と、思っていたら、その解析業務を助ける、GreaseMonkeyの存在を話されていて、これがあれば使える!と思いました。行ってよかった。
Wordpressに直接関係する内容ではないものの、WordpressをはじめCMS各種って、運営に焦点をあてたシステムにも関わらず、実は制作サイドの意識としてはサイト構築ツールまでで終わっていることが多いですよね。良くも悪くも。
解析の話を通して、運営面に少しでも目が向くのならと思いました。
 


その後、MightyWorksさんの「Wordpressとは」というセッション。
Wordopressを紹介するセッション。
かなーりWordpress愛を感じるセッションでした。
 


 
次、WordCampを抜け、ゆるPerlに向かう。
初期メンバーに名を連ねながら、初めての参加。
 
おーい。色々緩すぎるぞ!いつもはこれでいいけど、たまには、目的意識をもった会をやったほうがいいぞー。
 


 
またWordCampに戻る。起きてたのにバスを乗り過ごすという、荒業を成し遂げてしまいました。
 
LTセッションでは、お友達のマイペースクリエーターKさんが話をするということで、まじまじと見る。完全初心者向けのWordpressテンプレートを公開したということで、それについて発表しました。おぉ。なんか、みんな良い反応!
 
横浜のWordCampのUstで見てめちゃ面白かった、め組のメガネさんのセッションもありました、こちらもWordpress愛を深く感じ、なおかつ面白いセッションでした。め組さん。普段お世話になってます。
 


大体こんな感じ。その後懇親会→二次会。
 
全体通じて思ったのは、Wordpressって情報がいっぱいネット上には転がってるんだけど、やっぱりオープンソースゆえ隠れた情報も沢山ある。オープンソースの利用にあたっては、コミュニティに参加することが、情報を集める上で一番良い手段で、かつ、コミュニティに参加して恩返しをすることへの意識が必要なのではと思った。その辺がプロプライエタリとの大きな差かな。
 
私は、普段一般のWEB制作の世界とは違うところで、サイト制作を行っているので、必ずしも、Wordpressが最上位のパブリッシングプラットフォームだとは思っていない。(これは立場の問題なので、この部分を突っ込まれるとちょっと困るので、聞き流してくださいね)
それでも、これだけ沢山のユーザーがいて、これだけ沢山のコミュニティ参加者がいるWordpress。常に選択肢の中には入ってくるとは思う。
 
まぁ、そんなこんなで、WordCampお疲れ様でした。
最後に謝っておきます。若干立場的に微妙な人が参加しててごめんなさい。(分かる人が分かれば良い謝罪)
 


 
あ、ゆるPもまとめなきゃ。
 
参加者の初心者の方に少しだけレクチャーさせてもらったんだけど(WEBでの利用に関して)、PHPに最初に手を出しては理解をせずに、飛び込んで行けてしまうHTTP関連の仕組みや仕様とかを、Perlにおいては、理解を持ちながら勉強をする必要があるなと実感。
諸先輩方がプログラミング初心者がPHPでプログラミングを学ぶことへの批判はこのあたりにあるんだろうなと。
 


そんなこんなで一日終わり。疲れたぞ。

VMWare PlayerでAndroidを動かす

私事ですが、ニセモノiPadと噂の商品を購入予約しました。
 
ニセモノiPadとはいっても、7インチHD液晶採用でOSはAndroidを採用している商品で、
操作性や見た目はなんとなくiPadといわれればiPadなんですが、
実際のところはAndroid端末なだけで、iPadのニセモノとは又少しちがうかなぁと思ってます。
早くこないかわくわく。
 
ということで、Androidがどんなものがわかってないので、
VMWarePlayerにインストールしてみました。
 
まず、
http://www.android-x86.org/download
ここでStableReleaseのisoファイルをDLします。
 
続いて、VMWareで新規仮想マシンを作り、
そのときにDLしたisoファイルをインストーラーとして指定します。
 
AndroidはLinuxカーネルをベースとしているので、
VMWareではFreeBSDとして認識されるようです。
FreeBSD用のツールをインストールするか?と聞かれますが、
それを入れて動くかどうか分からなかったので、今回はパスしています。
 
インストールの際パーティション設定などの手順が必要です。
まぁ、WindowsやLinuxをインストールしたことがあれば、なんとなく意味はわかるはず。(英語だけど)
 
パーティション設定が終われば、インストールがすぐに終わります。
さすがモバイル用の軽量OSめっちゃくちゃインストール早いです。
 
で、起動。
 

↑デスクトップ(?)画面

↑アプリケーションや設定がまとめられたタブ。
 
 
Androidまだ全然使ってないけど、
タッチパネルガジェット用のOSとしてはかなり完成度高いんじゃない?
iPhoneOSとは向いてる方向が違うんだろうけど、
iPhoneOSに負けてない!っていうか下手すると勝ってるところもあるかも!?
 
Android使った、日本のメーカーの携帯電話や、
中国製の「ニセモノiPad」など、
正直いい噂を聞くものがほとんどない。
(私が予約したニセモノiPadは概して評判がいいので予約した)
 
せっかくいいOSなんだから良いハードも作れよー!特にソニー・エリクソン!
 
余談ですが、iPhone4も買う予定なので、
iOS4とAndroidのハイブリッド開発者になってやる!(勢いのみ。笑)

EC用CMSメモメモ

オープンソースECシステムをメモメモ

・osCommerce
だいぶ古くからあるシステム。
今開発やコミュニティがどうなってるのか不明・・・。
選択肢には入らない・・・かな。

・ZenCart http://zen-cart.jp/
osCommerceからの派生プロジェクト
安定度は高いが、環境によってインストールにかなり苦労する。
ZenCartインストールを公式に保障している
ホスティングサービスを利用したほうがいい。
いかんせん、設計が古いので、それなりの見た目にはなってしまう。

・EC-CUBE http://www.ec-cube.net/
近頃よく使われるEC用CMS。
日本製なので、決済モジュールなどが充実しているのがいいところ。
こちらも環境によってはインストールに苦労する。
バグが多くて困る。。。
MySQLを使えるようにはなっているが、使わないほうがいい。
PHPの知識がない人は・・・使わないほうがいいかも。
それでも無難に使えるから、まぁ合格点。

・ONE/DEPO http://www.onedepo.jp/index.html
ダウンロード販売の機能やら、簡易的なショッピングモール機能など、
他にない機能満載のECシステム。
データベースがPostgreSQLを使っているので、商品数もかなりいける。
決済モジュールがないので、
独自に決済方法を組み込まなければならないのが難点。

・Magento http://www.magento-jp.com/
MySQLを使いながらかなりの商品数を扱えるというすばらしいECCMS。
実績では、10万点を越える商品を扱ったサイトもにも耐えられたとのこと。
画像処理システムなどかなり多くの機能を抱え込んだシステムなので、
環境を選ぶのが難点で、
基本的にVPSか占有利用サーバーでの利用を考えたほうが良い。
海外製で、まだ日本コミュニティは成長途中なので、資料が少ない。
決済モジュールはいくつかあります。
個人的に、日本コミュニティの中心の方とお話させてもらったことがありますが、
非常に人当たりが良かったので、
Magentoは今後何某かの形で関わっていきたいなと思っています。

他にも沢山ありますが、使えそうなのはこれくらいですかね。
私はEC-CUBEとMagentoを案件に合わせて選択という感じでいくことになりそうです。

ajaxライブラリのライセンス

ajaxライブラリを含んだソフトの販売をすることになりそうだったので、これまであんまり気にしたことがなかったライセンスを確認した覚書。

prototype.jsとjQueryはMITライセンス。
YUIはやっぱりYahoo!が大好きなBSDライセンス。

主要なところは全部緩いライセンスだ(^-^)/

ソースはオープンである必要があるけど、自分が開発したWEBアプリに組み込んで売る分には問題なし!

Lua言語とは何ぞや?

大好きな言語「なでしこ」がVer.1.521からLua言語を内包した。

???Luaって何じゃ???
恥ずかしながら、知らなかった。

ググってみた。こんなサイトがあった。。。

ほうほう。組み込み向けも言語なのですな。。。
Cに組み込んだり、Delphiに組み込んだり。。。
しかも、PerlやらRubyやらより高速らしい。ほぉ。

言語体系は、
見た感じJavascriptとQuickBasic系の中間って感じかな?
無名関数なんかもつくれて、言語としてはかなり完成されているよう。
それでいて、やっぱりJSに似てるということで、初心者でも使えそう。

これはいい!早速覚えよう!!

なでしこは、非常に利用しやすくてしかも強力で、そして何より日本語で書けるプログラミング言語なのだが、Luaを内包したことで、なでしこならではの弱点をカバーできそう。(なんか CにSmalltalkのオブジェクト指向を内包したobjective-Cを思い出すね。)

ただ、Luaを使おうとすると、日本語プログラミング言語としての簡易さは揺らぐ?バランスよく使わなきゃ。

Luaって、Perlで言うところのCPANみたいなものはないのかなぁ。あれば、さらにいいんだけど。
というか、本当はなでしこにCPANみたいなものがあってほしいんだけどね。

LuaにCAPNみたいなものがあるなら、Filemaker用のLua実行プラグインをつくっても楽しいかも。

とりあえず、勉強しなければならないことが増えました。

Concrete5をちょっとだけ試してみる。

オープンソースに関する知識では日本で屈指の知識を有するであろう「moongift」運営者中津川篤司さんのレビュー記事を読んで、「理想のCMS」と方々で言われているCMS「Concrete5」をインストールしてみた。

まず、インストール。
筆者の環境では、インストーラーを走らせるだけで、インストール作業は完了したものの、日本語の表示に問題が発生。
調べたところ、DBへ正しく日本語が保存されていなかったので、MySQLへの接続の問題と判断。
drivers\adodb-mysql.inc.phpの371行目に
mysql_query( "SET NAMES utf8");
を追加。
以上で、文字化けの問題はクリアしました。

簡単に使ってみました。
コンテンツの管理という意味では、Adobe「Contribute」に近い印象を受けました。
WEBアプリケーションでこういったインターフェイスを実装しているのは衝撃。
これまで、なかなか一般の現場に任せられなかった、
いわゆるブログ以外のコンテンツ管理も任せられそうだ。
また、オープンソースで使いやすさと安定度を両立した(ブログ以外の)CMSはなかったが、
これは使いやすく安定もしている(ように見える。今のところ)
そういう意味で、個人的には、企業サイト構築を安価に済ませたい場合に利用したい。

ということで、個人的に応援している東海地区地元プロレス団体である「でら名古屋プロレス」「DEP」の2団体の応援コンテンツや動画コンテンツの構築に使ってみたいと思う。

EC-CUBEのCSV登録が激しく使えない件

以前日本においてECサイト構築用のオープンソースシステムは
EC-CUBEが最適解だと書きました。

そのこと自体は揺らぎないと思いますが、
使い込んでいくうちにあれこれと問題にぶち当たるのも事実です。
OSSを使うのに置いては仕方ないです。

EC-CUBEも例外なくこれテストしたんか?
って突っ込みたくなる機能が沢山。
何かと挙動がサーバーによって変わってしまうPHPでできてるから仕方ないですが。
(これだからPHPは、、、)

EC-CUBEに標準でついているCSV登録機能は、
ぶっちゃけほとんど使えないものだと思っていいです。
商品登録は比較的使えるほうですが、
カテゴリ登録などは全くできません。

しかし、多店舗展開が結構常識的となっている今、
EC-CUBEで構築した自社サイトのみでの展開というのは考えにくいので、
外部データソースとやり取りできないのはイタイよ(>_<)
早く直してーーー。

(自分で直そうと思ったけど、
 CSVでのカテゴリ登録のとき呼び出す関数がおかしなものを呼び出しているようなので、
 ヘタに触りたくなかった。)

ってことで、めんどくさいから、
ODBCでローカルDBから直接接続した。
もしかしたら、CSVなんかよりODBCを使ったほうが正解かも。

クララオンラインサーバーにEC-CUBEインストールメモ

EC-CUBEは日本発のオープンソースECサイト構築ソフトウェアです。

他にもいくつか日本語対応となっている有名OSSがありますが、
日本の事情にあっていない、
開発方法が統一されていないためカスタマイズが極端にしづらい
などなど、はっきり言って、EC-CUBE以外のソフトウェアは、
そこそこの知識がない限り使わないほうがいいものがほとんどです。

EC-CUBEはまだまだバグが多くて困ってしまう点も少なくないですが、
それでも日本の通販事情に合っていますし、
開発が一企業のもとで統合されて進められているので、
非常に使いやすいです。

有償ソフトウェアは別として、
OSSでのECサイト構築の最適解は、
現在のところEC-CUBEといって過言ではないと思います。



ということで、クララオンラインのサーバーへEC-CUBEをインストールしたメモです。

クララオンラインはEC-CUBEのオフィシャルホスティングパートナーですが、
なぜかインストールドキュメントが用意されてません(T_T)

すでにCPIのサーバーへEC-CUBEをインストールした経験がありますが、
それよりは平易でした。

ただし、平易なのは、
・サーバー管理画面に「Plesk」を選択
・OSにRed Hat Enterprise Linux 5を選択

している条件のサーバーのみで、
これ以外の条件では、かなり面倒な作業が待っています。
正直上記以外のサーバーでは、
よっぽど知識がない限り他社サービスを利用するか、
新しいサーバーへ乗り換えることをオススメします。

このページではこの条件で説明します。
またEC-CUBEのバージョンは、2.1.2aを想定した内容です。


■準備編

ECサイトを始めるのならば、当然SSL証明書を取得しておきましょう。
それで、クララオンラインのサーバーのデフォルトでは、
通常通信領域とSSL通信領域が分けられています。
ちょっと面倒なので、一緒にしてしまいましょう。
Pleskにログインし、EC-CUBEをインストールするバーチャルドメインを選択し、
「ホスティング」の「設定」をクリックします。
その画面の中に
「SSL 認証を受けないコンテンツと同じディレクトリに、SSL 認証を受けるコンテンツを設置する」
というチェック項目がありますので、チェックを入れて、「OK」を押します。

その後、そのドメイン用のデータベースを作成します。
MySQLを利用しましょう。


■アップロード
EC-CUBEをダウンロードしたアーカイブを解凍しできたファイルにまず編集を加えます。

・エラー出力するように変更。
クララオンラインサーバーの一部は、デフォルトでPHPのエラーを出力しないようになっています。
なにかと不便ですので、出力するようにします。
「html/.htaccess」を開き最後の行に「php_flag display_errors 1」と入力し、改行を入れて保存します。

・dataディレクトリの位置変更。
クララオンラインサーバーでは、WEB経由で不可視の場所へFTPクライアントを使って、
フォルダを作成したり、アップロードしたりすることができません。
(正しくはできないわけじゃないけど面倒)
ということで、この設定をすることでインストールがラクになるようにします。
「html/define.php」を開き、「define("HTML2DATA_DIR", "/../data/");」を「define("HTML2DATA_DIR", "/data/");」へ変更します。

・dataディレクトリをWEB経由でアクセス不可にする。
上記の設定でインストールはラクになりましたが、
そのままインストールすると危険ですので、
.htaccessファイルでdataディレクトリ配下のファイル・ディレクトリに、
WEB経由でのアクセスを禁止する処置を行います。
テキストエディタを開き、(Windows標準のメモ帳はやめたほうが良い)
「order deny,allow
deny from all

と入力し(最後は改行で終わってください。)dataディレクトリへ「.htaccess」の名前で保存してください。

通常、Windowsは拡張子のみのファイル名では保存できませんが、
terapadなら可能です。
「名前をつけて保存」し
「ファイル名」に「.htaccess」、
「ファイルの種類」は「すべてのファイル」を選択して、
保存すればOKです。

ここまでで、アップロードの前準備は終了。
ではアップロードします。

FTPクライアントで、EC-CUBEを設置したいドメインへ接続します。
「/httpdocs/」の中へ「html」の中身をすべてアップロードします。
次に、「httpdocs/」の中へ「data」というディレクトリを作成し、
その中へ「data」ディレクトリの中身をすべてアップロードします。

他の説明書では、ここでパーミッション設定をしろと書いてある場合が多いですが、
クララオンラインのサーバーはパーミッション設定が結構厳密で、
設定する箇所が多く、説明書どおりのパーミッション設定のみでは設定が足らないので、
インストール作業の時に出たエラーメッセージに従って、設定したほうが良いです。


■インストーラー起動。
WEBブラウザから「install/index.php」へアクセスします。
基本的にインストーラーに従って進むだけですが、
前述の通り、あのファイルのパーミッションをどうこうしろとあれこれ言われます。
これがどうにも面倒な作業なのですが、必要な作業なので粛々とやってくださいね。
わたしは40分もかかってしまいました(-_-;

パーミッション設定し一通りインストーラーの作業が終了したら、
ここで念のため、データベースへの接続を「UTF-8」で行うように設定しておきます。
ローカルの「data/class/SC_DbConn.php」をテキストエディタで開き、
「$this->conn = $objDbConn;」と書かれた次の行へ、「$this->conn->query(‘SET NAMES utf8’);」を追記して保存。
サーバーの当該ファイルへ上書きします。

その後、再度WEBブラウザから「install/index.php」へアクセスして、
一通りインストーラーを走らせて下さい。
今度はパーミッション設定は不要です。
最後まで、インストーラーを走らせたらサーバーの「install/index.php」を削除します。

以上で一応のインストール作業は終わりです。


■管理画面
管理画面にログインして各箇所確認していると
「??????」と文字化けを起こしている箇所がある場合があります。

よく原因が分からないのですがこういった場合があります。
データベースを確認しても間違いなくUTF-8でデータ保存がされているにも関わらずです。

そういった場合は、管理画面の「システム設定」→「マスタデータ管理」を開いて、
たとえば、「mtb_status」を選択して、
項目編集せずにそのまま「この内容で保存します」をクリックすると直ります。
面倒ですが、すべてのマスタデータに対してこの作業を行っておいたほうが良いと思います。

ちなみにデータベース確認してUTF-8で保存されていない場合は、
明らかにインストール作業に誤りがあります。

もう一度インストールしなおしましょう。


はい。ここまでで、とりあえず、EC-CUBEが普通に使えるようになります。
これだけで多分2時間くらいは使うと思います。

テンプレートスキンが充実していないEC-CUBEなので、
デザイン作業などはさらに大変な作業でしょう。
Smartyの扱いに慣れていないWEBデザイナーなどはなおさらです。

これを機にPHPのほぼ標準と言っていい、テンプレートエンジンであるSmartyを覚えましょう。


ってことで、以上。簡単に説明しました。
インストーラーはありますが、結構大変な作業だと思います。

EC-CUBEに限らずですが、
インストーラーが整備されたCMSなどのOSSのインストール作業が
「簡単」だと言う人が一部いらっしゃいますが、
大きな間違いです。

特にPHP+MySQLでできたOSS(たとえばEC-CUBEやwordpressなど)は
サーバー条件によりかなり挙動に差があります。
場合によっては、どうにもならないようなセキュリティホールを作ることにもなりかねません。

ぶっちゃけた話、このページの記事も安全なのか自信ありません。
(まだ運用開始もテスト運用もしていないため)
このページの内容を利用する場合は、
必ずテストされた上でのご利用をオススメします。

何万円もしはらうことはなりますが、
自信がないのであれば、お使いのサーバーホスティングサービスにご相談いただいて、
有償のインストールサービスを利用することを強くオススメします。