2009-07-02 9 views
5

私は2人がWordPressでサイトを開発するプロジェクトを開始します。また、私たちがライブをプッシュする前にクライアントがサイトの変更を見ることができるように、開発サーバーをセットアップする必要があるかもしれません。また、開発から開発、生産までずっとプッシュしなければならないデータベースの変更(ワードプレスの設定など)があるかもしれません。WordPressに基づいてウェブサイトを作成するためのあなたのワークフローは何ですか?

私はこのために最良のワークフローが何であるか疑問に思っています。私は一般的な概念を理解しています。これは通常、Railsで開発して移行を実行し、capistranoとgitを使用するためですが、WordPressサイトでも同様の作業をしたいと思います。経験豊富なWordPressの開発者がいますか?

更新:おそらく私はこれを明確にしていないかもしれませんが、私はワードプレスを理解しています。私は5-10ワードプレスのブログとカスタマイズされた機能を作りました。しかし、私は複数の人と一緒にWordPressのサイトで働いたことがないか、開発者、ステージング、およびプロダクション環境を持つことに対処しなければなりませんでした。

ありがとうございました!

答えて

0

WordPressはかなりモジュラーな傾向があります。私は、ソースコントロールが役立つと思うし、プレビューサイトへのアップロードを自動化するためのスクリプトを書くかもしれない。 SVNによって更新されるフォルダと作業フォルダが1つだけ保存されます。

WordPressは、ページテンプレートとウィジェット、プラグインを使用できるという点でモジュール化されています。サイトの一部をウィジェットやプラグインとして記述し、それらをまとめて動作させることができます。カスタムレイアウトまたはPHPコードのページでは、ページテンプレートを使用できます。あなたはめったにWordPressのコアファイルに触れる必要はありません(誰にもそうしないでください)ので、WordPressで提供されている拡張ツールに固執すれば問題ありません。

+0

私はwordpressを理解しています。多分私はそれをもっとはっきりとしていたはずです。この質問は具体的にはワークフローに関するもので、私は具体的な答えを探しています。私はスクリプトを書く必要がある場合、人々はリンクを提供することができます期待している – Tony

0

権限管理にはロールマネージャプラグインを、仮想マシンにはquick wpをインストールするにはTurnkey Wordpressを試してみてください。しかし、gitのような役割を果たすかもしれない何かについての手掛かりはありません。

1

ワークフロー?さて、私は複雑なWordPressのウェブサイトで数人の人と仕事をしていましたが、それでもやります。私たちはSubversionとTracをほとんどの場合使用しますが、データベースに変更を加えることはめったにありません。セットアップ中だけ私は推測する。ここで

はスクリプトです:

#!/bin/sh 
echo Copying $1 to $2 ... 
mysqldump -uroot -pPASSWORD $1 > /tmp/tempdump.sql 
mysql -uroot -pPASSWORD -e "CREATE DATABASE $2;" 
mysql -uroot -pPASSWORD $2 < /tmp/tempdump.sql 
rm -f /tmp/tempdump.sql 
echo Complete 

それはあまりにも簡単です、私は知っているが、それは私がそれを好きなようだ、あなたはしたくない)パスワードとpehapsとPASSWORDを置き換えることを忘れないでください。これらの目的のためにユーザーのルートを使用してください(私は本当に気にしません、それが私のことです)。

copydb.sh例えば、その後のchmod + X copydb.shにファイルを保存して、あなたはこのようにそれを実行することができます:./copydb.sh database1 database2;)

このDEVの種類や生産環境に対処するために
+0

あなたはdevサイトを使用するか、ただ一つのprodサイトを使用しますか? devサイトを使用する場合は、プラグインを追加するたびにDB設定をコピーする必要があります。それはおそらくそれほど苦痛ではない、ちょうどそれが悪い考えだったかどうかのいくつかのフィードバックを取得したいと思った – Tony

+0

クール....スクリプトを共有するように気を付けろ? – Tony

+0

確かに、回答の更新を見てください – kovshenin

2

、私が書きましたそうでなければ手作業であろうと私を助けるためのperlスクリプト。特定のステップにおなじみの名前を付けるので、正しい順序で実行することを忘れないでください。私はSVNの下でDEVを持っています。私はこのスクリプトで毎回PRODUCTION環境を作成します。そうすれば、私は2つのコード枝を維持することについて心配する必要はありません。

私は私のDEVコードの新しいチェックアウトディレクトリ(/ tmp/foobarのような)を選択するのでSVNを使用しています。非常に長い間そこにいることはありません。

オプションステップ0:差分データベース構造

mysqldump -d -u USER -pPASS mydotcom > production.sql 
mysqldump -d -u USER -pPASS mydotcom_dev > development.sql 
vim -d production.sql development.sql 

時々プラグインはテーブルを追加し、これはそれを表示します。それ以外の場合は、テーブル内で行った変更(プラグインのインストール)を再生して、特定のテーブルとSQLステートメントをコピーする価値がない場合に再生します。

ステップ1クリーン: スクリプトは、現在のディレクトリ内のすべてのファイルを削除し、DEVブランチの新しいsvnチェックアウトを行います。この新しいチェックアウトはPRODUCTIONコードに変換され、そのWebルートにコピーされます。

ステップ2 make: perlはvim検索を実行し、wpconfig.phpのデータベース名を置き換えます。検索と置換は、perlでも簡単に行えます。

system('vim -c "%s/define(\'DB_NAME\', \'mydotcom_dev\'/define(\'DB_NAME\', \'mydotcom\'/g | w | q" wp-config.php'); 

ローカルファイルアップロードディレクトリを削除します(PRODUCTIONファイルを上書きしないため)。 wpcontent/uploads私はそれが標準インストールされていると信じています。

別の検索および例えば

vim -c "%s/dev\.mydot\.com/www.mydot.com/g | w | q FILENAME.php 

ステップ3をインストールし、私のDEVのURLを持っているプロジェクト内のすべてのテキストファイルに置き換えます。 dircopy()を使用してwpcontent/uploadsを安全にバックアップしてください。このクリーンアップされたディレクトリのdircopy()をPRODUCTION Webルートに行います。そのようにWebルート内のすべての.svnディレクトリを削除します。

find /PRODUCTION/WEBROOT -ignore_readdir_race -name .svn -exec rm -fr {} \; >/dev/null 2>&1 

は、今すぐあなたのDEVコードが本番コードは、すべてのハードコードされたURLを交換し、SVNではありませんアップロードディレクトリの周りの安全維持に変換されています。あなたはそれを停止し、あなたのためにもapacheを開始することさえできます。私のソリューションがあなたの問題を解決するのに役立つことを願っています

関連する問題