ずっと前に作成した小さなWebサイトが少し増え始めており、変更を加える際に問題が発生し始めています。元々、すべてのページは.htmlでしたが、オフラインで編集してテストし、すべてが正常に機能することを確認しました。その後、phpインクルードがいかに役立つかを理解したので、すべてを.phpに変更してインクルードを使用しました。 Apacheがなければオフラインでテストできなくなったので、Filezillaを使用すると、サーバーに既に存在するファイルに対して「表示/編集」オプションを選択し、それらを編集してから、もう一度アップロードすることができました。これは私がこれまでやってきたことであり、ほとんどの場合かなりうまくいきます。 filezillaが作成した一時ファイルを保存し、それをサーバーにアップロードするだけです。
昨日、前日に作業していたjavascriptファイルの1つが空のファイルに置き換えられていることに気付きました。これは、存在しない一時ファイルを開いたまま/崇高なテキストで空のファイルをアップロードすることと関係がありました-私は何が起こったのか本当にわかりませんが、それが起こるはずがなかったはずです。そして今、私はサイトのデザインを変更する必要があり、それを一度に1ページずつ行うのは目立つため、最初にオフラインで行う必要があります。
サイトをオフラインで完全にテストできるように、バージョン管理を使用してApacheをインストールしたいのですが、これにはいくつかの問題があります。 1つ目は、サイトにフォーラムがあることです。 mysqlをインストールしてテーブルをエクスポートしてからオフラインでインポートすることもできますが、人々がWebサイトに投稿している間、オフラインコピーは古くなり、サーバーにアップロードできなくなります。私もいくつかのPythonスクリプトをWSGIを使用してサイトに配置しています。私のWebホストの設定は非常に具体的であるため、pythonスクリプトをオフラインで記述し、それらが機能していることを確認した場合、彼らがオンラインで働くかどうかはわかりません。
すべてをオフラインで編集し、機能したらサーバーにすべてアップロードし直す必要がありますか? phpまたはpythonスクリプトがサーバー上ではなくローカルマシン上で一方向に実行されるとどうなりますか?
バージョン管理は、以前の(うまく機能している)バージョンに戻ることができる範囲でのみ役立ちます。
失敗したデプロイメントや変更には役立ちません。
テスト環境が必要です-変更を適用してテストできるWebサーバーであり、満足なときにのみ、ライブ(公開されている)Webサーバーにプッシュします。
Windowsを使用していると仮定しますが、これはLinuxとMacでも機能します。
まず、作業中のコンピューターに [〜#〜] xampp [〜#〜] をインストールすることをお勧めします。これは、Apache、MySQL、およびPHPのバンドルであり、インストールして、基本をテストするのに十分な基本構成を提供します。その後、サイト全体をPCに置くことができ、アップロード/テストにかかる時間を大幅に節約できます。ファイルを保存してブラウザを更新するだけです。
次に、サイトをホストするサーバーと同じサーバー上にサイトの開発バージョンを置くことをお勧めします。あなたのサイトは巨大ではないようですので、これは問題にはなりません。私がしていることは、サイト全体を保持するwww.mysite.com/devディレクトリがあることです。変更を加えた後、変更したファイルを「dev」フォルダーにアップロードしてテストします。すべてが順調であれば、ルートフォルダーにアップロードでき、おそらくそれでも動作することはわかっています。/devディレクトリを.htaccessファイルで保護します。
つまり、要約すると:
テストサーバーが必要です。
自分のPCがすでにLinuxまたは何らかのUnixフレーバーを実行している場合、Apacheのインストールは簡単です。うまくいかない場合は、独自のサーバーを構築します。まともなLinuxディストリビューション(debianをお勧めします。インストールは非常に信頼性が高く簡単ですが、他にもたくさんあります)を選択して、スペアPCにインストールします。自分のPC上の仮想マシンの周りや中にある可能性があります。
専用のテストサーバーの追加の利点は、コードだけでなく、特にテストサーバーが実際の環境(同じディレクトリ構造、同じソフトウェアバージョンなど)に非常に類似している場合に、展開手順もテストできることです。
また、* nixシステム管理の基本も取り上げます。これは、プログラマーとして何をしているかをよりよく理解できるので、良いことです。
テストサーバーのセットアップに全力を尽くしていないと思います。私はあなたを責めません。別のホスティングアカウントを作成し、そこでサイトをテストしてみませんか?テストする場合は、SCMから展開します。問題がなければ、「実際の」ドメインにデプロイします。
2012年の最良のモデルは、herokuやapp harbourのようなものです。指定したリポジトリにコミットすると、データがプッシュされます。確実なソース管理システムを使用してすべてを処理するため、ロールバックとバージョン履歴は簡単です。
静的なWebサイトの場合、適切なコマンドライン呼び出しを実行して、指定した間隔でフォルダーを更新するスクリプトを使用して、これをかなり簡単にシミュレートできます。