WordPressアセットをDigitalOcean Spacesに保存する方法

前書き

DigitalOcean Spacesは、大量の多様な非構造化データを格納するために使用できるオブジェクトストレージサービスです。 多くの場合、画像およびビデオ資産を含むWordPressサイトは、オブジェクトストレージソリューションの優れた候補となります。 これらのタイプの静的リソースにオブジェクトストレージを使用すると、サーバー上のスペースとリソースを解放してサイトのパフォーマンスを最適化できます。 オブジェクトストレージとWordPressの詳細については、How To Back Up a WordPress Site to Spacesに関するチュートリアルをご覧ください。

このチュートリアルでは、DigitalOcean Spacesと直接連携して主要なアセットストアとして使用するWordPressプラグインを使用します。 DigitalOcean Spaces Syncプラグインは、WordPressメディアライブラリのデータをSpacesにルーティングし、ニーズに基づいてさまざまな構成オプションを提供し、WordPressインスタンスでオブジェクトストレージを使用するプロセスを合理化します。

前提条件

このチュートリアルでは、サーバー上にWordPressインスタンスとDigitalOcean Spaceがあることを前提としています。 この設定がない場合は、次を完了できます。

これらの前提条件が整ったら、このプラグインの使用を開始できます。

WordPressの権限を変更する

このチュートリアル全体を通して、WordPressプロジェクトのwp-content/uploadsフォルダーを操作するため、このフォルダーが存在し、適切なアクセス許可を持っていることが重要です。 フォルダーが存在しない場合はフォルダーを作成し、存在する場合はエラーをスローしないようにするために、-pフラグを使用してmkdirコマンドで作成できます。

sudo mkdir -p /var/www/html/wp-content/uploads

これで、フォルダにアクセス許可を設定できます。 まず、所有権をユーザーに設定し(ここではsammyを使用しますが、必ず非ルートsudoユーザーを使用します)、所有権をwww-dataグループにグループ化します。

sudo chown -R sammy:www-data /var/www/html/wp-content/uploads

次に、Webサーバーにこのフォルダーへの書き込みアクセスを許可するアクセス許可を確立します。

sudo chmod -R g+w /var/www/html/wp-content/uploads

これで、プラグインを使用して、wp-content/uploadsフォルダー内のアセットのオブジェクトストレージにストアを作成し、WordPressインターフェイスからアセットを操作できるようになります。

DigitalOcean Spaces Syncのインストール

DigitalOcean Spaces Syncを使用する最初のステップは、WordPressフォルダーにインストールすることです。 WordPressディレクトリ内のプラグインフォルダーに移動できます。

cd /var/www/html/wp-content/plugins

ここから、wpコマンドを使用してDigitalOcean SpacesSyncをインストールできます。

wp plugin install do-spaces-sync

プラグインをアクティブにするには、次を実行します。

wp plugin activate do-spaces-sync

ここから、WordPress管理ダッシュボードの左側にあるプラグインタブに移動できます。

WordPress Plugin Tab

有効化されたプラグインのリストにDigitalOcean Spaces Syncが表示されるはずです。

Spaces Sync Plugin Screen

DigitalOcean Spaces Syncの設定を管理するには、Settingsタブに移動し、メニューからDigitalOcean Spaces Syncを選択します。

Settings Tab

DigitalOcean Spaces Syncは、アセットストレージを構成するオプションを提供します。

DO Spaces Sync Configuration

画面の上半分のConnection Settingsフィールドは、スペースアクセスキーとシークレットを要求します。 次に、スペースの名前となるContainerEndpointを要求します。

URLに基​​づいてスペースのエンドポイントを決定できます。 たとえば、スペースのURLがhttps://example-name.nyc3.digitaloceanspaces.comの場合、example-nameがバケット/コンテナーになり、nyc3.digitaloceanspaces.comがエンドポイントになります。

プラグインのインターフェースでは、Endpointセクションにデフォルトのhttps://ams3.digitaloceanspaces.comが事前に入力されています。 スペースが別の地域にある場合は、このエンドポイントを変更する必要があります。

次に、File & Path Settingsの入力を求められます。 Full URL-path to filesとマークされたフィールドに、ファイルをスペースにのみ保存する場合はストレージパブリックドメインを入力するか、スペースとサーバーにファイルを保存する場合は完全なURLパスを入力できます。

たとえば、WordPressプロジェクトが/var/www/htmlにあり、サーバーとSpaceの両方にファイルを保存する場合は、次のように入力します。

  • Full URL-path to filesフィールドのhttp://your_server_ip/wp-content/uploads

  • Local pathフィールドの/var/www/html/wp-content/uploads

Storage prefixおよびFilemaskの設定は事前に入力されており、同期用に特定の種類のファイルを指定する場合を除いて、変更する必要はありません。

次のセクションでは、サーバーとスペース、およびスペースのみにファイルを保存する詳細について説明します。

複数の場所でのファイルの同期と保存

DigitalOcean Spaces Syncは、ファイルをSpaceに同期しながらサーバーに保存するオプションを提供します。 このユーティリティは、サーバーにファイルを保存する必要がある場合に役立ちますが、バックアップを別の場所に保存することもできます。 ファイルをサーバーに保持しながら、ファイルをスペースに同期するプロセスを実行します。 この例では、メディアライブラリとスペースに保存するsammy10x10.pngというファイルがあると想定します。

