5丁目通信(仮称)

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

タグ: データベース

  • 違うPHPのバージョンを切り替えできるようにした話し

    昔CakePHPで作成したWebサイトの機能追加を行っているのですが、そのサイトはPHP4なのです。テストするため、PHP4の環境が必要です。

    PCですとXAMPPで一発インストールなのですが、みんなで参照するLinuxサーバーではそうはいきません。今まではyumで簡単にインストールしていきましたが、PHP4は古いバージョンなのでyumでのパッケージインストールもできません。

    しかたないのでソースからコンパイルです。PostgeSQLとかMySQLもソースからインストールしていきます。今回はとても時間がかかる。PHP4 だけではなく、いまはPHP5 もテストで使うであろうと考えて、切り替えるようにしておきます。参考になったのは、

    【PHP】複数バージョンのPHPを使う方法

    です。違いはApacheがパッケージでインストールしているとか、PHPのバージョンの違いです。

    以上、自分が設定したことを忘れそうなので、手順はEvernoteにメモしておきます。

    著:山田祥寛
    ¥3,366 (2025/03/27 13:40時点 | Amazon調べ)
    著:松浦 健一郎, 著:司 ゆき
    ¥2,574 (2025/03/27 13:40時点 | Amazon調べ)
    著:谷藤賢一, 著:徳丸浩
    ¥2,750 (2025/03/30 15:22時点 | Amazon調べ)
  • XAMPPの昔のバージョンに再インストールした話し

    開発でロカールのPCにはXAMPP(Apache+MySQL+PHP、後はPerlだっけ?)をインストールしてお手軽に開発環境を作っています。

    お客様の依頼で、ずいぶん昔に作ったサイトのメンテナンスをやることになりました。しかし、今の開発環境では動かない。おそらくPHP4で動いているのでPHP5では動かないのは当たり前。

    そこで、PHP4に戻してみます。XAMPPのページには、「PHP5とPHP4と切り替えが可能だぜ。」と書いていますが、これは真っ赤なウソ。PHP4とPHP5を切り替えるphp-switch.batというバッチファイルが見当たりません。今のXAMPP1.7.xではPHP5のみになっています。

    おかげでXAMPP1.6.8まで戻さなくていけません。戻すときには、MySQLと、Apacheのhttpd.confのバックアップを忘れずに。MySQLのデータベースは、\mysql\data以下のディレクトリをコピーすれば、そのままテーブルがインポートできました。XAMPP1.6.8はセットアッププログラムではなくて、解凍したディレクトリ以下のファイルをコピーするだけなので、インストールは簡単かもしれません。本来は本番サーバーの環境とバージョンを合わせなければいけませんが。

    無事にテスト環境で動くようになりました。PHP5への対応は大変そうだな。

    著:山田祥寛
    ¥3,366 (2025/03/27 13:40時点 | Amazon調べ)
    著:松浦 健一郎, 著:司 ゆき
    ¥2,574 (2025/03/27 13:40時点 | Amazon調べ)
    著:谷藤賢一, 著:徳丸浩
    ¥2,750 (2025/03/30 15:22時点 | Amazon調べ)
  • WordPressのデータベースバックアッププラグインの話し

    WordPress 3.0.3にアップデートの記事のなかでWordPressのデータベースのバックアップをやっていないと書きました。これではまずいと思って簡単にバックアップとれる方法を調べました。

    やはりバックアップが簡単できるWordPressのプラグインがありました。記事はこれ。

    【WordPress】WordPress Database Backup を使う。

    毎週バックアップしたファイルを週1回メールを送るように設定しました。

    WordPress Database Backupの設定は簡単でしたが、メールの転送設定できなかった。自分のメールアドレスだとプログのドメインのメールアドレスからなぜか転送できないのですね。仕方ないのでGmailのアドレスに転送しました。

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

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

  • WordPress 3.0.3にアップデートした話し

    WordPress 3.0.3にアップデートされたようで更新しておく。

    WordPressはサイト管理のページからアップデートされたかどうかを教えてくれる。プラグインやテーマも。アップデートもダッシュボードの更新メニューからできるので簡単。ただし、アップデートをするときにはデータベースのバックアップをしたほうがいいのだが、自分はやっていない。大丈夫だろうか? 痛い目に遭いそう。

    続きはこちらから

  • MySQLのデータベースをリストアしたときの文字化けと途中エラーを対応した話し

    500Mバイト位のダンプされたSQLデータをリストアしたときの問題と対応方法の覚え書き。詳しい対応方法は、こちらから。

    まずは途中で、

    ERROR 2006 (HY000) at line 803997: MySQL server has gone away

    とエラーが発生した。これは実行するクエリが大きすぎるため。MuSQLのリファレンスマニュアルに書いてあった。ここを参照のこと。今回は、my.iniの設定を

    max_allowed_packet=128M

    にした。

    リストアしたデータベースを覗いてみると、見事に文字化け。ダンプされたSQLファイルは正しくUTF-8になっているので、リストアの問題。SQLのファイルの最初に

    SET NAMES utf8;

    を追加する。今度は正常にリストアしたことを確認して完了。

    そういえば、昔同じことで悩んだことがあるかも・・・。

  • ニフティのクラウドサービスの説明会に行ってきた話し

    ニフティのクラウドサービスの説明会に、ニフティ本社に行ってきました。説明会の模様は、映像で配信されるということで詳細はそちらを見ていただくことにして、要点だけまとめておく。間違っているかもしれないので、詳細はニフティに聞いてね。

    • ベースはWMware。ユーザーがVMを追加したり削除したり設定する部分をニフティが開発。
    • ネットワークや実際の場所は、ニフティの今行っているところにある。
    • 5分でサーバーを作成できる。すべてWeb上でできるのでとても簡単。
    • 今のところCentOSを用意。RedhatとWindows Serverも予定。
    • CetOSは32bit, 64bitと何もサーバーアプリをインストールしないPlainと、サーバーアプリをインストールするServerの2種類のVMを用意。
    • 一番の大きな特徴は、サーバーを停止しても消えずに残ってくれる。ただし、停止しても課金される。稼働させるよりは安い。普段は停止してスタンバイしておいて、すぐに負荷が高くなったら起動するなんてことができる。
    • フェールオーバーは5分程度で切り替わる。と思う。
    • VMは勝手にサーバーに振り分けてくれる。この辺りは、VMwareにお任せ。
    • サーバーを作成すると、最初はsshのみ接続可能。その前にキーを交換しておく。Publicキーを管理してくれる。Privateキーをダウンロードしておくこと。デモは、TeraTermで簡単に接続していた。
    • Apacheを使うには、iptableでポート80を自分で開けること、最初はsshの22番しか開いていない。
    • 課金は、従量課金と月額課金を用意。月に80%以下なら従量課金がお得。
    • ネットワーク転送料としてインターネットの出口入口でも課金する。 1G単位です。
    • 課金は月末締め。ただし、月末に月額課金でサーバーを作成すると、とても損かも。
    • 従量課金から月額課金。その反対にも移行可能。月額課金は日割り計算ではない。
    • 100G 単位で追加ディスクを追加できる。最大1Tみたい。
    • ディスクを作成後にサーバーに割り当てる。別のサーバーに割り当てし直すことができる。
    • 一つのVMに最大4つまで割り当てられる。割り当て後は、普通のLinuxのようにfdiskでフォーマットしてマウント。VMに用意している30Gはシステムで使った方がよい。データベースその他諸々は追加ディスクに格納。
    • 現在高品質で高速のディスクを提供している。高速ではないが安価なディスクサービスも4月くらいからスタートの予定。大容量のディスクが安価に使えるかも。
    • サーバーには固定アドレスをふってくれる。サーバーを停止して、再起動しても同じアドレスをふってくれる。
    • ドメインとDNSのサービスはニフティでも用意しているが、自分で用意することもできる。
    • 再販もできる。お客さんにサーバーを切り売りできる。契約の譲渡は今のところ考えていない。
    • 今後、ロードバランサー、ファイヤーウォールのサービスが追加される。というか、まだまだサービスメニューが足りないので、いろいろ出てくるかも。
    • 将来的にはユーザーが用意したWMwareのイメージでサーバーを構築できるようになるかも。

    この説明会の質疑応答で、DoS攻撃でネットワーク転送料が膨大になる可能性があることが指摘された方がいた。考えてみると、これは怖いことだ。知らない間に高額な請求がくることにある。ニフティの方は、何らかの対策をとるようなことを言っていた。新しいサービスを始めると、いろいろ考えないといけないので大変。

    お手軽にクラウドが使えるようになる。英語で海の向こうのサービスを使わなくてもいい。日本語でOK。今ならニフティの人にいろいろ相談に乗ってくれるかも。サービスを開始したばかりなのでニフティさんは丁寧に対応してくれそうなので、今がチャンス。

  • データベースモデリングツールCrayからER Masterに移行した話し

    今までデータベースを設計するには、Cray Database Modelingというツールを使っていました。Cray Database ModelingはPro Editionのライセンス購入しています。Pro Editionの有償版を購入することで、ドキュメントの出力とDBからのインポート(リバースエンジニアリング)が可能です。しかし、開発元のアッズーリから新しいバージョン販売によって、現在のバージョンのサポート中止、現バージョンのダウンロードの中止になってしまいました。新しいバージョンにするには、再度ライセンスを購入する必要があります。しかも、新バージョンのライセンス価格は値上げになっています。これは、商用のソフトウェアを利用する上での、悪いことが重なっているようで、今回移行のバージョンアップは見送りにしてしまいました。

    このまま、旧バージョンになったCrayを使い続けていけばいいのですが、旧バージョンがダウンロードできないということと、このような仕打ちをする会社の製品を使いたくない、さらによりよいソフトウェアを使っていきたいと思いますので、次のモデリングツールと探すことにしました。

    条件としては次の通りです。

    • E-R図を作成できる。当たり前!
    • 対応するデータベースは、PostgreSQLとMySQL。できればSQLServerも対応。
    • CREATE TABLEを含んだDDLを出力できる。
    • データベースのテーブル構造図を出力できる。
    • Eclipseのプラグインとしてインストールできる。

    そこで見つかったのは、ER MasterというER図用GUIエディタです。

    ER図用GUIエディタといっても、以上の条件はすべてクリアしています。しかも、Crayと違ってテーブル構造図はExcelのファイルに出力できます。CrayはHTMLファイルしか出力できませんので、紙での配布では違うフォーマットにしてあげないといけないので大変でした。Excelに出力できることで、顧客へのドキュメント提出は楽になります。しかし、まだExcelファイルへは英文なので、テンプレートをなんとか修正しなければいけないようです。

    とりあえず、ER Masterを使っていきたいと思います。これでCrayを使う理由はなくなってしまいました。使用結果は、順次書いてきます。

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

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

    追記(2021年7月2日)

    この記事を書いてから随分経ちますが、今はER Masterは使っていません。そもそもEclipseを使っておらず、Visual Studio Codeに開発環境を移行してしまっていますので。

    現在のデータベースモデリングツールは、MySQL Workbenchを使っています。と言いながらも、あまりデータベースを最初から設計する機会が少なくなりました。WordPressとか最初からデータベースが用意されている環境を利用する方が多くなっています。

  • Eclipse-PDTを上書きインストールしたらプラグインが無効になる話し

    先ほどの記事のように、Eclipse-PDTを上書きインストールしたらプラグインが無効になってしまった。

    とりあえずの必須のプラグインは、

    の2つ。再インストールしようにも、うまくいかない。

    Clay Database Modelingは2.0になっていて、旧バージョンのアップデートサイトがクローズされている。旧バージョンのライセンスは購入しているが、開発元のアズーリによると、旧バージョンは新しいバージョンにアップデートしろとのこと。しかし、旧バージョンからのバージョンアップはなし。しかもライセンス料は80,000円也。機能とコストが全く見合わないのでアップデートはやめておく。別のデータベースモデリングのプラグインを探さなければいけない。

    プラグインを有効にどうしてもできないので、しかたないので再インストールをしなければいけない。なにげにアップデートしたら、こんな羽目になった。残念。

    著:山田祥寛
    ¥3,366 (2025/03/27 13:40時点 | Amazon調べ)
    著:松浦 健一郎, 著:司 ゆき
    ¥2,574 (2025/03/27 13:40時点 | Amazon調べ)
    著:谷藤賢一, 著:徳丸浩
    ¥2,750 (2025/03/30 15:22時点 | Amazon調べ)
  • CakePHPでデータベースの文字コードの話し

    今開発しているWebサイトは、別の開発会社が別の機能を開発している。時間の関係で私がすべて開発できないので、発注元が別の開発会社を割り当てている。

    その会社からの質問。

    本番サーバーのDBにアクセスしたら文字コードの関係でデータが抽出できない。

    そういえば、本番サーバーはTurboLinuxで文字コードがEUCだっけ。インストールされているPostgreSQLも7.x系で、テストサーバーとは違っていたような。テストサーバーは8.x。この辺りは自分がサーバーの面倒を見ている訳ではないから伝えていなかった。失敗。

    PostgreSQL上にUTF-8でデータベースをcreatedbで作成しておいて、UTF-8でダンプしたSQLでリストアしておいた。システムの想定する文字コードはUTF-8。この辺りが怪しそうなので連絡しておいた。

    私はCakePHPで開発していて、別の開発会社はperlのCGIで開発。CakePHPの経験がないので、perlのCGIになったようだ。

    こちらは全く文字コードの意識はしていない。なにかうまく動いている。結果オーライ。apps/config/database.phpでencodingの設定もしていない。データベースが絡んだ案件は、必ず最初に文字コードでトラブルが起こる。

    後から、私は非協力的だと開発会社から言われるのでしょうね。psqlコマンドで一発でわかりそうなものだが、そういえば発注元はその開発会社に、サーバーにシェルでアクセスさせる権限が与えていないかも・・・。

  • 本棚ブログパーツを配置した話し

    右メニューに本棚ブログパーツを配置していました。自分で購入した本を並べてみます。

    今回導入したのは、メディアメーカーのパーツです。書籍データベースはアマゾンを利用しているようです。

    書籍の登録も、ブックマークレット機能ツールをインストールすれば、アマゾンのページでマウスの左ボタンで登録できるので簡単です。ただ細かいところで行き届かないのがありますが、あとは問題なし。

    たまに、同じ本を2冊買ってしまうこともあるので、これで防げるか? しかし、登録がいつまで続けられるのが問題か。