web-dev-qa-db-ja.com

Wordpress Webサイトをオフラインで構築および更新することは可能ですか?

Wordpressは、ライブWebサイトでWebサイトをオンラインで構築および管理するように設計されているようです。私はここにいくつかの投稿を見ていますそれは何人かの人々がそのような開発をオフラインでやっていることを示しています - Localhostで。しかし、特に更新のためにウェブサイトをオンラインで移動させるという努力は、複雑で、やや手動で行われ、自動化されているわけではありません。実際には、変更が移動できるだけなのか、それともWebサイト全体を再ロードする必要があるのか​​は明確ではありません。更新が作成されている間、これは訪問者がライブのウェブサイトに変更を加えることによって複雑に思えます。そして、バックアップやコンテンツのバージョン管理 - 私はまだそれについてまだ行っていません。

だから何がうまくいく?ライブWebサイトに変更を加えるのが最善ですか?オフラインで開発を行うための最善の方法は何でしょうか。

4
Patrick Moloney

それは完全に変更の種類によって異なります。テーマやプラグインを変更している場合は、変更内容に応じて、それらをローカルまたはリモートの開発サーバー上に構築してから、簡単に本番環境にプッシュできます。

これは1人か2人のユーザーに有効で、変更を追跡してマージするにはGitやSVNのようなバージョン管理が必要なユーザーも増えます。

これを参照してください: https://stackoverflow.com/questions/9705849/how-to-set-up-a-stageing-enviorment-for-wordpress-wordpress-mu/10837071

本番環境を複製しやすく、複数のマシンからアクセスしやすいため、通常はリモートのdevサーバーを使用します。私が設定した方法はローカル開発よりも遅くありません…おそらくもっと速いです。

1
user1337

オフライン開発について@perpetualstudentと同意してください。あなたがウェブサーバーにインストールすることから始めるならば、あなたのPC開発者の指示であなたがユーザーデータを上書きしないことを常にコピーしてください。 wp_optionsテーブルには、データベースをコピーするたびに変更する必要がある2つのレコードがあります。これらは、ローカルPCのWebサーバーを指すように変更する必要があるsiteurlhomeです。

このために私はwindows/etc/hostsファイルを使います(Windows 7ではこのファイルを編集するために管理者としてエディタを実行する必要があります、そしてそれはC:\Windows\System32\drivers\etc\hostsにあります)。このようにあなたのサイトのための静的なDNS名を作成してください:

127.0.0.1   website1 bikefun website3

それからWebサーバの設定を編集して仮想ホストを作成します。 WAMPを使っているので編集します

C:\wamp\bin\Apache\apache2.4.9\conf\extra\httpd-vhosts.conf

のようなセクションを追加します

<VirtualHost *:80>
    ServerAdmin [email protected]
    DocumentRoot "c:/wamp/www/bikefun"
    ServerName bikefun
</VirtualHost>

ブラウザをhttp://bikefunに設定することができます(例)。これは、http://localhost/src/bikefunを介して実行するよりも優れています。他のものとは別に、相対パスはPCと運用サーバーで同じに保たれます。

ローカルバージョンを更新してWebサーバーと同じにするには、2つのステップを踏みます。あなたが最も頻繁にしなければならないのはデータベースです。私はあなたのローカルPCにリモートデータベースのコピーを作ることができるSQLyogを使います、あなたが初めてこれをするとき、あなたはローカルに空のデータベースを作成し、それからサーバーに切り替え、データベース名を右クリックして「別のホストにコピー"コピーするときは、本番データベースを誤って上書きしないように注意してください。ローカルPCにコピーしていることを確認してください。

CPanelを使用している場合は、データベースのダンプをダウンロードしてローカルで実行できます。

コピーしたら、wp_optionsテーブルのこれら2つのフィールドを変更する必要があります。

ローカルPCのバージョンを最初に設定するときは、WebサーバーからWebルートファイルをコピーするか、それ以外の場合は正確なインストールをローカルに複製する必要があります。たとえば、Webサーバー上でwebrootに行き、以下のようなものを使います。

