こんにちは。

さて今回は。
電子タバコの、資材やりとりを、補助するサイトの構築に。
チャレンジしてみた、顛末を。

結局、こんなん出来ました。
cont16
 URL : https://s.eucaly.net/ecigcont/shop/

さて。

やりたいことは、単純です。
今までメッセージでやりとりしていた、住所とか、発送状態とかのやりとりを、Web上で済ませたい。
そんだけです。
オイラが扱う資材は、在庫を持つ性質のものでは、現状無いので、いわゆる「通信販売」機能は、必要ありません。
が、、、まあ、通販サイト、使えるかなと。

まあ、決済不要で、他サイトと一覧で並べる必要も無いので、Amazonだの楽天だのはもう最初からあうとおぶがんちゅー。
ASPでいけるかな?、と、日頃お世話になっている、電子タバコ通販サイトをさらっと研究してみました。

ぬるしぐさんや、Nexmokeさんは、FC2カートを使ってるみたい。
cont10

Chimera Atomizerは、base.ec
cont11
 
3PCSさんは、stores.jpを使っているみたいです。
cont13

だが、、、当たり前ではありますが。
どのASPも決済前提で、決済から手数料を引くことで提供するタイプか、月額いくら払え的なタイプか。
まあこんな面倒くさそうなの、タダで提供してくれるような、ステキなところは、パッと見ありませんでした。

んじゃ、ASP諦めて、サイト構築かねえ、と。

自前サーバでかっこいいサイト運用しているっぽいのは、Promistさん。
なので、Promistさんを見るも。
cont14
Promistさんは、多分、CS.CARTを使っています、あくまで、多分。
こいつ高機能っぽいのですが、まあSQLとPHP+CSSフレームワークという、かなり骨が折れそうな構成です。
オイラ、PHPもSQLも使ったこと無いので、一から勉強して構築ってのは、ちょっとチャレンジしにくいなあと。

で、ここで。
オイラは使ったこと無いのですが、「Wordpress」という、簡単CMSが割りと便利であるっぽいことを思い出し。
Wordpressベースの、オンラインカートシステムが無いか、探してみたりしました。

・・・ありました、Welcart。
cont15
OK、キミに決めた!。

んが、、、現状、自宅サーバには、「SQL」も「PHP」も導入しておりません。
更に住所扱いたいので、「HTTPS」への対応も必要かなと。
試行錯誤してみました。

そーゆー遊び用自宅サーバは、こいつ。
DSC_0556
ほこりまみれ。

スペックはこんな感じ。
cont07
Xeon E5-2609 16GB Memory。
構築は2012年なのですが、まあ当時からしても、弱めのサーバです。

Xeonてのは、インテルのサーバ用CPUね。
丁度玄関に箱があったので、パチリ。
DSC_0555

我が家は、パソコン通信時代を含めると、20年以上自宅サーバがある構成ではあるのですが。
いまとなっては化石な、100Mbpsな1IPコースでの契約なので。
一つしか無いIPを、分割して使っています。
今までHTTPでのサービスが主だったので、HTTPベースですが。

HTTPは、まずL7スイッチにぶっこんで。
DSC_0562

ゴツいWebアプリと、ゴツくないWebアプリ・静的コンテンツに分けています。

ゴツくないWebアプリと静的コンテンツは、こいつに流し込んで。
DSC_0556

ApacheのProxyでVirtualHostとかリマッピングして、静的コンテンツはMacminiから、、、みたいな構成。
DSC_0557

他、ゴツいコンテンツ用のサーバとか、NFSディスクとか、iSCSIディスクとか散乱してますが。
全体的には、0.5KWくらいの構成です。
DSC_0563

まあ、今となっては、かなりショボいサーバ構成だなあとかね。
仮想でもありませんし。

まあ、まずはWordpressを入れてみますか。
どうやら構築には、PHPとSQLが要るみたい。
入ってないので、まずは。

OSのアップデートから!。
cont05
放置しすぎてて、FreeBSD 9.0Rのまま運用してたので。
make worldが2回走るという、恐ろしいアップデート具合で、無理やり11.0Rにまで上げました。
 #って実際はfreebsd-update でやってますよ!。

ついでにApacheを2.2.31にアップデート!。
cont09
・・・しようとしたら、どうやらFreeBSD 10Rからコンパイラが変わった影響で、コンパイル通らず。

