Last updated:2016-06-27

nginx環境の本番サーバー(外部)とインポート・リリース機能を使う場合

nginxサーバーの場合

universionsで用意されているプレビュー用のサーバーはApacheとよばれるWebサーバーサービスを利用しています。そのためWordPress専用サーバーでも採用例が増えているnginxのWebサーバーでは別途対応が必要になる場合がございます。

インポート元がnginxサーバーの場合

想定しうる差異

  • .htaccess(Apacheで利用)が効かない
    • nginxではconfファイルに記載するため、下層ディレクトリ毎に設定できる.htaccessを利用することができません。

対応策

Apache上で動くWordPressでは、リダイレクト(転送)処理を.htaccessに記載して実現しています。

本番サーバーがnginxであったとしても、WordPressが自動的に.htaccessを作成・編集する機能を備えているため、ほとんどの場合で問題なくインポートすることができます。

TOPページは見れても、記事をクリックしてもみれない場合は、リダイレクト(転送)処理が正常に行われていないケースです。
インポートしたプレビューサーバで管理画面にログインし、パーマリンクを再度設定してください。

WordPressパーマリンク設定:
[プレビューサーバーURL]/wp-admin/options-permalink.php

リリース先がnginxサーバーの場合

インポートしたサーバーにリリースする場合は、ほとんどの場合問題ありませんが、以下のケースでは設定が必要な可能性があります。

  • インポート環境では設定してなかったパーマリンク設定を変えた場合
  • インポートしたサーバーとは異なるnginxを利用したサーバーにリリースする場合

対応策

nginxの設定ファイルに、WordPressのリダイレクト設定を書く必要があります。以下に一例としてサンプルを掲載しますが、お客様自身の環境や意図する動作にあわせて設定内容は異なりますので、自己責任にてご参考ください。

nginxの設定例

server {
    listen       80;
    server_name  universions.com;
    root         /var/www/wordpress;
    index        index.php

    charset utf-8;

    location / {
        try_files $uri $uri/ @wordpress;
    }

    location ~ \.php$ {
        try_files $uri @wordpress;
        fastcgi_index index.php;
        fastcgi_split_path_info ^(.+\.php)(.*)$;
        fastcgi_pass  127.0.0.1:9000;
        fastcgi_param SCRIPT_FILENAME  /var/www/wordpress$fastcgi_script_name;
        include       fastcgi_params;
    }

    location @wordpress {
        fastcgi_index index.php;
        fastcgi_split_path_info ^(.+\.php)(.*)$;
        fastcgi_pass  127.0.0.1:9000;
        fastcgi_param SCRIPT_FILENAME  /var/www/wordpress/index.php;
        include       fastcgi_params;
    }

    error_page 404 /404.html;
    location = /40x.html {
    }

    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
    }
}

以下の部分がWordPressのリダイレクト用の設定になります。

location / {
        try_files $uri $uri/ @wordpress;
}

service nginx configtestと打つことで、文法チェックも行えます。

Last updated:2016-06-25

本番サーバーのインポート/リリース機能対応状況【随時更新】

本番(外部)サーバーへのリリース機能は転送先のサーバーの仕様(ディレクトリ構成・権限・制限など)が様々であるため、全てのサーバーによる動作保証を行っておりません。
運営チームによって動作が確認できたサーバーサービスを以下にまとめておりますが、サーバー事業者の仕様変更やお客様自身の設定などによっては正常な動作とならない可能性もございますので、ご注意ください。

※ 注意事項・制限・禁止事項・免責条項についてはこちらを御覧ください。

外部サーバーの動作確認状況

サーバー リリース機能動作 備考
さくらのレンサバ スタンダードプラン以上
Heteml ファイル転送に使用するrsyncが非対応
ロリポップ スタンダードプラン以上
お名前.com サーバー内でmysqldumpが非対応
Xserver SSHでパスワード認証方式が非対応

また、VPSやクラウドサービスはお客様にて環境構築を行う性質上動作環境状況に記載しておりませんが、パスワード方式のSSHで接続できるほとんどの場合でご利用可能です。

Last updated:2016-06-21

本番サーバーのWordPressを丸ごと同期!本番リリース機能

Universionsの「本番リリース」機能を使うと、ワンクリックで本番サーバーのWordPressをUniversionsプロジェクトにインポートしたり、Universionsの状態を本番サーバーのWordPressに反映させることができます。

本機能の制限事項についてはこちら

スタータープランの場合一定期間で回数制限があります→スタータープランの制限について

本番リリース機能の手順

WordPressプロジェクトを作成します

「プロジェクトを新規作成」より、WordPressのプロジェクトを作成します。
WordPressプロジェクトを作成します

※既存のプロジェクトでは本番リリース機能をご利用いただけません。新しくプロジェクトを作成してご利用ください。

本番サーバーの情報を登録します

「設定」の「本番サーバー」から、本番サーバーの情報を登録します。
setting

【必要な情報】

  • SSHホスト名
  • SSHユーザー名
  • SSHパスワード
  • ポート番号
  • WordPressアドレス
  • WordPressパス

※本番サーバーのSSH接続情報については、各サーバーの管理元にご確認ください。

「接続確認して反映」をクリックすると、接続テストを行います。接続に成功した場合は、下記の画面が表示されます。
接続に成功した場合の画面

本番サーバーから取得する