tar -czf name.tgz website-directory/

それからname.tgzをあなたのローカルマシンにコピーし、7-Zipのようなものを使ってあなたのローカルウェブルートに展開してください。

その後、ファイルのコピーを繰り返すことはめったにありません。同じバージョンを更新し、同じプラグインをインストールするなどしてローカルコピーを同期させることができます。

プラグインやテーマを変更または作成している場合は、バージョン管理が必要です。私はほとんどの場合、子テーマを作成してそれをバージョン管理に入れますが、テーマを変更しないのであればこれは必要ありません。新しいプラグインを作成するか、既存のプラグインを編集したら、プラグインまたはテーマディレクトリにGITリポジトリを作成し、それをgithub.comに複製します。それから私はgithubからWebサーバーにクローンします(あなたがあなたのローカルPCでそれを作成/編集したと仮定します)。そのようにしてローカルに開発し、あなたの変更をgithub(またはあなたが選んだリポジトリ)にプッシュし、そこにプラグイン/テーマをアップグレードするためにそれらをwebserverに引き下げることができます。

git pull Origin master

これにより、ローカルPCで慎重にテストしても問題が発生した場合にロールバックすることができます。だからあなたのWordPressウェブルートは両方ともpluginsthemesディレクトリの中のwp-contentに埋め込まれた一つ以上のGITリポジトリを持つでしょう。 githubからライブサーバーにデプロイするために、私は簡単なシェルスクリプトを使います。

#!/bin/bash
# Argument = -w <website> -t <theme> -n <name>
# if -t is not given, plugin is assumed

usage()
{
cat << EOF
usage: $0 options

Deploy a git repository to a wordpress theme or plugin

OPTIONS:
   -h      Show this message
   -w      website. e.g. bikefun
   -t      it's a theme, otherwise it's a plugin
   -n      name of plugin or theme

EOF
}

THEME="false"
WEBSITE=
NAME=

# anything that needs a parameter has a : after it.
while getopts .htw:n:. OPTION

do
    case $OPTION in
        h)
            usage
            exit 1
            ;;
        t)
            THEME="true"
            ;;
        w)  WEBSITE=$OPTARG
            ;;         
        n)
            NAME=$OPTARG
            ;;
        ?)
            usage
            exit
            ;;
    esac
done

if [[ -z $WEBSITE ]]
then
    usage
    exit 1
fi
if [[ -z $NAME ]]
then
    usage
    exit 1
fi

# make sure the repository is up-to-date
cd /home/lamp/webroot
cd $WEBSITE
cd wp-content
if [ $THEME = "true" ]
then
    cd themes
else
    cd plugins
fi

cd $NAME

# overwrite any local changes - 
# this gives freedom to hotfix directly on the server and later overwrite it
git fetch Origin master
git reset --hard FETCH_HEAD
git clean -df

service Apache2 reload

同じプロジェクトで他の開発者と仕事をしていて、それぞれにローカルの開発コピーがある場合は、GITスケールを使用します。デスクトップとラップトップを切り替えるので便利です。

時々私はインターネットに接続されていないところで私のラップトップに取り組んでいます。それは長い飛行機のフライトを埋めるための素晴らしい方法であり、あなたが仕事をしている間中断や気晴らしはありません!これは、WordPressをオフラインで使用しているときにタイムアウトがすべてを遅くしないようにする方法に関する記事です。 http://www.cbdweb.net/wordpress-development-offline/

1
Nik Dow

私達は私達の機械で私達の開発の全てを局所的に実行します。私たちは MAMP Pro を使って私たちの地域の環境やデータベースをホスティングします。 Gitはバージョン管理に使用されており、これらの変更を Beanstalk を使用してプロダクションサーバにデプロイします。

開発がローカルで行われると(これは主にスピード上の理由で行われます - サーバー上よりもマシン上で作業する方がはるかに速いです)、データベースのエクスポート/ダンプを行います。データベースがインポートされてファイルがデプロイされたら、データベースとwp-config.php内のいくつかの値を変更するだけで済みます。

