コンテンツにスキップ

NGINX-Drupal#

Lagoonのnginx-drupal Dockerイメージ。Drupalと連携するように最適化されています。Lagoonのnginxイメージに基づいています。

Lagoonの適応#

このイメージは、Lagoonで使用するために準備されています。したがって、すでにいくつかのことが行われています:

  • フォルダの権限は、fix-permissionsで自動的に適応されるため、このイメージはランダムなユーザーで動作します。
  • drupal.confの設定ファイルをできるだけクリーンでカスタマイズ可能に保つために、ファイルの主要なセクション(serverlocation /location @drupallocation @php)にinclude指示を追加しました。
  • Drupal.confカスタマイズのセクションでさらなる情報を提供します。

含まれるDrupal設定 - drupal.conf#

このイメージには、Drupal 7, 8, 9の完全なNGINX作業設定が含まれています。いくつかの追加機能も含まれています:

Drupal.confのカスタマイズ#

drupal.confファイルは、Drupal用に最適化されたnginx設定ファイルのカスタマイズ版です。顧客はそれをカスタマイズするための異なる方法を持っています:

  • それを修正する (エラーの場合、サポートが困難)。
  • *.confファイルを通じた組み込みのカスタマイズを使用。

drupal.confファイルはいくつかのセクションに分割されています。私たちがカスタマイズに含めたセクションは次の通りです:

  • server
  • location /
  • location @drupal
  • location @php.

各セクションには二つのインクルードがあります:

  • *_prepend.conf
  • *_append.conf

location @drupalセクションは以下のようになります:

drupal.conf
location @drupal {
    include /etc/nginx/conf.d/drupal/location_drupal_prepend*.conf;

    include        /etc/nginx/fastcgi.conf;
    fastcgi_param  SCRIPT_NAME        /index.php;
    fastcgi_param  SCRIPT_FILENAME    $realpath_root/index.php;
    fastcgi_pass   ${NGINX_FASTCGI_PASS:-php}:9000;

    include /etc/nginx/conf.d/drupal/location_drupal_append*.conf;
}

この設定は、顧客がlocation_drupal_prepend.confおよびlocation_drupal_append.conf`、ここに他のステートメントの前後に挿入したい設定をすべて置くことができます。

これらのファイルは作成されたら、nginxコンテナ内に必ず存在していなければならず、それらをDockerfile.nginxに以下のように追加します:

dockerfile.nginx
COPY location_drupal_prepend.conf /etc/nginx/conf.d/drupal/location_drupal_prepend.conf
RUN fix-permissions /etc/nginx/conf.d/drupal/location_drupal_prepend.conf

Drupal Core Statisticsモジュールの設定#

コアのStatisticsモジュールを使用している場合、短時間で設定の変更が必要な問題に遭遇するかもしれません。

デフォルトのNGINX設定では、トラッキングエンドポイント/core/modules/statistics/statistics.phpへのリクエストが拒否され(404)ます。

これはデフォルトのNGINX設定に関連しています:

drupal.conf
location ~* ^.+\.php$ {
    try_files /dev/null @drupal;
}

この問題を解決するために、特定のロケーションルールを定義し、これをロケーションの前置設定として注入します:

drupal.conf
## Allow access to to the statistics endpoint.
location ~* ^(/core/modules/statistics/statistics.php) {
      try_files /dev/null @php;
}

そして、これをNGINの間にコピーします Xコンテナービルド:

dockerfile.nginx
# Drupal統計モジュールの特定のNGINX設定を追加します。
COPY .lagoon/nginx/location_prepend_allow_statistics.conf /etc/nginx/conf.d/drupal/location_prepend_allow_statistics.conf