「本番リリース」にて「取得」ボタンをクリックすると、インポートが始まります。
インポート

※インポート実行中はファイルの追加や更新ができません。

インポートするデータを選択する

インポートするデータを選択して「取得」することもできます。
「取得するデータを選択する」から必要なものにチェックを付けてください(初期では全てにチェックが入ります)

  • WordPressコア
  • wp-content
  • plugins
  • themes
  • uploads
  • languages
  • データベース

本番サーバーへ反映する

Universionsの状態を本番サーバーへリリースする場合は、「本番リリース」の「すべて反映」ボタンをクリックしてください。
「反映」の場合は、データを選択して反映させることはできません。WordPressのコアファイルやデータベースの情報など、全てのデータが反映されます。

本番サーバーへ反映する

リリース前のバックアップ

本番サーバーに「反映」を行う際には、本番サーバーのWordPressのバックアップを取得しています。
バックアップデータはZipファイルでダウンロードできますので、リリース途中に失敗した場合やリリース前の状態に戻したい場合にご利用ください。

リリース前のバックアップ

【バックアップに含まれるもの】

  • WordPressのファイル
  • データベースのsqlファイル

現在の制限事項、既知の障害

随時対応を行っております。

  • Windowsサーバーには現在対応しておりません。
  • nginx環境のサーバーからインポートしたサイトは正しく動作しません。移行方法に関するドキュメント
  • WordPressのバージョン2以前のサイトをインポートした場合に、日本語ファイルのアップロードができないなどの問題が確認されています。
  • サイトアドレスとWordPressアドレスのドメインが異なる場合、データベースのインポートができません。
  • wp-contentディレクトリがコアファイルディレクトリの外に移動している場合、正しく動作しません。
  • utf8mb4(wp-config.phpのDB_CHARSET)の本番サーバーからインポートしたサイトは、MySQL5.5未満のサーバーにリリースできません。
Last updated:2016-06-20

本番サーバーの接続確認、インポート/リリースに失敗したときは

ここではよく発生するエラー内の原因と対応方法についてまとめています。

インポート/リリースのことをここでは「転送」という用語にまとめて記載します。

Operation not permitted が含まれる

原因

本番サーバーの接続情報で設定したSSHユーザーが、対象のディレクトリに対してアクセス権を持っていない場合にファイルの書き込みやディレクトリの作成などに失敗してしまうことが原因と考えられます。

確認方法

本番サーバーにログインし、universionsで設定しているSSHユーザーのアクセス権を確認します。

# 対象のディレクトリ(またはその親ディレクトリ)で以下を実行
ls -l
# wordpressディレクトリ所有者はapacheさん。wが一つもないので書き込みできない。
dr-xr-xr-x 6 apache apache 4096  6月 16 21:59 2016 wordpress

対応方法

本番サーバーにログインし、universionsで設定しているSSHユーザーのアクセス権を付けます。

# 親ディレクトリに移動(例)
cd /vaw/www

# 対象ユーザーが所有者の場合に書き込み権限を付ける方法
chmod u+w wordpress

# 対象ユーザーが所有者の場合に配下のディレクトリ、ファイル全てに書き込み権限を付ける方法
chmod -R u+w wordpress

# 対象ユーザーが所有者でない場合に書き込み権限を付ける方法
chmod o+w wordpress

※wordpressディレクトリを例にしましたが、その下のディレクトリごとの設定変更が必要な場合があります。
※アクセス権の設定は慎重に行ってください。

転送対象ディレクトリの合計サイズが大きすぎます。

原因

指定したディレクトリの合計サイズが1GBを超える場合に表示されます。
universionsの「ソースコード」に保存できるサイズ上限を1GBとしています。(履歴も含む)
インポート実施時に転送対象が1GBを超える場合、上記の上限を超える可能性があるために、表示しているエラーメッセージです。

対応方法

ディレクトリの指定範囲を限定する、不要なファイルを削除してからインポートするなどしてください。

データベース接続エラー

原因

WordPressの場合に、wp-config.phpに記載されているデータベース情報で本番サーバーが使用するデータベースに接続できない状態の場合に発生します。
本番サーバーでのWordPress構築時の設定ミスや、サーバー環境でmysqlコマンドを利用できないなどが原因として考えられます。

確認方法

お名前.comの共用サーバーは、サーバー内でのmysqlコマンドの実行ができないため、本現象が発生することが確認されています。

本番サーバーにログインし、wp-config.phpに記載されているデータベース接続情報を参照します。
以下のコマンドでmysqlに接続します。

mysql -u {DB_USERの値} -D {DB_NAMEの値} -h {DB_HOSTの値}  -p

対応方法

mysqlコマンドが見つからない場合

mysqlコマンドが見つからない場合、universionsは本番サーバーからデータベースのデータをインポートしたりバックアップ取得をすることができません。
ファイルのみの転送は可能ですので、お手数ですが、ファイルのみを転送後、レンタルサーバー事業者のマニュアルを確認、またはサーバー管理者の方にご連絡してデータのインポート、エクスポートを行ってください。

Access denied for user ‘XXXXXX’@'localhost’ (using password: YES)のようなメッセージが表示される
  • ユーザー名、パスワードに誤りがある可能性があります。
  • ユーザーがデータベースにアクセス権がない場合があります。

本コマンドでmysqlに接続できるよう適切な設定を行ってください。