Category Archives: 数学・プログラミング

WordPressをローカル環境にコピーした際の覚え書き

WordPress themes を作成していると、ローカル環境でファイルやデータベースを予め作成し、それをアップロードしてサーバー上に同じものを再現することが良くあります。

その反対にサーバー上に既に公開されている古いテンプレートをダウンロードして、ローカル環境に再現することも稀にあります。

こうした再現方法は様々なところで既に紹介されているのですが、自分で実行してみると予想外のエラーが生じて説明通りに行かないことも多々あります。

私が困ったことは、以下のようなブラウザの警告文が生じてフロントページにアクセスできない現象です。

データベースには正常に接続できているらしく、ログイン画面などにはアクセスできるのですが、静的なフロントと自作の幾つかのページにだけはアクセスができません。

行なったことは (1) ローカル環境の workspace に WordPress をダウンロードして展開し、データベースを新規に作成したこと。

その後、(2) サーバー上の mysqldump を使用して WordPress データベースを SQL ファイルに出力したこと。

最後に (3) サーバー上にて出力した SQL ファイルと古いテンプレートファイルをダウンロードして、ローカル環境で展開した WordPress ファイルと作成したデータベースをそれぞれ上書きしたことです。

この状態でブラウザを立ち上げて、localhost の WordPress プロジェクトにアクセスしてみたのですが、フロントページが表示されずに ERR_EMPTY_RESPONSE というエラーメッセージが出力されてしまいます。




原因が分からないのでエラーログを参照してみましたが、特にエラーらしきものは記録されていません。

あまりの不明さに .htaccess ファイルを編集したりと的外れなことを一通り検証して、ふと未設定な項目を埋めていけば動くのではないかと wp-config.php ファイルを開いて WP_HOME と WP_SITEURL に localhost を指定してやりました。

この変数を設定してようやくローカル環境でもフロントページが表示されるようになりました。

全く私が悩み苦しんだ数時間は何であったのでしょう。

同じようにデータベースの接続が正常、ログイン画面などには問題なくアクセスできるのに、フロントページが表示されない場合は wp-config を見直すと問題が解決するかもしれません。

ZXing で二次元バーコードを作成した際の覚書

スタンドアローンで動作する二次元バーコード作成ソフトを探したところ、文字コードや余白やマスク処理について指定できそうな適当なものが見つかりませんでした。

探し続ければ良いものがあるのかもしれません。

しかし限られた時間中に見つけられる保証もなかったので Java で作成してしまうことに決めました。

なぜ Java なのかは — 単純に Android で用いられることから、最新の状態で整備されているバーコード作成ライブラリが簡単に見つかるような気がしたからです。




検索してみたところ、実際に ZXing Project というプロジェクトが見つかります。

今回はこのプロジェクトを こちら から zip 形式でダウンロードした後、Apache Maven を使用してビルドして使用します。

私の場合はエラーを出力してビルドに失敗してしまいました。

このようなエラーメッセージが現れた場合、Maven のバージョンが合致していない事が示されていますので、該当のバージョンをインストールしてやると大体はうまくいきます。

うまくビルドに成功した場合、 core ディレクトリ直下に tagert ディレクトリが作成されます。

使用したいのはその中にある core-3.3.1-SNAPSHOT.jar というファイルです。

パスで示すと次のような具合になります。

この jar ファイルにパスを通して com.google.zxing パッケージとそれに属する必要なクラスを参照すると、二次元バーコードを簡単に作成できるようになります。

入出力の必要に応じて java.awt 等の他パッケージのクラスもインポートしてください。

インポートができたら QRCodeWriter の encode メソッドを使用して BitMatrix を生成します。

この際に予め Map < EncodeHintType, Object > hintMap を作成しておくと引数として文字コードや余白を指定できます。

上で作成した BitMatrix を使ってグラフィカルイメージを作成します。

あとは他の画像編集などと同様に、Graphics / Graphics2D クラスなど使用して作成した image を編集したり、出力したりしてください。

これに例えばテキストファイルの読み込みを組み合わせれば、エラーの原因ともなる煩わしいコピー&ペーストから解放されるので、とても便利に使えます。

私はこの分野にあまり詳しくなかったのですが、コードを読み込んでいくうちにバージョン、マスク、誤り訂正など基本的な機能を勉強することもでき、なるほどと思わず関心してしまいました。