Blog

  • WordPress シングルインスタンス―マルチデータベース

     一つの物理OS上で複数の仮想ホストを作成しそれぞれでwordpressのサイトを稼働させている。

     wordpressフォルダーを複数用意していたが、領域が二重に必要になったり、それぞれで更新するなど管理が面倒になってくる。

     データベースエンジンは1インスタンスだが、それぞれのサイトに専用のデータベースを利用している。

     そこで、複数サイトでそれぞれのデータベースを利用する設定ができないか試してみた。

    ここでは以下の3つの形態を説明している。

    1. WordPress マルチサイト機能 (単一のデータベースを持つ単一のWordPress インスタンス)
    2. 単一のデータベースを持つ複数の WordPress インスタンス
    3. 複数のデータベースを持つ複数の WordPress インスタンス

    しかし、以下のような形態には触れられていない。

    • 複数のデータベースを持つ単一のWordPressインスタンス

     ちなみに、ここでいうデータベースとは、データベースエンジン(xamppではMySQL)のことではなく、MySQLが管理している複数のデータベースのうちの一つのことらしい。ソフトウェア開発ではどちらも意味することがあるから前後の文脈から判断しないといけない。

     インスタンスは二つある気がするけど、複雑になるからこのままの表記で行おう。

     ここには、単一のデータベースを持つ単一のWordPressインスタンスで複数ドメインの運用例が載っている。

     ここを参考にして、修正を行った。

     /wordpress/wp-config.phpを以下のように書き変える。

    // homeとsiteurlの指定
    // homeで/wordpressが省略されているときは、siteurlに追加する
    $protocol = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off' || $_SERVER['SERVER_PORT'] == 443) ? "https://" : "http://";
    define( 'WP_HOME', $protocol . $_SERVER['HTTP_HOST']  );
    if (strpos(WP_HOME, '/wordpress') !== false) {
        define( 'WP_SITEURL', WP_HOME );
    } else {
        define( 'WP_SITEURL', WP_HOME . '/wordpress' );
    }
    
    // アップロードフォルダーの指定
    if ( strpos(WP_HOME, 'www2.') !== false ) {
    	define( "UPLOADS", "wp-content/uploads/www2" );
    }
    
    // ** MySQL 設定 - この情報はホスティング先から入手してください。 ** //
    /** WordPress のためのデータベース名 */
    // www2.domain.comのときはデータベースwp-02を指定する
    if (strpos(WP_HOME, 'www2.') !== false) {
    	define( 'DB_NAME', 'wp-02' );
    } else {
    	define( 'DB_NAME', 'wp-01' );
    }

     アップロードフォルダーも別にしたいので、指定を追加した。

     /wordpressを省略しているので、サイトトップのindex.phpも同じwordpressフォルダーを指すように変更しておく。

    require __DIR__ . '/../../wordpress/wp-blog-header.php';

     ダッシュボードの設定-一般を開くと、WordPress アドレス (URL)とサイトアドレス (URL)は入力できなくなっている。たぶん事前に定義されていたのは変更不可となるのだろう。なかなかかしこい。

     行儀の悪いプラグインとか動かない可能性もあるらしいが、様子見しよう。

  • Amazonで右側にカートの内容が表示される

     先日から、1台のPCではhttps://www.amazon.co.jp/で右側にカートの内容が表示されるようになった。

     WishListや商品画面などでヘッダー部分が隠れるように下にスクロールすると、右側に縦に長い部分に「小計」「\0」などと表示される。

     これは前面にオーバーラップしており、「この商品をチェックした人はこんな商品もチェックしています」などの右ボタンが隠れているので、非常に使いにくくなっていた。

     どうやら、プロキシーの設定を変更しているときにアクセスして、ブラウザーのバージョンか何かが誤って登録されたのかもしれない。

     表示されているHTMLを比べてみると、その部分が余分に生成されているらしい。

     たぶんローカルに保存されているスクリプトかCSSあたりが異なっているのであろう。

     閲覧の履歴の削除や、Internet Explorerの設定をリセットを行ってみたが、解消されない。

     最終的にはキャッシュおよびデータベースからamazon.co.jpを削除することで解消したようだ。

     Internet Exproreをすべて終了させてから、コントロールパネルのインターネットオプションを開き、全般タブで設定を選ぶ。

     キャッシュ及びデータベースタブでamazon.co.jpを選ぶ。

     削除ボタンを押して終了。

     Amazonのサイトを開き、Ctrl+F5などで再読み込みする。

     今のところは再発生していないが、これで解消するといいなぁ。

  • ダークモード

     携帯電話が有機ELなので、通常はダークモードにしている。

     開発者オプションで、ダークモードを強制させていたところ、バーコードが読めないことがあった。

     バーコードはメイドの強弱なので色は関係ないだろうと思ったが、D払いのアプリではそうでもないらしい。

     EDIONのレジでもたもたしていたら、呼ばれた別の店員が、ダークモードは夜とかにするモードですよとか言いつつモードを変えて読み取れるようになった。、