2014/16/4
自動でURLにリンクをつけるプラグインwordpressの改修案件で画像ファイルが1万を超えるサイトがあったので、さすがにこれを全てローカルに落として作業するのはデータ量やダウンロード時間がかかるため無謀だと思った。
それで、本番環境もローカル環境も同じサブドメインからuploadsフォルダを参照させることにした。
こうすれば画像だけをサブドメインで管理できるので、wordmoveなんかを使ってwordmove pull –allしても数十GBを超える画像をダウンロードしてくる必要はなくなる。サブドメインなので、一度設定してやればpull -dしても参照先が変わることもない。ただ、この設定をするとローカル側から画像のアップロードができなくなるので、本番環境でアップしてからデータベースを同期する必要がある。
あと、当然だけどネット接続がないと開発環境では画像は表示されなくなる。
具体的な手順は3つ
1.サブドメインを取得
2.uploadsフォルダをサブドメインに移動(コピー)
3.wordpressのoptions.phpでupload_path、upload_url_pathの書き換え
1.サブドメインを取得
今回はXserverで管理してるサイトだったので、Xserverでサブドメインを取得。
image.xxxx.comとした。ドキュメントルートの設定はどちらでもいい。
2.uploadsフォルダをサブドメインに移動(コピー)
FTPでやりとりするのは時間が掛かりすぎるので、sshでログインしてrsyncを使った。
ログイン後、以下のrsyncコマンドでサブドメイン直下にuploadsフォルダをコピーした。移動でなくコピーなのは、設定が完了するまで画像が表示されなくなるのを避けるため。
rsync -rav /移行元のパス /移行先のパス
xserverだと下のようになると思う。
rsync -rav /home/サーバー名/ドメイン名/public_html/wp-content/uploads/ /home/サーバー名/ドメイン名/public_html/image/uploads/
3.wordpressのoptions.phpでupload_path、upload_url_pathの書き換え
uploadsフォルダをそのままサブドメイン直下に移動したとして、
wp-admin/options.phpにアクセスし、以下のようにする
uploadsという名前は変えたければ変えてもいい。
upload_path | /home/サーバー名/ドメイン名/public_html/サブドメインルート/uploads |
upload_url_path | https://img.xxxx.com/uploads |
これで完了。サイトから画像のurlを確認するとサブドメインから参照しているのがわかる。
ちゃんとコピー先のサブドメインから参照されているのを確認すれば、元のサイトからuploadsフォルダを削除すればいい。
質問やご指摘など気軽にどうぞ