VPSサーバーのMySQLをMariaDBに変更~互換性があるので簡単だった

VPSサーバーのOSをアップグレードすることにしました。当サイトはDebian GNU/Linuxを使っています。今までOSはFreeBSD、Vinelinux、CentOSなどを使って来ましたが現在はDebianに落ち着いています。特に不満もありませんし安定性が気に入っています。

WebサーバーとデータベースはApache+MySQLで動かしてきましたが、Debian 10がリリースされたこともあり、これを機会にMySQLをやめてMariaDBに変更します。MariaDBはMySQLと互換性が高く保たれているそうなので、一応バックアップは取るものの、トラブルが無ければすんなりと移行出来るハズです。

Apacheは継続して使うつもりなので(Nginxにはしない)、懸念するところはMySQLのデータをMariaDBに上手く移行させられるか?というところです。

続きを読む

EC-CUBEからカラーミーへ引っ越し~商品ページをRewriteEngineで転送

EC-CUBEを使用しているクライアントより、カラーミーへの移転相談がありました。これを機会に全ページSSL対応させたいとのことです。ECサイトにとってはSSL化は急務なのかも知れません。

まずはそれぞれのECサイト用エンジンの違いについて把握しておく必要があります。

  • EC-CUBEの商品ページURL

http://example.com/products/detail.php?product_id=100

  • カラーミーのURL

?pid=100000001

調べた限りでは、カラーミーへの商品登録時には商品IDは自動採番されるらしく、任意の番号を付与することが出来無さそうです。面倒ですが商品個別のリダイレクトを定義して、適切なページに転送させる必要がありそうです。

確実な方法としてApache modrewriteを使って301リダイレクトを行う検証をしてみました。既にこのEC-CUBEのサイトは運用年数も長くそれなりのSEO評価を得ているので、適切にリダイレクトしてやればその評価を継承できます。

幸い.htaccessによるmod_rewriteエンジンが使用出来ることは確認済みです。

EC-CUBE側のサイトで、productsディレクトリに.htaccessファイルを配置していくつかの転送指示を記してみました。今回はQUERY_STRINGを使いました。

EC-CUBE側の商品アドレスにアクセスすると、カラーミー側の新商品ページに転送されることが確認出来たので手応えとしては良さそうです。

上の例ではEC-CUBE側でproduct_idが134、140、199の3商品のみを転送する例ですが、商品数が50以上あるので、それぞれについての転送を記述しなくてはならず、それだけこの.htaccessのサイズ肥大が気がかりではあります。

続きを読む

当サイト(WordPressによるブログ構造)をバックアップから復元

昨年の秋口に、このサイトを動かしているVPSサーバーがクラッシュしてシステムが復元出来なくなった関係で、ずっと放置していましたが、本日ようやくバックアップから復元しました。

バックアップはWordPressのプラグイン(BackWPup)で、Dropboxに取る仕組みにしていました。WordPressの記事や構造情報はMySQLに記録されているのでSQL形式で、画像ファイル等はファイルとしてごっそりアーカイブする仕組みです。結果的に元通り復元出来たので備えておいて良かったと思います。

VPSがまるごとぱぁになった事もあり環境を再構築する手間をかける余裕が無くて半年以上放置していましたが、今日、GW連休で時間が取れる様になったので思い切って作業にとりかかりました。まぁS-Factoryとしての活動は休止しているので急ぐ理由は全くありませんでしたが。

レンタルVPSサーバーに下記のアプリをセットアップ。

  1. Apache
  2. PHP
  3. MySQL
  4. WordPress復元

Apacheがバージョンアップで細かい部分に変更をかけていたせいで、しょうもない変更箇所に躓いて時間を食ってしまいましたが無事にサイトを復元出来ました。

手間はかかりましたが、元通りに復元出来たのはラッキーです。やはりバックアップはこまめにとっておかなくてはならないと思いました。(バックアップをとってなかったサイトは完全に消えました・・)

一応備忘録的に躓いた箇所を記しておくと

aliasとかrewriteとかのモジュールが標準では読み込まれない様になったらしく、バックアップから復元したWordPressがうまく動かなくて「ページが見つからない」状態になり無駄に悩まされました。結局トラブルというよりはApacheの仕様変更に振り回されただけな訳で、Apacheの仕様が変わったことを調べて対処です。具体的には「e2enmod」コマンドでモジュールをロードすれば正常に動作しました。

