3

Drupal 8 は、最初のページ (インストール ページなど) または Web サーバーが起動した後の最初のページ (ddev の下を含む) が遅いことで有名です。少しでも速くする方法はありますか?問題は、何千もの Drupal php ファイルをすべて、正常に実行する前に opcache にロードする必要があることだと思います。それを行う方法はありますか?

4

2 に答える 2

3

このために、新しいComposer-Preloadパッケージを試しています。Drupal 8 を使い始めるのはかなり簡単です。メンテナーは、Drupal との互換性のために改善することに非常に迅速に対応してくれました。

READMEで提案されているように:

  1. composer require ayesh/composer-preload(またddev composer require ayesh/composer-preload
  2. composer.json を編集して、必要なセクションを「extra」に追加します。

    "preload": {
        "paths": [
            "web"
        ],
            "exclude": [
               "web/core/tests",
           "web/core/lib/Drupal/Component/Assertion",
               "web/core/modules/simpletest",
               "web/core/modules/editor/src/Tests"
            ],
            "no-status-check": false
        }

  1. composer preload(または)を実行しddev composer preloadます。これにより、実際のプリロードを行う vendor/preload.php が作成されます。リストされたディレクトリ内のすべてのファイルを調べて、何をプリロードする必要があるかを確認します。
  2. preload.php を docroot (または Web サーバーから到達可能な別のディレクトリ) にリンクします。たとえば、docroot が「web」の場合、Web コンテナー ( ddev ssh)内でln -s /var/www/html/vendor/preload.php /var/www/html/web/preload.php
  3. ddev の場合は、実行する curl コマンドをddev start.ddev/config.yaml に追加します。

hooks:
  post-start:
    - exec: curl -s localhost/preload.php

あなたのマイレージは異なるかもしれませんが、私のD8プロジェクトは、このセットアップで開始する方がはるかに迅速であるように思えました. 優れた Composer-Preload プロジェクトを提供してくれた @ayesh に感謝します。このプロジェクトには素晴らしい未来があります。

于 2018-11-24T18:46:59.450 に答える