質問: 個人で趣味程度のウェブアプリケーションを開発しております。 一定のアプリケーションを世の中に公開することができるに至りました。 これまでは、直接レンタルサーバー上のファイルを修正することでなんとなくバグやマイナーチェンジを行ってきました。 訪問者が増えてきてしまったことで流石に望ましくない状況となり、ローカルのMAMP環境で構築し、問題がなければFTPでレンタルサーバーにファイル群をアップデートする方法を採ろうと考えております。 ここで問題なのがMYSQLです。 私は大きな勘違いをしており、ローカルでもレンタルサーバー上のMYSQLにアクセスして実行することができると勘違いしており、そのままMYSQL関連のコードもアップすれば動作すると考えていたのですが、ローカルで作業していてそもそもアクセスができませんでした。。アンカータグのhref等は相対参照にしておけば問題なく動作するのですが、MYSQLは構造やPHPコードそのものに影響するので単純にはいきませんでした。 1) そもそもですが、MYSQLにアクセスできるのはそのwebサーバーがある環境下だけ(レンタルサーバーならレンタルサーバーのMYSQLに、localhostであれば自分のクライアント内のMYSQLにしかアクセスできない)という考えで正しいでしょうか?当たり前すぎる質問であれば申し訳ございません。。 2)1)が正しいことを前提として、ではローカル環境(MAMP)でローカルのMYSQLを利用してアプリケーションを開発して、それを本番環境としてレンタルサーバーにアップロードする場合、一般的に皆様はどのようにされるのでしょうか?同じように動作するようにレンタルサーバー側のMYSQLの構造も作り込んであげるし、またSQL文をはじめとするPHPもレンタルサーバー用に書き換えてからアップロードするのでしょうか? 想像するだけで手間ですし、動作しないリスクを考えるとこのような手続を踏んでいるとはあまり思えないのですが、何か実務的な方法があるのでしょうか?
回答: もしかしたら質問要件正しく理解してないかもしれませんけど、 同じDBの種類でバージョンが余程離れてない限りは起きる問題ってそうそうないのではないかと。 同じテーブル構造をローカルにも準備しておいたら良いです。 それでも心配でしたらレンタルサーバー上にサブドメイン切ってアプリケーションを動作するようにしておき、テーブルもtest用で同じテーブル構造を準備してCT環境として本番反映前に使うと良いと思います。 そもそも、改修段階のものが本番DBにアクセスするのは望ましくありません。 テスト用のデータが入りこんでしまったりするとそれは本番に影響があります。 テスト用のアプリケーションにはテスト用のDBを別途準備しましょう。 データが違ってもデータ構造が違わなければ大きな問題にはならないはずです。