ライブウェブサイトに変更を加えることに強く反対することをお勧めします。保護された(読まれていない)環境で変更を加えて、あなたが何か堂々と混乱しないようにしたいのです。確かに、実際のサイトを安全に変更するのを容易にするインフラストラクチャを整えるにはかなりの作業が必要です。

今のところ、私は自分のマシンでMAMP(Windowsの場合はWAMP)を稼働させ、ローカルサイトを稼働させることに固執するでしょう。

0

大規模なWordPressサイトをいくつかの環境でアップグレードしたところです。アップグレードを実行している間、それぞれを完全にオフラインにしました。 WebサーバーとしてIISを使用していますが、ほとんどの人がApacheを使用していることを理解しているので、両方の設定に適用できるようにできるだけ一般的な手順を試してみます。

手順は次のとおりです。

  1. サイトをオフラインにします(IISでこれを行ったことに注意してください。したがって、Apacheを使用する場合は、Apacheの設定を使用してこれを行う必要があります)。

    a)Web設定で404リダイレクトがどのように行われるかを書き留めます。後で必要になります。 404リダイレクトをサイトのルートを指すように変更します。 http://example.com

    b)WordPressサイトを保持しているものとは別のフォルダ構造内の保持ページを指すようにWebサーバー設定を変更します。 「Website in maintenance」というメッセージを含む1つのファイルindex.htmlを設定します。

サイトは現在シャットダウンされているため、アクセスまたは更新できません。あなたがそれをアップグレードしている間、それは事実上静的です - あなたがWordPressフォルダを指す別のウェブ設定を持っていない限り。そうした場合は、これと同じ方法でオフラインにします。

  1. WordPressフォルダにファイルのバックアップコピーを作成します。

  2. WordPressデータベースのバックアップを作成します。 (必要に応じてデータベースを復元する方法を確実に知っておいてください - バックアップと復元にheidisqlを使用します)。

  3. すべてのサイトファイルをローカルWebサーバーにコピーし、ローカルWebサーバーが実際のサイトとまったく同じドメインを持つように設定します。 Windowsマシンでは、ブラウザがローカルマシンに確実に解決されるように、c:\windows\system32\drivers\etc\hostsを追加して127.0.0.1 example.comを編集する必要があります。

最初はローカルでのみファイルをアップグレードする場合でも、ライブデータベースをアップグレードすることになります。データベースバックアップの/ restoreなどは、ライブデータベース、つまりライブサイトで使用されるデータベースを参照します。

  1. すべてのactiveプラグインのリストを作ります。

  2. すべてのプラグインを無効にする

  3. すべてのプラグインをアップグレードする

  4. データベースのアップグレードなど、推奨される手順に従ってWordPressをアップグレードします。

  5. プラグインをアクティベートする前に、それ以上のプラグインを更新する必要があるかどうかを確認します(これは、既にアップグレードのラウンドが完了している場合でも可能です)。

  6. アクティブ化を必要とする各プラグインを1つずつアクティブ化します。この段階でプラグインをアップグレードするように求められたら、それをアップグレードします。

  7. フロントエンドとバックエンドの両方でサイトをテストします。回復不能なエラーが発生した場合は、バックアップサイトファイルをローカルサーバーに復元し、ライブバックアップデータベースを復元して、手順6からやり直してください。同じ問題が再度発生する場合は、解決方法を調べる必要があります。さらに進む前に。その間に古いライブサイトを復元する必要がある場合は、データベースを復元してから、以下の手順14と15に従います。

  8. ローカルマシン上のサイトのテストが成功したら、ローカルインストールからライブWordPressフォルダにファイルをコピーします。

  9. あなたのローカルマシン上で、上記の4であなたのhostsファイルに作られたエントリを "#"コメントアウトしてください。

  10. 上記の1)で行ったことを次のように逆にします。

    a)ライブWordPressサイトを指すようにWebサーバー設定を変更する。

    b)変更した前の404リダイレクトに復元する

  11. ライブドメインであなたのサイトをテストします。

0
dewd