jQuery File Upload 大容量アップロードテストしたら2GBで無限ループに陥ったお話

ファイルをアップロードするシステムをPHPで構築する際、「jQuery File Upload」というライブラリを使い、大容量のファイルを分割アップロードできるようにしようと試みました。
その際、2GB以上のファイルがいつまでもアップロード完了せず、2GBのファイルがいくつも作成されてしまう症状が発生しました。

続きを読む

EC-CUBE決済モジュールTLS1.2未満使用停止で接続エラーになった場合の解決方法

決済モジュールが続々とTLS1.2未満使用停止の流れになっておりますが、皆さまのサーバはいかがお過ごしでしょうか。 OpenSSL/1.0.1e だから問題ないなと余裕な顔をしてテストしたら全然大丈夫じゃなかった、という私のような方、もしかしたらPHPが使っているSSL認証方式がOpenSSLではなくNSSなのかもしれません。

続きを読む

Windows7でexe拡張子の関連付けにregeditを選択してしまってカオス状態になったけどなんとか解決しました。

2015-03-30 追記
今日気がついたのですが、Chromeでexeファイルダウンロード時、「名前を付けて保存」ダイヤログ内の「ファイルの種類」が「"%1" %」になっていました。ファイルの拡張子はexeとなっているし、他のブラウザでは出てこないし、ダウンロードファイル自体は普通に使えるので、とりあえずみなかったことにしておきます。
もしかして、「ftype exefile="%1" %
」というのが悪かった…?


間違って、exeファイルの「ファイルを開くプログラムの選択」の設定を変えてしまいました。しかもこともあろうかregeditに…。adobeの高価なソフトのアイコンもレジストリエディタの六面キューブパズルが壊れたみたいなものに書き換えられ、何を開いても「レジストリエディタで開くけど…本当にいいの?知らないよ?」みたいなダイヤログが出てくるようになってしまいました。
いろいろ試してシステムの復元をせずに解決できたので、メモしておきます。

続きを読む

スマホ版EC-CUBEのおすすめ商品スワイプをamazonぽくしたくて別なライブラリに入れ替えました

EC-CUBEのデフォルトだとjquery.flickslide.jsが使われています。

スマートフォンサイトにフリック・スワイプ実装できるjQueryスライダプラグイン

これ、スワイプしたときにピタッ!と商品の幅にフィットするので、きっちりしたい人にはオススメです。 が、私は複数商品を並べて、スワイプしたときにゆる~い感じにしたいのです。するするっと滑るような。…そう、amazonのようにね。 jquery.flickslide.jsはオプションの指定ができるのかできないのかといった感じで、私のこのどうでもいい希望は叶えられそうにないため、別なライブラリに入れ替えることにしました。

続きを読む

Windows環境+compass=@charset "Windows-31J"; ∴日本語文字化けな件

Windows環境で、compassを使ってcssの書き出しをしている場合、デフォルト文字コードを正しく設定してやらないと文字化けしますよ、というお話です。

続きを読む

お絵かきするときに役立つカラーパレット

色のセンスがない私にとって、カラーパレットは本当に助かります。
個人的ブックマークを兼ねて、素敵なカラーパレットをご紹介します。

続きを読む

WordPressサーバー移行時(ドメイン変更時)にウィジェットやプラグインのデータがなぜか反映されなくて悩んだ件

ローカルにテスト環境をつくろうと思って、以下の手順でサイトのクローンを作成しました。

  1. BackWPupプラグインでバックアップデータを取得
  2. 吐出されたsqlテキストエディタで開き、本番環境のドメイン(example.jp)をテスト環境のドメイン(example.home)に置換
  3. ローカルのphpmyaminで2の置換済sqlをインポート

作ったら、ウィジェットプラグインやテーマのデータが全然反映されていないのです…( ゚д゚)( ゚д゚)( ゚д゚)
とくに問題だったのが、このサイトは「Page Builder by SiteOrigin」という、投稿本文をレスポンシブに対応したカラム分けできるプラグインを使用していたという点。カラム分けしていたレイアウトは見事に1列になり、なんとも無残な姿に…。
データベースにインポートする際にデータが破損したのかと思い、データベースを直接確認しましたが、本番環境と同じように、きちんとデータは入っていました。

原因はドメイン(URL)のバイト数の相違

こんなことではデータのバックアップをとっていても、万が一なにかあった時にすぐに元にもどせないではないですか!!!ふじこふじこ!!!

と憤慨しながら、原因を探してみると、ウィジェットが移行されないという記事を発見。
WPプラグインといえばこの御方、キタジマタカシさんのブログでした。


phpMyAdminでWordPressの移行を行うとウィジェットが表示されない | モンキーレンチ

WPではウィジェットのデータや特定のプラグイン、テーマで使われるデータは、シリアライズされた上でデータベースに保存されるのです。
シリアライズの際に、データのバイト数も保存されるのですが、ここが落とし穴でした。
手順2で書き換えた本番環境のドメインは「example.jp」でテスト環境のドメインは「example.home」。2バイトの違いがあります。そのため、このドメインがデータに含まれている場合、シリアライズされたデータのバイト数に矛盾が生じてしまい、アンシリアライズに失敗してしまうのです。
すごく納得しました。

移行元のドメイン(URL)と移行先のドメイン(URL)のバイト数が一緒であれば問題なしということですね。
つまり万が一本番環境でなにかあって、バックアップから元に戻した場合も大丈夫ということがわかって、まずは一安心。

移行元と移行先のURLのバイト数が違う場合の移行手順

テスト環境やドメインの変更などでデータの移行(コピー)作業を行う場合、ドメインの書き換えとともにバイト数も書き換えてくれるツールが必要になると思われます。
私は以下のツールを使いました。


ウィジェットも対応。WordPressでサーバ移転時にデータベースのドメインを置換する方法 | S・T・K株式会社

今は「DATABASE SEARCH AND REPLACE SCRIPT IN PHP」という名称に変わってしましたが、同じように使えます。

手順をまとめてみると、

  1. 移行元からバックアップデータを取得(プラグインやpypmyadminのエクスポートで)
  2. 移行先でバックアップデータをインポート(phpmyadminでデータベース作成後インポート)
  3. 移行先のphpが実行できる場所に「DATABASE SEARCH AND REPLACE SCRIPT IN PHP」を設置し、ブラウザでアクセス。
  4. 変更前のドメイン、変更後のドメイン、データベース情報を入力して「update details」「live run」で書き換え(「dry run」で書き換え前のテスト)
  5. うまくいったかドキドキしながら確認する

以上です。
疲れましたがWPのことがまた少しわかってよかったです。