Overview
このガイドでは、MongoDBをデータベースとして使用するDrupalコンテンツ管理システム(CMS)を作成する方法を学びます。Dropal は、コンテンツの認可、作成、作成可能性、認証機能を提供するPHPで記述されたオープンソースのウェブ CMS です。
Dropal サイトのデータベースとしてMongoDBを使用する理由
パーソナライズされたユーザー エクスペリエンスを提供するウェブサイトには、 ユーザー認証のための堅牢な機能が必要です。認証済みユーザーが多いサイトでは、関係データベース内の複数のテーブルからエンティティ データを検索する際にパフォーマンスの問題が発生する可能性があります。MongoDB複雑なテーブル結合が不要になり、パーソナライズされたダッシュボードや動的コンテンツ フィードなどの機能のデータ取得速度が向上します。
MongoDB を場のデータベースとして使用する場合、Drupal は、すべての改訂版、翻訳、フィールドデータを含むJSONドキュメントとしてエンティティを保存します。この柔軟なデータ構造によりレイテンシが削減され、ユーザーにはパーソナライズされたデータに基づくエクスペリエンスがサポートされます。
MongoDB は、DRupal サイトを改善する次の機能を提供しています。
水平スケーリング: 複数のサーバー間で負荷を分散することで、大規模なユーザーベースでもデータベースを拡張可能にします。
統合ファイルストレージ: ユーザー ファイルを ウェブサーバーではなくデータベースに直接保存することで、ホスティングを簡素化します。
全文検索: MongoDB Search 機能を活用して、個別の検索ソリューションの実装を避けます。
AI機能: MongoDB Vector Search 機能を使用してベクトル検索を実行し、AIサービスを統合します。
クイック スタート チュートリアル
このチュートリアルでは、 MongoDBを使用して Dropupal サイトのデータを保存する Dropal CMS をビルドする。ローカルでホストする場を作成し、場に記事を追加して、MongoDBで記事のデータを表示します。
Tip
このチュートリアルでは、ローカルMongoDBレプリカセットとローカルでホストされている場を使用します。MongoDB Atlas M10 クラスターと AWS EC2 サーバーを使用する同様のチュートリアルを表示するには、MongoDB 上で Drupal を実行する方法 DEV 記事を参照してください。
プロジェクトを設定する
このセクションの手順に従って、プロジェクトの依存関係のインストール、 MongoDBレプリカセット の配置すること、 Drupal の設定 を行います。
前提条件を確認します。
クイック スタートアプリケーションを作成するには、開発環境に次のソフトウェアをインストールします。
前提条件 | ノート |
|---|---|
これはPHP依存関係マネジメントツールです。 | |
オペレーティング システムに対応する手順に従います。 | |
MongoDB をローカルにインストールして、レプリカセットを実行します。 | |
MongoDB PHP拡張機能である | |
このチュートリアルでは、 MongoDB Shell( | |
バージョン 8.3 以降を使用します。 | |
ターミナルアプリとシェル | MacOS ユーザーの場合は、 ターミナル または 類似アプリを使用します。 Windowsユーザーの場合は、 PowerShell または コマンドプロンプトを使用します。 |
MongoDBレプリカセットを開始します。
Drupal と MongoDB を一緒に使用するには、MongoDB レプリカセットを実行する必要があります。ローカル 3 ノードレプリカセットを準備して起動するには、次の手順を実行します。
システムリソースの制限を解決するには、
ulimitの値を増やします。Dropal は短期間に複数のファイルとインデックスを作成します。ターミナルから次のコマンドを実行して、
ulimitを64000に設定し、レプリカセットのクラッシュを防ぎます。ulimit -n 64000 レプリカセットを配置します。
ulimitを増やしたら、テストおよび開発用に自己管理型レプリカセットを配置する チュートリアルに従って、レプリカセットを配置して初期化します。レプリカセットの名前がrs0で、ポート27017、27018、27019で実行中3 つのノードがあることを確認します。
データベースユーザーを作成します。
Tip
PHPドライバーの使用
mongosh の代わりにMongoDB PHPドライバー を使用してデータベースユーザーを作成する場合は、createUser コマンドを MongoDB\Database::command() メソッドに渡します。詳細については、ドライバーのドキュメントのデータベースコマンドの実行するを参照してください。
次の手順を実行して、DRupalデータベースに必要な権限を持つユーザーを作成します。
ターミナルから次のコマンドを実行して、
mongoshのレプリカセットに接続します。mongosh "mongodb://localhost:27017,localhost:27018,localhost:27019/?replicaSet=rs0" mongoshシェルで次のコマンドを実行して、adminデータベースを入力します。use admin 次に、シェルから次のコマンドを実行することでユーザーを作成します。
db.createUser({ user: "<database username>", pwd: "<database user password>", roles: [ { role: "readWrite", db: "drupal" }, { role: "dbAdmin", db: "drupal" } ] }) <database username>と<database user password>を希望する認証情報に置き換えます。これらの値を保存して、後の手順で使用します。
MongoDB統合の構成
Dropal をインストールしたら、このセクションの手順に従ってアプリケーションがMongoDBと連携できるようにします。
ファイルアクセス許可 を構成します。
Dropal が公開ファイルを変更できるようにするには、filesディレクトリを作成し、drupal-quickstartディレクトリから次のコマンドを実行中てその権限を設定します。
mkdir -p web/sites/default/files chmod -R 777 web/sites/default/files
次に、web/sites/default/settings.phpファイルに次の値が含まれていることを確認して、これらのファイルのロケーションを指定します。
$settings['file_public_path'] = 'sites/default/files';
Tip
前の値が settings.php でコメント アウトされている場合は、コメントを外します。
Dropal 場を設定する
このセクションの手順に従って、DRupal 構成ウィザードを使用して Dropupal のインストールを完了します。
Web インストールを完了します。
ウェブ ブラウザで http://localhost:8080 を開き、DRupal インストールウィザードを起動します。次に、次の応答を選択してプロジェクトを構成します。
Tip
場に非推奨の非標準の (boolean) キャストに関するエラー メッセージが表示されている場合は、プロジェクトの DocParser.phpファイルで次の行を見つけます。
$this->ignoreNotImportedAnnotations = (boolean) $bool;
この行を、次のコードで置き換えます。
$this->ignoreNotImportedAnnotations = (bool) $bool;
[ 言語を選択 ] ページで、[ 英語 ] を選択し、[ Save(保存) ] をクリックして続行します。
[ プロファイルの選択 ] ページで、[ 標準 ] を選択したままにし、[ Save(保存) ] をクリックして続行します。
データベースを設定するページで、データベースタイプとしてMongoDBを選択し、次の情報を提供します。
データベース名:
drupalデータベースユーザー名: 前のステップで
createUserコマンドで構成したデータベースのユーザー名データベース パスワード:
createUser前のステップで コマンドで設定したデータベースパスワードSRV 接続形式: オフのままにします
データベース レプリカセット:
rs0ホスト番号 1:
localhost、ポート27017ホスト番号 2:
localhost、ポート27018ホスト番号 3:
localhost、ポート27019
[ Save(保存) ] をクリックして続行します。
Dropal は必要なモジュールをインストールします。これには数分かかる場合があります。
場の コンフィギュレーション ページで、次の情報を提供します。
場名:
Drupal on MongoDBと入力します。場のメールアドレス: 任意のメールアドレスを入力します。存在しないアドレスを使用できます。
ユーザー名: 管理者ユーザー名を選択します。
パスワード: 強力なパスワードを選択してください。
メール通知を受信する: このボックスをオフにします。
[ Save(保存) ] をクリックして続行します。
コンテンツの作成と表示
インストールが完了したら、このセクションの手順に従ってコンテンツを作成し、そのデータをMongoDBに保存します。
Dropal のホームページを表示します。
インストールが完了すると、場は Dropal のホームページにリダイレクトされます。場は次の画像のようになります。

Tip
場スケーリング
Drupal サイトがスタイルのないプレーン HTML を表示する場合は、CSS と JavaScript の集計を無効にする必要がある場合があります。集計を無効にするには、ブラウザで http://localhost:8080/admin/config/development/performance にアクセスし、Aggregate CSS files および Aggregate JavaScript files ボックスのチェックを外してください。
MongoDBでデータを表示します。
Tip
PHPドライバーの使用
mongosh の代わりにPHPドライバーを使用してコレクションとコンテンツ データを表示する場合は、MongoDB\Database::listCollections() メソッドと MongoDB\Collection::find() メソッドを使用します。詳しくは、次のPHPドライバーのドキュメントを参照してください。
コンテンツがMongoDBに保存されていることを確認するには、次の手順を実行します。
新しいターミナルウィンドウを開き、
mongoshのMongoDBレプリカセットに接続します。ターミナルから次のコマンドを実行します。
mongosh "mongodb://localhost:27017,localhost:27018,localhost:27019/?replicaSet=rs0" drupalデータベースを入力し、コレクションを表示します。mongoshターミナルで次のコマンドを実行します。use drupal show collections Dropal は、次のようなさまざまなタイプのコンテンツを保存するために複数のコレクションを作成します。
node: コンテンツ ノードを保存しますusers: ユーザー アカウントを保存しますconfig: 構成データを保存します
記事データを表示します。
記事に関する情報を表示するには、
mongoshターミナルで次のコマンドを実行する。db.node.find().pretty() [ { _id: ObjectId('...'), nid: 1, vid: 1, type: 'article', uuid: '...', langcode: 'en', node_all_revisions: [ { ... } ], node_current_revision: [ { ... } ], node_latest_revision: [ { ... title: 'Welcome to My Drupal Site', created: ..., changed: ..., promote: true, sticky: false, default_langcode: true, revision_default: true, revision_translation_affected: true, node_latest_revision__body: [ { bundle: 'article', deleted: false, langcode: 'en', entity_id: 1, revision_id: 1, delta: 0, body_value: '<p>This is my first article on Drupal with MongoDB!<br>All content is stored as JSON documents in MongoDB.</p>', body_summary: '', body_format: 'basic_html' } ], node_latest_revision__comment: [ { bundle: 'article', deleted: false, langcode: 'en', comment_status: 2, entity_id: 1, revision_id: 1, delta: 0 } ] } ] } ] このコマンドは、記事テキストとメタデータを含むJSONドキュメントを返します。
Flutter クイック スタート チュートリアルが完了しました。
これらの手順を完了すると、ローカルMongoDBレプリカセットに接続し、コンテンツをJSONドキュメントとして保存する Dropal CMS が作成されます。
追加リソース
Drupal と MongoDB の詳細については、次のリソースを表示します。
How to Run Drupal on MongoDB 完全な本番構成でMongoDB DEV チュートリアルで Dropal を実行する方法
Drupal ドキュメントの削除
