5丁目通信(仮称)

とある5丁目で活動する還暦を過ぎたWebプログラマーの覚え書きです。それとかかってくる迷惑電話や、家業のアパート経営について。

タグ: データベース

  • WordPressでHyperDBを使ったときの運用の疑問があった話し

    「#WordPress サイトの負荷分散の実験」と書きましたが、HyperDBで使ったときの運用で、その後思いついた疑問がいくつかあります。

    WordPressのアップデートは自動的に実行されるか?

    マスターのサーバーの管理ページでアップデートの指示がありますので、おそらくマスターサーバーだけで、スレーブサーバーはアップデートされないのでないかと思いますが。

    プラグインのインストールとアップデートはどうするか?

    これも、マスターだけでスレーブサーバーのプラグインは実施されないのでは? おそらくHyperDBは、データベース関連しか面倒見てくれないので、ファイルは自分で何とかしないといけないかと思います。もっとHyperDBを調べてみる必要があります。 いずれにしても、メディアでアップデートされるファイル以外にも、/var/www/wp-content以下のファイルすべてを同期させれば解決されるのではないのか? こちらも試してみる必要があります。

    著:久保田涼子, 著:西原礼奈, 著:阿諏訪聡美
    ¥2,399 (2025/03/28 17:08時点 | Amazon調べ)

    なんやかんやでWordPressのサイト構築で躓くのは、PHPのプログラミングなのでした。

    追記

    プラグインのアップロードは、マスターのサーバーに限らないので、マスターとスレーブともお互いにファイルの同期を取ってあげないといけないようです。したがって、ロードバランサで管理ページは、マスターサーバーに必ずアクセスさせるようなことが必要です。以下のサイトが参考になるかな?

    Nginx + lsyncd で WordPress を負荷分散させる : dogmap.jp

    HyperDBでWordpressのサイトを単純に分散させても、運用で問題になりそうです。HyperDBを紹介しているサイトでそこまで言及していないのはなぜかしら? 実際に使っていない?

  • #WordPress サイトの負荷分散の実験をした話し

    KVMで2つ仮想サーバーを立ち上げて、Wordpressのサイトをリプリケーションして、サーバーの冗長化と負荷分散の実験してみました。

    最初に1つのサーバーにWordpressをインストールして、それからKVMのクローンでサーバーをもう一つ作ってしまいます。IPアドレスを別にして2つWordpressのサイトが動く状態にします。

    次に、MySQLのリプリケーションの設定をします。設定方法は、

    辺りを参考にしました。Wordpressの負荷分散は、HyperDBというプラグインを使用します。これもまた、

    辺りを参考に設定します。

    これで、片方のサーバーのMySQLを停止してもWordpressのサイトを参照できるかを確認します。

    よく考えれば当たり前なのですが、MySQLをマスターにリプリケーションに設定したほうのMySQLを停止したら、参照ができるが更新ができないようになっていました。これで成功なのです。マスターのMySQLに障害が発生したら、スレーブのMySQLからDBを復旧する手順になるのでしょう。

    更新は、強制的にマスターサーバーになります。これはHypeDBの機能なのでしょう。スレーブサーバーで更新してしまったら、MySQLのリプリケーションのトラブルになってしまいます。

    記事を追加したら、すぐにスレーブサーバーでも参照できるようになります。こちらはMySQLのリプリケーションが正常に動作してしているからです。

    マスターとスレーブの切り替えは、DNSのラウンドロビンの機能で実現できそうです。必ず管理ページからはマスターのMySQLのデータベースに格納されるかが確認する必要がありますが、こちらはローカルにDNSを置いていないので未確認です。

    以上でWordpressの二重化の実験は完了と言いたいところですが、一つ忘れていました。Wordpressのメディア機能でアップロードしたファイルは、マスターに存在することになります。スレーブのサーバーにアクセスした場合は、存在しないことになります。そこで、/var/www/wp-content/uploads/以下のファイルをマスターからスレーブサーバーに同期を取ってあげないといけません。

    cronでrsyncを実行していいのですが、ここではlsyncdでサーバー間をリアルタイム(数秒の遅延はありますが)で同期を取ってしまいます。

    を参考に設定しました。これでマスターとスレーブのWordpressのサイトで、アップロードされた画像が正しく参照できるを確認します。

  • 無事にサービスイン。

    今まで他社で開発していたサイトを引き継いで、リニューアルしてサービスイン。

    今回はデータベースだけを残して、プログラム類はすべて書き直し。だって、PHPを使っていても、クラスって何かしら、SQLインジェクションなんて関係ないぜ、PHPってHTMLに埋め込むのよね・・・、と言った作り方。反対に大昔のPHPの解説本に載っているサンプルみたいで読みやすいこと。一気にCakePHPで書き換えた。

    切り替えは1時間で済んだ。これも予行演習をやったおかげ。マニュアルは大切。

    Google+: View post on Google+

  • #WordPress が3.4にアップデート

    WordPressが3.4になったぞ、という記事を見かけて、WordPressで運用しているサイトのダッシュボードにアクセスしたら、アップデートがあった。その他多数プラグインも。

    サクッとアップデートしてみる。見た目はどこが変わったの? と思うけど、確実に応答がよくなっている。SQLの見直しを行っているようだ。

    アップデートする前にデータベースのバックアップをしましょう。

    Google+: View post on Google+

  • AutoMySQLBackup をインストールした話し

    小さなサイトでMySQLのデータを手軽にバックアップを取りたいと思って、いろいろをツールを探していた。WordPressのバックアップブラグインのように、一日一回バックアップをとってメールで送ってくれるだけでよい。データが小さいので差分とか増分とかとらずに毎回フルバックアップでOK。

    ということで探した見たらありました。AutoMySQLBackup。シェルで動いているので、Unix系のサーバーでした手間いらずで動きます。しかもインストールのshellも用意されています。設置方法は付属のREADMEを読めばわかります。

    データベースの設定と、バックアップファイルのローテーションの設定、あとは送付先のメールアドレスを設定ファイルに書いておけば簡単に設置できます。あとはcronのディレクトリに放り込んでおくだけ。AutoMySQLBackup はMySQLのお手軽バックアップにはお勧め。

    Google+: View post on Google+

  • MongoDBをCakePHP2で使う話し

    MongoDBのようなNonSQLに向いたサイトを作成を検討中。現在CakePHPは2に移行しつつあるので、CakePHP2からMongoDBに接続できるかのテストから始める。結果は、笑ってしまうくらい簡単に接続できた。MongoDBに対応したCakePHPのデータソース(仮にCake Mongoと呼んでおく)の開発者に感謝する。

    CakePHPとMongoDBがインストールされたものとする。

    PHPとMongoDBと接続するドライバーが必要である。WindowsのXAMPP上のテストなので、PeclからのインストールではなくMonboDBのサイトからWindows用のドライバのバイナリファイルを持ってくる。Apacheのバージョンに合わせてダウンロードする。php.iniの設定をして、phpinfo()で確認する。

    https://www.php.net/manual/ja/mongo.installation.php#mongo.installation.windows

    以上は、検索すると出てくるので、詳細は各ページを参照する。

    以下は、Cake Mongo開発者のプレゼン資料からの抜粋である。

    データソースをGitから取得する。WindowsなのでGit Bashを使う。以下のコマンドを実行する。

    > cd app/Plugin
    > git clone git://github.com/ichikaway/cakephp-mongodb.git Mongodb
    > cd Mongodb
    > git checkout -b cake2.0 origin/cake2.0

    これで、CakePHP2用の CakeMongoがダウンロードできる。

    CakePHPのファイルの修正は以下の通り。まずはデータベースの接続の設定

    /app/Config/database.php

    class DATABASE_CONFIG {
      public $default= array(
        'datasource'=>'Mongodb.MongodbSource',
        'host' => 'localhost',
        'database'=> 'blog',
        'port'=>27017,
      )
    }

    次に/app/Config/bootstrap.phpでCakeMongoのプラグインを読み込ませる。

    CakePlugin::load('Mongodb');

    後は、CakeMongoに付いてくるサンプルを動かしてみる。

    データベースの設定をしなくていいので、簡単に動くことが確認できた。あっさり動くことに、逆に驚き。

  • WordPressデータベースのバックアップの話し

    現在Wordpress Database Backupでバックアップができなくなっているので、これで解決できるかな??

    http://www.ttcbn.net/no_second_life/archives/8281

     

    Embedded Link

    WordPressのバックアップと最適化! WP-DBManagerが最高すぎる件!!
    今朝ランニング日誌を書いている最中にスクリーンショットをアップしようとしたらエラーが出てしまった。 その時は急いでいたのでそのままにして、落ちついてからあれこれ原因を調べてみた。 まずはプラグインを全部オフにしてから再度画像をアップしてみたが、ダメ。 次にWordpressの再インストールをしようと試みたが、再インストール自体が失敗してしまう。ううう。 これは困ったなあと思いつつ何気なくサーバ内を…

    Google+: Reshared 1 times
    Google+: View post on Google+

    著:久保田涼子, 著:西原礼奈, 著:阿諏訪聡美
    ¥2,399 (2025/03/28 17:08時点 | Amazon調べ)

    なんやかんやでWordPressのサイト構築で躓くのは、PHPのプログラミングなのでした。

  • さくらインターネットのVPSに移行したときのトラブル?の話し

    先週からサーバーをさくらインターネットのVPSにまとめています。使えるねっとで運用しているブログと、昔からJoe’sウェブホスティングで運用している会社とツレのサイトをさくらインターネットにまとめてみました。現在、4つのサイトをバーチャルホストで運用しています。

    運用方法はいずれ書くとして、今日遭遇したトラブルについて覚え書き。

    まず、サイトにアクセスできなくなりました。VPSのコントロ-ルパネルを見るとCPUのリソースが異常に高い。何かやっている。やってはいけないことですが、ここでとりあえずリブートしてしまいました。

    今度は、外からアクセスできなくなりました。コンソールのみしかアクセスできません。pingが外からもデフォルトゲートウエイのルーター(?)にも、Destination Host Unreachable になります。経路の設定がされていない? さくらのサポートに連絡しようと思いましたが、しばらくするともう一度再起動で復帰しました。こちら原因不明です。

    次はMySQLサーバーが起動できていません。MySQLのログを見ると/etc/my.cnfでdefault-character-setがおかしな設定になっているとエラーになっていました。MySQLのバージョンを確認すると5.5です。5.5ではcharacter-set-serverにしないといけないようです。/etc/my.cnfで

    [mysqld]
    default-character-set=utf8

    [mysqld]
    character-set-server=utf8

    に書き換えたら起動するようになりました。

    しかし、WordPressのサイトにアクセスすると、データベースを参照しに行っていない。MySQLのデータベースを見ると、頭に#mysql50#がついたデータベースになっていました。MySQLを5.0から5.5に勝手にアップデートした? こちらも原因不明です。

    新しく元のWordPressのデータベースを作成し、エクスポート&インポートで対応しました。これで正常に元に戻りました。

    最初のリソースが高くなった件からはじまって、さくらインターネットのVPSはわからないことがあるようです。

    Google+: View post on Google+

    著:大竹 龍史, 著:山本 道子
    ¥2,950 (2025/04/01 13:05時点 | Amazon調べ)
    著:Piro, 編集:日経Linux
    ¥2,178 (2025/03/28 21:08時点 | Amazon調べ)
    著:三宅 英明, 著:大角 祐介
    ¥2,970 (2025/04/01 13:05時点 | Amazon調べ)
  • 使えるねっとVPSをPHPを5.3にバージョンアップしたら、障害たくさん出てきた話し

    暑さのせいでしょうか? 勢い余って、CentOSが6にバージョンアップされることが待てず、使えるねっとのVPSのPHPを5.1から5.3にバージョンアップしてしまいました。するといろいろ問題が起こりました。PHPのバージョンアップの目的は、WordPressを3.2にすること。結果としては、PHPはバージョンアップしないほうがよかったです。

    とりあえずはローカルのサーバーでテストしていました。CentOSの5.6をインストールしているサーバーのPHPをアップグレードしています。こちらはうまくいっていました。

    しかし、使えるねっとのVPSはうまく行きませんでした。それでも、むりやりバージョンアップしたら、管理ツールのPleskが動かなくなりました。そして、MySQLも起動できなくなって再インストール。こちらは何とか起動できました。データベースのバックアップがありましたのでリストアして元通り。WordPressのページは文字化けでするようになりましたが、wp-confing.phpの文字コードをutf8に設定を削除したら文字化けが直りました。

    そして、お客さんのサイトがPHPで動いていたフォームメールが動かなくなっていました。こちらはPEARのライブラリもバージョンアップして、SMTPサーバーを外部サーバーに設定することで対応。ローカルのsendmailが使えなくなってしまったようです。

    これでサーバーは外から見ると元に戻っています。WordPressは正常にアップデートできていますので目的は達成していますのでいいのですが(Google Analyticsが参照できるAnalytics360プラグインがWordPress3.2では動かないが・・・)、Pleskが動かなくっていますので、サーバーの設定がWebでできなくなっています。Pleskはあると便利なのですが、いろいろ制約があるので面倒なのです。

    いっそのこと使えるねっとから乗り換えることも考え始めました。サーバーを決めるときは使えるねっとは、よかったのですが、最近はサービスがよく止まるし、サポートページは整理されていなくて改善されることもないし、今は他にもっとよいサービスも出ているので乗り換えてもいいかと思います。もっと安価で安定したサービスを探しています。

    著:山田祥寛
    ¥3,366 (2025/03/27 13:40時点 | Amazon調べ)
    著:松浦 健一郎, 著:司 ゆき
    ¥2,574 (2025/03/27 13:40時点 | Amazon調べ)
    著:谷藤賢一, 著:徳丸浩
    ¥2,750 (2025/03/30 15:22時点 | Amazon調べ)

    続きはこちらから

  • XOOPS をやめてWordPress にサイトを移行した話し

    会社のサイトはXOOPSで作っていたけれど、もうXOOPSも終わったということで(これは自分の勝手な結論)、別のCMSに移行しようと思っていました。思ってからという2年以上、全然動いていなかった。そろそろ、やらねばいうことで動き出す。

    どのCMSにしましょうかと考えていたところ、慣れているWordpressにしてしまいました。本当は、他のサービスを試しておきたいのですが。会社のサイトは、ショーケースにしています。

    WordPressは元々ブログの構築サービスなのですが、固定ページを駆使すればなんとかなると思ってインストールし始める。

    ドメインも一緒に持っていけばいいのですが、サーバーの契約とか面倒なことがあるので、.co.jpではなくて.comで同じ名前でドメインを取っていたので、こちらを使います。

    XOOPSからWordpressにデータベースをさっと移行できればいいのですが、ページ数も少ないことだし、コピー&ペーストで移行します。ニュースリリースをブログに持っていくだけ。会社案内のページも固定ページにコピー&ペーストします。

    テーマはとりあえず出来合いのものを拾ってきます。こちらは3段カラムを2段カラムにして、ロゴを入れ替えただけ。後できれいに対応していきます。若干ul,liのリスト表示で行間が美しくなかったのを直しておきます。

    以上で、実質半日作業です。サーバーへのWordpressのインストールが手間取ったこと。Wordpressのインストールというよりもサーバーの設定に手間取りました。

    最後に、rewriteの設定で古いサーバーから新しいサーバーにリダイレクトするように設定しました。

    自分の会社のサイトは、大いに宣伝して仕事を取るというよりも、実在証明するようなのもの。もし、サイトにアクセスできなくなったら会社がなくなったのではないかと、知り合いから連絡が来ます。サーバーがトラブルがあったときにはそうだった。

    後は、電話番号を見てセールス電話がかかってくるくらいか。迷惑だけど、どこかの大きな検索会社のように電話番号を外す訳にはいかないし。

    著:久保田涼子, 著:西原礼奈, 著:阿諏訪聡美
    ¥2,399 (2025/03/28 17:08時点 | Amazon調べ)

    なんやかんやでWordPressのサイト構築で躓くのは、PHPのプログラミングなのでした。