仕方なくGCCをコンパイル、やだー!。
cont04
ステージ1が走り始めたところで外出、途中止まってたらどうしようと思ってましたが無事終わりました。

んで、一部ライブラリをコピったら、無事Apacheコンパイル完了。
さくっとインストール、このApacheは、deflateとproxy用のApacheです。

次に、Wordpress環境の構築。
オイラ初心者なので、PHP対応Apacheや、SQLのコンパイルは、だいぶ敷居が高いので。
こいつらはPortsから導入しました。

こんな感じ。
cont17

導入したのは、Apache2.2.31 with PHPとMySQL。
そうです、、、このサーバは、「Proxy用Apache」と、「Wordpress用Apache」の、同じバージョンが違うポートで動く、という変態構成になるのです、、、。

まあ、無事動き出しました。
cont20


更に、HTTPSにも対応したいな、と。
こっちはPoundというProxyで受けてやろうと画策。

まずPoundをコンパイル!。
cont0a
なんか結構warning出ますが、なんとか動くようになりました。

で、HTTPS使うには、SSL証明書が必要です。
これ、クライアントのブラウザが持っている、「ルート証明書」に紐付いた奴じゃないと、アクセス時に警告が出てしまいます。
いわゆる、「オレオレ証明書」ね。
でも、、、まともなSSL証明書は、結構高いです。

なので、最近サービスが始まった、「Let's Encrypt」という無料SSL証明書サービスを、使ってみることに。
cont18

ふつー、SSL証明書を取得するには。
秘密鍵と公開鍵を自分で作り、それを発行者に送って、発行者はこちらが正当なドメイン所有者であることを確認の上でSSL鍵を発行してもらうのですが。
Let's Encryptは、サーバ上でスクリプトを動かして、このへんを自動的にやらかしてくれる、そんなサービスです。
が、証明書の有効期限が短いので、更新手続きが必要です。
んで、証明書をPoundで使うには、証明書の連結とかが必要です。
更に証明書を更新した後は、プロセスの再起動が必要だったりします。

このへん仕込んで・・・。
cont0b

実行!。
cont01
おお!、緑になってる!。

ちょーっと、後述のWordpress的な問題で、何度か証明書を取り直していますが、無事動くようになりました。

まあ、コンパイルモノは、ここまでな感じ?。
一応プロセスと割り込み負荷を確認。
cont06

うん。
httpdの起動ユーザーが違うのが混じってるのが、きもちわるいw。

で、割り込みは・・・。
cont08
怪しい感じではないので、このままいけそうです。

後はまあ、Wordpress。
初めて使うけど、PHPとSQLさえちゃんとセットアップされていれば、スクリプトを突っ込むだけで動くのね、これ確かに便利だわ。

phpmyadminとか入れてないので、データベースは手で構築して・・・。
cont19

Wordpress上でプラグインとか適当に設定、カート、動き出しました!。
cont02

実はWordpress、絶対URLでHTMLを吐くという、困ったクセがある上に。
HTTPS環境でも、HTTPでのアクセスを吐くという、更に困ったクセがありやがりました。
mod_substituteやmod_rewriteで内容だのヘッダだの書き換えて無理やり動かそうとしたのですが、どーしても画像プラグインの自動生成URLが書き換えられなくて。
しかたなく、HTTPSとHTTPを、同じVirtualhostでアクセス出来るように設定を変更。
お陰で構築中に何度かURLが変わり、Wordpressは数回初期化してたりします。

まああとは、設定して。
cont03
「支払い方法」のところを、SNSアカウント選択にするという暴挙。

画像入れ替えて、完成。
cont16
 URL : https://s.eucaly.net/ecigcont/shop/

まあ必要最低限な適当な感じだけど、無事動き始めて、なによりです。

とりあえず、「アクリルMOD」の受注を、こいつではじめてみました。
cont21
Twitterで手持ち部材で出せますよー、て書いたら、即売り切れになっちゃったので。
部材発注が必要なのですが、それの数読み用です。
11月26日に締める予定ですので、ご入用の方は、お早めに。

なお、価格上がっちゃってますが、もともと赤字だったのと、更にハーネスを高級品導入したので、、、更に上がっちゃったのです。
まさかのオヤイデ製オーディオ用高級電線を導入予定です。
DSC_0551

無事やりとりなサイトが構築できたので、今後まあ、色々やりやすくなるのかな?とは思います。

以上、まあ。
自分の作業メモ的な感じですが。
まあ、たまにはこんなのでも、許してくださいな。

以上です。