まず、WordPress管理ダッシュボードのSettingsタブに移動し、表示されたオプションのメニューからDigitalOcean Spaces Syncを選択します。

次に、Connections Settingsフィールドに、スペースキーとシークレットを入力し、続いてContainerEndpointを入力します。 スペースのURLがhttps://example-name.nyc3.digitaloceanspaces.comの場合、example-nameContainerになり、nyc3.digitaloceanspaces.comEndpointになることに注意してください。 Connection Settingsフィールドの下部にあるCheck the Connectionボタンをクリックして、接続をテストします。

Check Connection Button

これで、File & Path Settingsに入力する準備ができました。

サーバーとスペースにファイルを保存しているので、Full URL-path to filesフィールドに完全なURLパスを入力できます。 ここではサーバーのIPを使用しますが、ドメインがある場合は、ドメイン名のIPアドレスを交換できます。 DigitalOceanにドメインを登録する方法の詳細については、How To Set Up a Host Name with DigitalOceanに関するチュートリアルを参照してください。 この場合、Full URL-path to fileshttp://your_server_ip/wp-content/uploadsになります。

次に、Local pathフィールドにuploadsディレクトリへのローカルパス/var/www/html/wp-content/uploadsを入力します。

単一のファイルで作業しているため、Storage prefixセクションとFilemaskセクションを変更する必要はありません。 WordPressメディアライブラリのサイズと種類が増えるにつれて、この設定を変更して、ワイルドカードとFilemaskフィールドの*.pngなどの拡張子を使用して個々のファイルタイプをターゲットにすることができます。

最終的なFile & Path Settingsは次のようになります。

Sync Server and Cloud

画面の下部にあるSave Changesボタンをクリックして、構成の変更を必ず保存してください。

これで、ファイルsammy10x10.pngをWordPressメディアライブラリに追加できます。 wp media importコマンドを使用します。このコマンドは、ファイルをホームディレクトリからWordPressメディアライブラリにインポートします。 この場合、ホームディレクトリはsammyに属しますが、あなたの場合、これはルート以外のsudoユーザーになります。 ファイルを移動するときに、--pathパラメータを使用してWordPressプロジェクトの場所を指定します。

wp media import --path=/var/www/html/ /home/sammy/sammy10x10.png

WordPressインターフェースを見ると、Media Libraryにファイルが表示されているはずです。 WordPress管理ダッシュボードの左側にあるMedia Libraryタブに従って、そこに移動できます。

Media Library Tab

DigitalOceanコントロールパネルのSpacesページに移動すると、Spaceにもファイルが表示されます。

最後に、wp-content/uploadsフォルダーに移動できます。ここで、WordPressは年と月を含むサブフォルダーを作成します。 このフォルダ内に、sammy10x10.pngファイルが表示されます。

スペースにファイルを保存する

DigitalOcean Spaces Syncプラグインには、サーバー上のスペースとリソースを最適化する場合に備えて、スペースにのみファイルを保存できる追加オプションがあります。 別のファイルsammy-heart10x10.pngを操作し、このファイルがSpaceにのみ保存されるようにDigitalOcean SpacesSync設定を設定します。

まず、プラグインのメイン設定ページに戻りましょう。

DO Spaces Sync Configuration

Connection Settingsの情報は残すことができますが、File & Path Settingsを変更します。 まず、Full URL-path to filesに、ストレージのパブリックドメインを記述します。 ここでも、サーバーIPを使用しますが、ドメインがある場合は、これをドメインと交換できます:http://uploads.your_server_ip

次に、ページの下部にあるSync Settingsに移動し、最初のボックスをクリックします。これにより、「ファイルをクラウドにのみ保存し、アップロードが成功した後に削除する」ことができます。最終的なFile & Path Settingsは次のようになります。

Sync Cloud Only

画面の下部にあるSave Changesボタンをクリックして、変更を保存してください。

コマンドラインに戻り、wp media importを使用してsammy-heart10x10.pngをユーザーのホームディレクトリからメディアライブラリに移動します。

wp media import --path=/var/www/html/ /home/sammy/sammy-heart10x10.png

WordPressインターフェースに戻ると、Media Librarysammy-heart10x10.pngまたはsammy10x10.pngが表示されません。 次に、コマンドラインに戻ってwp-content/uploadsディレクトリに移動すると、タイムスタンプ付きのサブフォルダにsammy-heart10x10.pngがないことがわかります。

最後に、DigitalOceanコントロールパネルの[スペース]ページに移動すると、両方のファイルがスペースに保存されているはずです。

結論

DigitalOcean Spaces Syncを使用してWordPressメディアファイルをDigitalOcean Spacesに保存するために使用できる2つの異なるオプションについて説明しました。 このプラグインは、開発者の記事「https://medium.com/@kee_ross/sync-your-wordpress-media-with-digitalocean-spaces-b730eb7e19fc[WordPressの同期DigitalOcean Spacesのメディア]。」

Spacesの操作に関するより一般的な情報が必要な場合は、introduction to DigitalOcean Spacesbest practices for performance on Spacesのガイドを確認してください。

Related