5丁目通信(仮称)

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

タグ: MySQL

  • データベースモデリングツール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とか最初からデータベースが用意されている環境を利用する方が多くなっています。

  • XAMPPのバーチャルホストを設定してCakePHPのテストサイトを構築した話し

    CakePHPで開発していて、ローカルのサーバーにテストサイトで動かしたいとき、まともにlocalhost直下に置ければいいのですが、いろいろとプロジェクトを抱えていると、たくさんのテストサイトを同時に動かしたいときがあります。サブディレクトリごとに設定してあげてもいいのですが、これだと.htaccessの設定が面倒であったり、絶対アドレスでリンクを指定できないとか制限があります。

    ドメイン直下にドキュメントルートを配置できればいいのですが、一つ考えられるのはサブドメインを指定するというのがあります。しかし、これではlocalhostでは指定できないととか、わざわざローカルのPCにサブドメインを指定するのもやっかいであるとなります。

    次に考えられるのはポート番号で分けてしまう方法があります。例えば

    • Aプロジェクトは、http://localhost:8080/
    • Bプロジェクトは、http://localhost:8082/

    などでアクセスすることになります。これですと、ポート番号を適当に追加していけばプロジェクトを分けてアクセスすることが可能にになります。

    簡単にローカルのPCにCakePHPのテスト環境を構築するにはXAMPPをインストールしてしまうのが一番簡単です、XAMPPを一つインストールしてしまえば、CakePHPのテスト環境で必要なApacheや、PHP、MySQLも動かすことがことができます。

    ポート番号で分けてCakePHPの環境で動かすには、Apacheのhttpd.confにバーチャルホストの設定を追加してしまいます(ここからが本題)。上記のAプロジェクトの場合はApacheのhttpd.confに以下のバーチャルホストの設定を追加します。

    Listen 8080
    
    DocumentRoot C:/workspace/TestProject/app/webroot
    DirectoryIndex index.html index.php
    ServerName localhost
    
    <Directory C:/workspace/TestProject/app/webroot>
    Options Indexes FollowSymLinks MultiViews Includes ExecCGI
    AllowOverride All
    Order deny,allow
    Allow from all
    </Directory>

    この場合、ダウンロードしたCakePHPは、c:\workspace\TestProjectにコピーしてしますと(EclipseのPDTで開発しているためこんなディレクトリにプロジェクトを入れています)、ドキュメントルートはその下の\app\webrootになります。プロジェクトを増やす場合は、赤字の部分を変更すればいいでしょう。

    Optionsは、適当に動作させる環境に合わせて設定してください。これは、テスト環境を自分のローカルPC以外からアクセスできないようにしたり、ましてインターネットからアクセスできないようにしたり(もちろん当たり前ですが)してしまえば、あまり気にしなくてもよいかもしれません。

    以上、いつもhttpd.confの設定でつまずく覚え書きです。

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

    追記

    せっかくこの記事にたどり着いて読んでくれたところ申し訳ありませんが、現在(2014/04/28)のところ、この方法は使っていません。今はVirtual Box+Vagrant+Chefでローカルのテストサイトを構築しています。

    追記2

    またまた、上記の追記のVirtual Box+Vagrant+Chefはもう使っていません。現在は、Dockerでテストサイトを実現しています。その方が簡単です。

  • XOOPSサイトのサーバーを移行した話し

    お客様の希望で、サーバーを私の会社が面倒見ているサーバーに移行しました。ディスク容量は2倍になって料金はそのまま。しかし、そんなにディスクを使っていないのでサーバー会社のメリットはないかも。しかし、私の会社で面倒見てあげられるというのがメリットかも。

    お客様のサイトはXOOPSで作成したサイトです。最初は、素直にXOOPSをインストールしてコンテンツを移行していこうと思いましたが、時間と手間を惜しんで一挙にデータベースとプログラムファイルをコピーしてしまいました。大抵はここではまります・・・。

    データベースをエクスポート/インポートしたら、文字コードがEUCからUTF-8になってしまいました。移行先のMySQLで新規にデータベースを作るとUTF8にしてしまうらしい。無理矢理EUCでインポートしてもいいのだけど、あとあとトラブルになるのがいやなのでそのままUTF-8することにします。

    しかし、サイトは見事に文字化けです。モジュールに読み込むLanguageファイルをすべてUTF-8に変換してしまいます。シェルで変換スクリプトを作っておけばいいのですが、そんなに手間ではないだろうと秀丸エディタをつかって地道にUTF-8に保存していきます。xoops_trust_pathのディレクトリも忘れずに。

    /language/japanese/global.php の

    define('_CHARSET', 'EUC-JP');

    define('_CHARSET', 'UTF-8’);

    にします。これは、METAタグのcharsetの指定しているところです。

    最後にメールのタイトルの文字化けを修正します。文字化けの修正方法は、ここに載っています。

    以上で、無事に移行完了です。

    著:山田祥寛
    ¥3,366 (2025/03/27 13:40時点 | Amazon調べ)
    著:松浦 健一郎, 著:司 ゆき
    ¥2,574 (2025/03/27 13:40時点 | Amazon調べ)
    著:谷藤賢一, 著:徳丸浩
    ¥2,750 (2025/03/30 15:22時点 | Amazon調べ)
  • ブログをaccata.comのサーバーに移動しました – WordPressブログを移行した話し

    そろそろ借りているメインのドメインのサーバーの残りサイズが少なくなってきましたので、別に借りているaccata.comのサーバーに移動しました。

    accata.comは、アンドワークスの名前を使えない何でもありのサービスで使っています。例えば、お客さんが利用するメーリングリストのサービスとか、SSLでフォーム入力したいとか。

    今回の作業のメモです。WordpressからWordpressへのブログの移行ですので簡単かと思っていましたが、そうではなかったです。

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

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

    まず、accata.comにWordpressをインストールします。これは5分程度の簡単な作業です。ここまで問題なし。あとはブログデータの移行です。

    WordPressのエクスポート/インポート機能でブログデータを移行してみました。無事に移行できました。しかし、大きな問題が。記事番号が改めて採番されてしまうようです。これではドメインとパスと変えただけでは、正しいaccata.comのページにアクセスできません。サーバーのリダイレクションの設定で、昔のドメインでアクセスしたときに、accata.comにある記事に自動的に移動してくれません。

    次にWordpressのMySQLテーブルを移行してみます。サーバーにインストールしているphpMyAdminを使えば簡単。しかし、accata.comにアクセスしてみると、404のページが見つからないエラーになります。

    悩むこと1時間、Wordpressの設定にある「ブログのアドレス (URL)」の設定が原因でした。Wordpressのサイト管理にはアクセスできませんので、直接MySQLのテーブルのデータをいじることで対応。wp_optionsテーブルのoprion_name項目がhomeのレコードをaccata.comに設定。これでアクセスできるようになりました。

    しかし、トップページから各ページにアクセスと、違うページが表示されてしまいます。これは、パーマリンク構造を数字ベースにしているため、.htaccessのRewriteで設定されているパスが違っているのが原因でした。

    一度、パーマリンク構造をデフォルトに戻して、各ページにアクセスできることを確認。その後、数字ページに設定して、.htaccessを書き換えることで無事に元に戻りました。

    最後に、古いドメインのWebサーバーに、ブログのディレクトリにアクセスされたら、accata.comのサーバーにリダイレクトするように設定しました。これは、リンク切れ対策です。

    以上で設定完了。これでaccata.comのサーバーにブログが構築できました。おそらく、この記事もaccata.comから配信されていることでしょう。

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

    このブログで利用しているWordPressが新しく2.6がリリースされましたので、アップデートしてみました。

    まずは、念のためのバックアップです。MySQLのDBをphpMyAdminでバックしてしまいます。今回は、丸ごとWordPressのDBをバックアップします。

    次にプログラムのバックアップします。こちらは、フォルダをまるごとテンポラリのディレクトリにコピーしてしまいます。

    これで、何かあったら元に戻せます。

    WordPressのサイトから2.6をダウンロードしてして、サイトにFTPでアップします。ZIPファイルでしたので、unzipコマンドで解凍し、所定のディレクトリにコピーします。

    あとは、/wp-admin/upgrade.php を動かして、DBをアップデートします。

    正常に動作していることを確認して完了。簡単でしょ??

    しかし、どこが変わったかは、あまり実感はわかりましません。バグFIXしているのでしょうかね。 

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

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

    追記

    WordPressで記事を編集していて、間違えて違うページに行っても、書いた内容は自動保存しているのですね。あわてものにはいいかもしれない。

  • OpenPNE拡張開発 - 悲しい結末

    現在開発中のOpenPNEのアプリケーションの拡張案件。作業していた中の悲しい結末。

    今回の拡張は、3,500件のデータをOpenPNE内のテーブルにインポートするもの。このデータは、追加・更新・削除のデータを含んでいて、レコードごとにそれぞれの処理を行います。つまり、バッチ処理です。もちろんデータの整合性チェックを行って、外部のWebサービスの連携(これがとても重い!)も行います。

    しかし、100件辺りで、Apacheを異常終了してしまう。ローカルPC上でXAMPPでテストしているのが問題? でも、本番で動かなくなるのも問題ですので。ローカルPCで解決することに。

    まずは、SQLの見直し、なるべくシンプルにということでSQLを書き直しましたが、解決にならず。

    メモリの使い方が悪いのかと重い、処理を見直してきちんとメモリ解放するようにしました。しかし、これも解決にならず。

    インポート結果の出力を制限するようにしましたが、こちらも解決にならず。

    いよいよ、最後の手段。最初はDBへのアクセスは、まともにOpenPNEのライブラリを使っていました。これをMySQLの低レベルの関数でアクセスするように変更。つまり、画面周りだけをOpenPNEで記述して、あとはガリガリPHPのMySQL関数で書きます。PEARも使わずに。

    これで、問題なく動くようになりました。結局は最初の2週間の成果はゴミ箱へ。早々に諦めて次の手段に移ることも大事です。

    このページは xfy Blog Editor を利用して作成されました。

  • PHP-STATをインストールした話し

    PHPで解析されたアクセス解析ソフトPHP-STATSをインストールしてみました。PHP+MySQLが動いていれば、ものの5分でインストールが完了します。解析するサイトにJavaScriptを挿入すれば完了です。XOOPSで構築されたサイトですと、テーマにJavaScriptを設定すれば OKです。詳しいインストール方法は、PHP-STATSのインストールガイドをご覧ください。

    PHP-STATSからは、ユーザーの足跡を追うことができます。一人のユーザーがどの順番でページをたどっていったかがわかります。あと、おもしろいのは、検索サイトからどのような検索キーワードで検索したかもわかります。アンドワークスのサイトに、意外なキーワードでアクセスされているのはおもしろいです。

    PHP+MySQLが動作しているサイトであれば、とても簡単に導入できますし、ある程度はサイトの傾向がわかりますので、PHP-STATSを利用することはお勧めです。

    著:山田祥寛
    ¥3,366 (2025/03/27 13:40時点 | Amazon調べ)
    著:松浦 健一郎, 著:司 ゆき
    ¥2,574 (2025/03/27 13:40時点 | Amazon調べ)
    著:谷藤賢一, 著:徳丸浩
    ¥2,750 (2025/03/30 15:22時点 | Amazon調べ)
  • レンタルサーバーの移行の話し

    現在借りているサーバーを引っ越します。今は、専用サーバーで運用していますが(使い切っていないのが現状)、共有サーバーにします。一緒のサーバーで運用されている皆様、お手数をおかけしましてごめんなさい。もっと、使いやすくて安全で安いサーバーにします。

    1ヶ月をかけて、引っ越し先を検討していました。サーバーの条件として考えていたのは、

    1. マルチドメインで運用できること。
    2. SSHでアクセスできること。シェルが使えること。
    3. 共有のSSLが利用できること。できれば専用のSSLにも移行できること。
    4. PHPが使用できること。
    5. MySQLとPostgreSQLが使用できること。
    6. XOOPSが運用できること。
    7. メールの転送設定ができること。
    8. 国内でネットワークの応答が速いこと。
    9. サーバーが安定していること。
    10. データのバックアップを取っておいてくれること。
    11. ドメインの管理を移管することなく、こちらでできること。
    12. 継続して会社が存続すること。

    などです。つまり、ある程度自由にできるサーバーを探していました。今は、1000円以下でサーバーを借りることができますが、条件的に厳しいものがあります。例えば、UNIXのシェルが使えないとか、ドメインが1個しか使えないとか・・・。

    候補に残ったは、2社だけでした。ここから1社に絞り込みました。ただし、何か問題があっても引き上げられるように、ドメインはこちらで管理して、縛りは6ヶ月で契約しました。

    アンドワークスでサイトを構築されるお客様には、800Mで月1000円ほどで提供できそうです(費用は半額で、ディスクは8倍!)。

    レンタルサーバーは、1年ごとの見直しがひつようですね。現在、高サービスで低価格のサービスが出てきています。皆様も、一度検討してみたらいかがでしょ
    うか? 今回は、専用サーバーから共有サーバーにしてしますが、費用は1/6になっています。ただ、サーバーの中身の移行が面倒ですが・・。