それと、以前はDebianは使いやすいと思っていたのですが、最近はCentOSの方が使いやすいんじゃないかと感じています。Debianは安定性重視で長く使い続けられるというのがメリットだと思っていましたが、結局半年以上触ってなかったら浦島太郎状態になるわけで、それなら情報が多いCentOSの方が良いというのが今の本音です。変更されると使えない情報(ノイズ)が多いので最新情報が多いことが何よりだと感じました。それといちいちsudoする必要がある操作にはやっぱり慣れずレッドハット育ちとしては非常に煩わしいです。標準のsudoではApacheのログにもアクセス出来ませんし。

将来的にはやっぱり利用者が多いLinuxディストリビューションにすべきかなと感じています。私としてはVinelinuxとかも変更が少なくて気に入っているんですけど利用者が少ないのがね。とどのつまりは妙な変更をするのはパスです。OSもアプリも落ち着いて長く使い続けられるソフトウェアが一番良いと私はそこに価値観を置いています。

EC-CUBE 2.4系で規格が正しく登録出来なくなった件

知人からEC-CUBEのショッピングサイトで、規格(色-サイズなど)が中途半端にしか登録出来なくなったという相談あり。このサイトのことは良く知っているので状況をヒアリングしたところ、規格の組み合わせが非常に多いものを登録しようとしたら、途中までしか登録出来ないとのこと。

具体的には、ワッペンとなるアルファベットを二つ選べる商品にしているので、選択項目肢としてプルダウンメニューが二つ表示されるページの仕様。AからZまでで26個。これを縦軸と横軸に考えると26✕26=676個の組み合わせとなる。EC-CUBE 2.11からはツリー状にDB構成が改良されたらしいが、2.4系はマトリックス状にもれなく生成されるので規格の組み合わせが多い場合のトラブルは目にすることが多かったと記憶。

調べたところ、EC-CUBEのシステムパラメータでは制限かけている箇所が無いので、PHPの環境で制限がかかっているものと推測。PHPの情報を調べてみた。すると「max_input_vars」という項目がこのトラブルの原因として合致しそう。簡単に調べてみたところPHP5.3.9以降から実装されたらしい。

続きを読む

WordPress 3.7アップデートとテーマアップデート

今回のアップデートは大きいですね。自動バックグラウンド更新という機能で、コアファイルを自動的にアップデートしてくれるそうです。アップデートを怠ってるサイトの脆弱性を少しでも減らそうという取り組みの第一歩だと思います。

残念ながら日本語ローカライズ版よりも先に英語版がリリースされるので、そのタイミングでコアファイルがアップデートされてしまうらしく、日本語のコメントが入ってるファイルなんかが英語記述のファイルに差し替わるというのは仕様だそうです。この先の課題として改善されるのを期待したいですが、猛烈アタックを受けまくっているWordPressですから、プライオリティ的には脆弱性つぶしと、ログインパスワードの強化が最優先として取り組んできたことが伺えます。(パスワード強度インジケーターとか)

さて、今回もテーマファイルがアップデートされました。当サイトはWordPressのデフォルトテーマを元にカスタマイズしているのですが、前回はうっかりアップデートしちゃったものだから、カスタマイズ内容が消えて上書きされちゃったという失敗をしました。BackWPupのおかげでカスタマイズ内容は元通り戻せましたけど、手間はかかりました。

Twenty Elevenのアップデートでやっちまった | S-Factory

あの失敗からやっぱり横着しちゃダメだと自分を戒め、デフォルトテーマを親として子テーマでカスタマイズして使用する事にしたので、今回は躊躇なくアップデートしてやりました。ちょっとドキドキしましたが、問題なくカスタマイズ内容は残っています。体裁が崩れているところも今のところありません。

WordPress本体も色々工夫されているところに気づきますし、リリースノートを読むと更に多くの改善や改修に気づきます。やはり世界中で使われているCMSは違うなぁと思いますし、そろそろ気づいた事をフィードバックする行動に出ても良いかなとか感じたりしています。というのもWordBenchのイベントに参加させてもらい、また、同Facebookグループでの活動を読んでいると、苦手な部分は助けてもらえば良いんだと気づいたからです。

日本人の声が届けばWordPressはもっと良くなると思います。英語は正直言って苦手ですが、頑張ってみようと思います。実は最近はプラグイン作者に要望をだしてみたりとか地道な行動を起こしたりしています。