12

PHPで書かれた新しいWebサイト用に2つの環境をセットアップしたいと思います。1つ-新しいバージョンを開発してテストします。そして、私の実際の安定バージョンのWebサイトが利用可能になる2番目のプロダクション。

PHPのWebサイトは、多くのPHPおよびその他のファイル(JS、画像など)で構成されます。したがって、この環境を最善の方法で準備して、ソース管理を容易にし、Webサイトを開発環境から本番環境に高速コピーし、開発バージョンをWeb上のユーザーが利用できるようにして、実際の作業の進捗状況を確認できるようにする方法を考えます。変更を提案したり、バグを報告したりします。

この出発点からどこへ行くべきかアドバイスをいただけませんか。これについての本はありますか(実用的な観点から?)、または私や新しいプロジェクトの開発に携わる他の人々にとってこのプロセスを簡単かつ良いものにするために注意すべきことや重要なことについての経験やヒントがありますか?

4

4 に答える 4

13

まず、次の 3 つを使用します。

  1. SVN - これにより、ソース管理が可能になり、変更を追跡できるようになります。学習曲線を容易にするために、これに加えて GUI を取得することをお勧めします (Tortoise が一般的なものです)。

  2. RSYNC - これにより、単一のコマンドでローカル サイトとリモート サイト間の同期を合理化できます。RSYNC は差分エンジンを使用して同期します。つまり、増分同期は数秒で行われます。集中的なプログラミングを行っているときは、1 時間に 4 ~ 5 回同期して、簡単に小さな変更をすばやくプッシュすることがあります。

  3. MySQLDump - これにより、本番サイトからデータをインポート/エクスポートできます。私は通常、これを週に 1 回行い、ローカル サーバーで運用データを取得します。これにより、ローカル バックアップが得られるだけでなく、ローカル テスト環境で運用データをいじることができます。

これら 3 つだけでも、長期的には多くの時間を節約し、スケーリングを可能にします。後で、自動ビルド ツール、単体テスト フレームワーク、xml ドキュメント フレームワークなどを調べて、本格的な製品をビルドできます。

于 2009-01-01T16:53:58.330 に答える
6

私はこのような設定で作業しているので、これを行うためのヒントをいくつか紹介します。私はこれをしばらくやっていて、あちこちのねじれを解決していて、これは正直言ってかなり生産的だと言えるセットアップだと感じています。

小さな注意:私はOSXで作業しているので、Linux / Windowsユーザーの場合、使用される特定のアプリケーションはあなたとは少し異なる可能性があります。

私はMacで本番の「サーバー」を実行しています。MAMP(www.mamp.info)を使用して、PHPとMySQLを備えたApacheサーバーを簡単に提供しています。XAMPPなどの同様のツールを使用することも、すべてを手動でインストールすることもできます。それは本当にあなた次第です。

次に、私のWebサイトと顧客のWebサイトがホストされているライブサーバーがあります。新しいWebサイトプロジェクトごとに(例としてabc.comを取り上げます)、staging.abc.comというサブドメインを作成し、その上でテストを行います。実際に稼働する前に、まったく同じハードウェアとソフトウェアでテストすることは常に良いことです。

私はバージョン管理のニーズにSubversion(または略してSVN)を使用していますが、新しく更新されたバージョンをSVNサーバーに送信するたびに、「フック」を簡単に追加してオンライン本番サーバーを自動的に更新できるという追加のボーナスがあります。SVNを使用すると、同じプロジェクトで複数の人と簡単に作業することもできます。SVNとその使用方法の詳細については、http ://svnbook.red-bean.com/にあるすばらしい(そして無料の)オンラインブックをお勧めします。

つまり、私はMAMPを使用してローカルで作業し、ローカルの「動作中」のサーバーを提供しています。その後、私はstaging.abc.comの場所でオンラインでテストして、すべてがうまく機能するかどうかを確認しおそらく他の人がプロジェクトを見ることができるようにします(たとえば、クライアントに何が起こっているかを見てもらいたい場合)。私は実際にプロジェクトを実際のドメインに配置して公開しています。

ワークフローを最適化するために実行できることは他にもたくさんありますが、これで開始できます。

お役に立てれば!

-デイブ

于 2009-01-01T16:39:46.143 に答える
3

可能であれば、開発者のローカルボックスで開発を行うことをお勧めします。他の開発者が関与している場合は、データベーススキーマ、javascript、css、およびphpコードの両方をチェックアウトして、開発者の個人用ボックスで非常に簡単にセットアップできるように、バージョン管理をセットアップすることをお勧めします(正しいLAMP/があると仮定します)。 WAMPセットアップ)

また、活発な開発が行われているサーバー上でテストWebサイトを管理しているところも見ました。アクティブな開発ではこれを避けますが、最新のチェックインされたコード(最新のビルド)のブラックボックステストにはこれを使用します。

テストWebサイトがチェックアウトしたら、バージョン管理からライブWebサイトがある場所にコードをエクスポートする必要があります。svnを使用すると、現在のライブバージョンを示すリビジョンまたはタグを指定するsvnupdateを使用してライブコードを更新することができます。

さらに、db access / username / passなどのいくつかの設定を、バージョン管理されていない別のインクルードファイルに保持することをお勧めします。これを他の場所に保管し、開発者がPC上のローカルデータベースへのアクセス権をプラグインできるようにします。サーバーに、データベースにアクセスするために必要なすべてのものをプラグインします。これは本当に些細なコード(いくつかの変数を定義する)である必要があるため、バージョン管理されていないことは大したことではありません。必要に応じて、テンプレート化されたバージョンをバージョン管理することもできますが、実際のデータベース情報をバージョン管理に入れることはしません。

于 2009-01-01T16:32:54.443 に答える
0

MAMP または WAMP を使用してローカルで開発し、それを github にプッシュして、github からライブ サイトを更新する場合は、ここから始めるのが良いでしょう: http://www.mybringback.com/bringers/14509/git-local -and-shared-server-development-environment-with-ssh-setup/

それが役立つことを願っています。

于 2013-10-12T20:50:25.153 に答える