{"title":"デプロイチェックリスト","version":"6.0","locale":"ja","docname":"howto/deployment/checklist","url":"/ja/6.0/howto/deployment/checklist/","canonical":"https://djangodocs.dev/ja/6.0/howto/deployment/checklist/","summary":"インターネットは敵対的な環境です。Django プロジェクトをデプロイする前に、セキュリティ、パフォーマンス、運用を念頭に置いて、時間をかけて設定を見直すべきです。 Django には多くの セキュリティ機能…","html":"<h1>デプロイチェックリスト<a class=\"heading-anchor\" href=\"#deployment-checklist\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h1>\n<p>インターネットは敵対的な環境です。Django プロジェクトをデプロイする前に、セキュリティ、パフォーマンス、運用を念頭に置いて、時間をかけて設定を見直すべきです。</p>\n<p>Django には多くの <a class=\"reference internal\" href=\"/ja/6.0/topics/security/\"><span class=\"doc\">セキュリティ機能</span></a> があります。いくつかはビルトインで、常に有効です。その他は任意となっており、これは常に適切とは限らなかったり、開発に対しては不便だったりするためです。たとえば、HTTPS を強制することは、すべてのウェブサイトに対して適切とは言えず、またローカル開発では実践的ではありません。</p>\n<p>パフォーマンスの最適化は、利便性とのトレードオフとなるもう 1 つの要素です。たとえば、キャッシュは本番環境では役立ちますが、ローカル開発では役立ちません。同様に、エラーレポートの必要性にも大きな違いがあります。</p>\n<p>以下のチェックリストは、次の設定項目を含みます:</p>\n<ul class=\"simple\">\n<li><p>Django が想定するレベルのセキュリティを提供するために適切に設定する必要があるもの;</p></li>\n<li><p>環境によって異なると思われるもの;</p></li>\n<li><p>オプションのセキュリティ機能を有効にするもの;</p></li>\n<li><p>パフォーマンスの最適化を有効にするもの;</p></li>\n<li><p>エラーレポートを提供するもの;</p></li>\n</ul>\n<p>これらの設定の多くは機密性が高く、機密情報として扱うべきです。プロジェクトのソースコードを公開する場合、開発用の適切な設定を公開し、本番用にはプライベートな設定モジュールを使用するのが一般的な慣習です。</p>\n<section id=\"run-manage-py-check-deploy\">\n<h2><code class=\"docutils literal notranslate\"><span class=\"pre\">manage.py</span> <span class=\"pre\">check</span> <span class=\"pre\">--deploy</span></code> を実施しよう<a class=\"heading-anchor\" href=\"#run-manage-py-check-deploy\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>以下で説明しているチェックのいくつかは、<a class=\"reference internal\" href=\"/ja/6.0/ref/django-admin/#cmdoption-check-deploy\"><code class=\"xref std std-option docutils literal notranslate\"><span class=\"pre\">check</span> <span class=\"pre\">--deploy</span></code></a> オプションを使用して自動化できます。オプションのドキュメントで説明しているとおり、本番環境の設定に対してこのチェックを実施してください。</p>\n</section>\n<section id=\"switch-away-from-manage-py-runserver\">\n<h2><code class=\"docutils literal notranslate\"><span class=\"pre\">manage.py</span> <span class=\"pre\">runserver</span></code> から切り替える<a class=\"heading-anchor\" href=\"#switch-away-from-manage-py-runserver\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p><a class=\"reference internal\" href=\"/ja/6.0/ref/django-admin/#django-admin-runserver\"><code class=\"xref std std-djadmin docutils literal notranslate\"><span class=\"pre\">runserver</span></code></a> コマンドは本番環境向けには設計されていません。本番環境では、適切なWSGIまたはASGIサーバーに切り替えてください。一般的な選択肢については、<a class=\"reference internal\" href=\"/ja/6.0/howto/deployment/wsgi/\"><span class=\"doc\">WSGIサーバー</span></a> または <a class=\"reference internal\" href=\"/ja/6.0/howto/deployment/asgi/\"><span class=\"doc\">ASGIサーバー</span></a> を参照してください。</p>\n</section>\n<section id=\"critical-settings\">\n<h2>最重要な設定<a class=\"heading-anchor\" href=\"#critical-settings\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<section id=\"secret-key\">\n<h3><a class=\"reference internal\" href=\"/ja/6.0/ref/settings/#std-setting-SECRET_KEY\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">SECRET_KEY</span></code></a><a class=\"heading-anchor\" href=\"#secret-key\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p><strong>シークレットキーは、長いランダム文字列で、秘匿される必要があります。</strong></p>\n<p>本番環境で使われるキーは、他の場所で使われておらず、ソースコントロール中に記述してしまわないよう十分注意してください。これにより、攻撃者がキーを取得してしまう恐れを軽減できます。</p>\n<p>設定モジュールにシークレットキーを直接書き込む代わりに、環境変数から読み込む方法を検討してください:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">import</span><span class=\"w\"> </span><span class=\"nn\">os</span>\n\n<span class=\"n\">SECRET_KEY</span> <span class=\"o\">=</span> <span class=\"n\">os</span><span class=\"o\">.</span><span class=\"n\">environ</span><span class=\"p\">[</span><span class=\"s2\">&quot;SECRET_KEY&quot;</span><span class=\"p\">]</span>\n</code></pre></div>\n<p>もしくはファイルから読み込みます:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"k\">with</span> <span class=\"nb\">open</span><span class=\"p\">(</span><span class=\"s2\">&quot;/etc/secret_key.txt&quot;</span><span class=\"p\">)</span> <span class=\"k\">as</span> <span class=\"n\">f</span><span class=\"p\">:</span>\n    <span class=\"n\">SECRET_KEY</span> <span class=\"o\">=</span> <span class=\"n\">f</span><span class=\"o\">.</span><span class=\"n\">read</span><span class=\"p\">()</span><span class=\"o\">.</span><span class=\"n\">strip</span><span class=\"p\">()</span>\n</code></pre></div>\n<p>シークレットキーをローテーションする場合は、 <a class=\"reference internal\" href=\"/ja/6.0/ref/settings/#std-setting-SECRET_KEY_FALLBACKS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">SECRET_KEY_FALLBACKS</span></code></a>: が使用できます:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">import</span><span class=\"w\"> </span><span class=\"nn\">os</span>\n\n<span class=\"n\">SECRET_KEY</span> <span class=\"o\">=</span> <span class=\"n\">os</span><span class=\"o\">.</span><span class=\"n\">environ</span><span class=\"p\">[</span><span class=\"s2\">&quot;CURRENT_SECRET_KEY&quot;</span><span class=\"p\">]</span>\n<span class=\"n\">SECRET_KEY_FALLBACKS</span> <span class=\"o\">=</span> <span class=\"p\">[</span>\n    <span class=\"n\">os</span><span class=\"o\">.</span><span class=\"n\">environ</span><span class=\"p\">[</span><span class=\"s2\">&quot;OLD_SECRET_KEY&quot;</span><span class=\"p\">],</span>\n<span class=\"p\">]</span>\n</code></pre></div>\n<p>古いシークレットキーが <code class=\"docutils literal notranslate\"><span class=\"pre\">SECRET_KEY_FALLBACKS</span></code> から適時に削除されていることを確認してください。</p>\n</section>\n<section id=\"debug\">\n<h3><a class=\"reference internal\" href=\"/ja/6.0/ref/settings/#std-setting-DEBUG\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">DEBUG</span></code></a><a class=\"heading-anchor\" href=\"#debug\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p><strong>デバッグは、本番環境では決して有効化してはいけません。</strong></p>\n<p>プロジェクトの開発中は <a class=\"reference internal\" href=\"/ja/6.0/ref/settings/#std-setting-DEBUG\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">DEBUG</span> <span class=\"pre\">=</span> <span class=\"pre\">True</span></code></a> だったはずですが、これはブラウザ内の全トレースバックといった便利な機能を使えるようにするためです。</p>\n<p>しかし、本番環境に対してはこれはまったく不適切です。なぜなら、プロジェクトに関する多くの情報を公にしてしまうからです: ソースコードからの引用、ローカル変数、設定、使われているライブラリ、等。</p>\n</section>\n</section>\n<section id=\"environment-specific-settings\">\n<h2>環境に合わせた設定<a class=\"heading-anchor\" href=\"#environment-specific-settings\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<section id=\"allowed-hosts\">\n<h3><a class=\"reference internal\" href=\"/ja/6.0/ref/settings/#std-setting-ALLOWED_HOSTS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">ALLOWED_HOSTS</span></code></a><a class=\"heading-anchor\" href=\"#allowed-hosts\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p><a class=\"reference internal\" href=\"/ja/6.0/ref/settings/#std-setting-DEBUG\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">DEBUG</span> <span class=\"pre\">=</span> <span class=\"pre\">False</span></code></a> のとき、<a class=\"reference internal\" href=\"/ja/6.0/ref/settings/#std-setting-ALLOWED_HOSTS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">ALLOWED_HOSTS</span></code></a> が適切に設定されない限り Django は一切動作しません。</p>\n<p>この設定は、いくつかの CSRF 攻撃からあなたのサイトを保護するために必要です。もしワイルドカードを使用した場合、<code class=\"docutils literal notranslate\"><span class=\"pre\">Host</span></code> HTTP のバリデーションを自分自身で行う必要があります。さもなければ、この種の攻撃に脆弱なサイトとなってしまいます。</p>\n<p>加えて、Django の手前にいるウェブサーバーにも、ホストを検証するよう設定をする必要があります。これにより、不適切なホストに対して、Django にリクエストを転送する代わりに、エラーページを表示したりリクエストを無視するようにできます。そして、Django のログ内で誤ったエラーが起きる (もしくは設定しだいでは E メールが送信される) のを防ぎます。たとえば、nginx では認識されないホストに対してデフォルトサーバーが &quot;444 No Response&quot; を返します:</p>\n<div class=\"code-block\" data-language=\"nginx\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Nginx</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Nginx code\"><code><span class=\"k\">server</span><span class=\"w\"> </span><span class=\"p\">{</span>\n<span class=\"w\">    </span><span class=\"kn\">listen</span><span class=\"w\"> </span><span class=\"mi\">80</span><span class=\"w\"> </span><span class=\"s\">default_server</span><span class=\"p\">;</span>\n<span class=\"w\">    </span><span class=\"kn\">return</span><span class=\"w\"> </span><span class=\"mi\">444</span><span class=\"p\">;</span>\n<span class=\"p\">}</span>\n</code></pre></div>\n</section>\n<section id=\"caches\">\n<h3><a class=\"reference internal\" href=\"/ja/6.0/ref/settings/#std-setting-CACHES\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">CACHES</span></code></a><a class=\"heading-anchor\" href=\"#caches\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>もしキャッシュを使うなら、開発環境と本番環境とでコネクションパラメータは異なるでしょう。そうでない場合、デフォルトは <a class=\"reference internal\" href=\"/ja/6.0/topics/cache/#local-memory-caching\"><span class=\"std std-ref\">ローカルメモリのキャッシュ</span></a> に設定されています。</p>\n<p>キャッシュサーバーは認証に弱点を持っています。あなたのアプリケーションからのコネクションだけを受け入れるようにしてください。</p>\n</section>\n<section id=\"databases\">\n<h3><a class=\"reference internal\" href=\"/ja/6.0/ref/settings/#std-setting-DATABASES\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">DATABASES</span></code></a><a class=\"heading-anchor\" href=\"#databases\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>データベースの接続パラメータは、開発環境と本番環境でおそらく異なります。</p>\n<p>データベースパスワードは非常に機密的なものです。<a class=\"reference internal\" href=\"/ja/6.0/ref/settings/#std-setting-SECRET_KEY\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">SECRET_KEY</span></code></a> と同様の方法で保護してください。</p>\n<p>セキュリティを最大限に確保するためには、データベースサーバーがアプリケーションサーバーからの接続のみを許可するようにしてください。</p>\n<p>もしデータベースのバックアップの設定をしていなければ、今すぐに行ってください！</p>\n</section>\n<section id=\"email-backend-and-related-settings\">\n<h3><a class=\"reference internal\" href=\"/ja/6.0/ref/settings/#std-setting-EMAIL_BACKEND\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">EMAIL_BACKEND</span></code></a> と関連する設定<a class=\"heading-anchor\" href=\"#email-backend-and-related-settings\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>あなたのサイトが E メールを送信する場合、設定値が正しくセットされている必要があります。</p>\n<p>By default, Django sends email from <code class=\"docutils literal notranslate\"><span class=\"pre\">webmaster&#64;localhost</span></code> and\n<code class=\"docutils literal notranslate\"><span class=\"pre\">root&#64;localhost</span></code>. However, some mail providers reject email from these\naddresses. To use different sender addresses, modify the\n<a class=\"reference internal\" href=\"/ja/6.0/ref/settings/#std-setting-DEFAULT_FROM_EMAIL\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">DEFAULT_FROM_EMAIL</span></code></a> and <a class=\"reference internal\" href=\"/ja/6.0/ref/settings/#std-setting-SERVER_EMAIL\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">SERVER_EMAIL</span></code></a> settings.</p>\n</section>\n<section id=\"static-root-and-static-url\">\n<h3><a class=\"reference internal\" href=\"/ja/6.0/ref/settings/#std-setting-STATIC_ROOT\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">STATIC_ROOT</span></code></a> と <a class=\"reference internal\" href=\"/ja/6.0/ref/settings/#std-setting-STATIC_URL\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">STATIC_URL</span></code></a><a class=\"heading-anchor\" href=\"#static-root-and-static-url\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>静的ファイルは、開発用サーバーでは自動的に提供されます。本番環境では、<a class=\"reference internal\" href=\"/ja/6.0/ref/contrib/staticfiles/#django-admin-collectstatic\"><code class=\"xref std std-djadmin docutils literal notranslate\"><span class=\"pre\">collectstatic</span></code></a> が静的ファイルをコピーする <a class=\"reference internal\" href=\"/ja/6.0/ref/settings/#std-setting-STATIC_ROOT\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">STATIC_ROOT</span></code></a> ディレクトリを設定する必要があります。</p>\n<p>より詳しくは <a class=\"reference internal\" href=\"/ja/6.0/howto/static-files/\"><span class=\"doc\">静的ファイル (画像、JavaScript、CSS など) を管理する</span></a> を参照してください。</p>\n</section>\n<section id=\"media-root-and-media-url\">\n<h3><a class=\"reference internal\" href=\"/ja/6.0/ref/settings/#std-setting-MEDIA_ROOT\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">MEDIA_ROOT</span></code></a> と <a class=\"reference internal\" href=\"/ja/6.0/ref/settings/#std-setting-MEDIA_URL\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">MEDIA_URL</span></code></a><a class=\"heading-anchor\" href=\"#media-root-and-media-url\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>メディアファイルは、あなたのユーザーによってアップロードされます。彼らは信用なりません！ ウェブサーバーが決してこれらを解読しようとしないようにしてください。たとえば、ユーザーが <code class=\"docutils literal notranslate\"><span class=\"pre\">.php</span></code> ファイルをアップロードしたとき、ウェブサーバーはその内容を実行するべきではありません。</p>\n<p>この機会に、こうしたファイルに対するバックアップ戦略をチェックしておきましょう。</p>\n</section>\n</section>\n<section id=\"https\">\n<h2>HTTPS<a class=\"heading-anchor\" href=\"#https\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>ユーザーにログインさせるあらゆるウェブサイトは、アクセストークンを平文で送信するのを防ぐため、サイト全体の HTTPS を強制するべきです。Django では、アクセストークンはログインとパスワード、セッションクッキー、パスワードリセットトークンを含みます。(パスワードリセットトークンを E メール送信する場合、それほど保護されてはいません。)</p>\n<p>ユーザーアカウントや admin などの機密性の高いエリアを保護するだけでは不十分です。なぜなら、HTTP と HTTPS で同じセッションクッキーが使用されるためです。Web サーバーは、すべての HTTP トラフィックを HTTPS にリダイレクトし、HTTPS リクエストのみを Django に送信する必要があります。</p>\n<p>一度 HTTPS をセットアップしたら、以下の設定項目が有効になります。</p>\n<section id=\"csrf-cookie-secure\">\n<h3><a class=\"reference internal\" href=\"/ja/6.0/ref/settings/#std-setting-CSRF_COOKIE_SECURE\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">CSRF_COOKIE_SECURE</span></code></a><a class=\"heading-anchor\" href=\"#csrf-cookie-secure\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>誤って HTTP によって CSRF クッキーを送信してしまうのを防ぐには、<code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code> をセットしてください。</p>\n</section>\n<section id=\"session-cookie-secure\">\n<h3><a class=\"reference internal\" href=\"/ja/6.0/ref/settings/#std-setting-SESSION_COOKIE_SECURE\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">SESSION_COOKIE_SECURE</span></code></a><a class=\"heading-anchor\" href=\"#session-cookie-secure\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>誤って HTTP によってセッションクッキーを送信してしまうのを防ぐには、<code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code> をセットしてください。</p>\n</section>\n</section>\n<section id=\"performance-optimizations\">\n<h2>パフォーマンスの最適化<a class=\"heading-anchor\" href=\"#performance-optimizations\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p><a class=\"reference internal\" href=\"/ja/6.0/ref/settings/#std-setting-DEBUG\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">DEBUG</span> <span class=\"pre\">=</span> <span class=\"pre\">False</span></code></a> をセットすることで、複数の開発向けの機能が無効化されます。さらに、以下の設定を調整できます。</p>\n<section id=\"sessions\">\n<h3>セッション<a class=\"heading-anchor\" href=\"#sessions\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>パフォーマンスを向上させるために <a class=\"reference internal\" href=\"/ja/6.0/topics/http/sessions/#cached-sessions-backend\"><span class=\"std std-ref\">キャッシュを使ったセッション</span></a> の使用を検討してください。</p>\n<p>データベースバックアップセッションを使用している場合は、不要なデータを保存しないように <a class=\"reference internal\" href=\"/ja/6.0/topics/http/sessions/#clearing-the-session-store\"><span class=\"std std-ref\">セッションストアのクリア</span></a> を定期的に行ってください。</p>\n</section>\n<section id=\"conn-max-age\">\n<h3><a class=\"reference internal\" href=\"/ja/6.0/ref/settings/#std-setting-CONN_MAX_AGE\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">CONN_MAX_AGE</span></code></a><a class=\"heading-anchor\" href=\"#conn-max-age\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p><a class=\"reference internal\" href=\"/ja/6.0/ref/databases/#persistent-database-connections\"><span class=\"std std-ref\">永続的なデータベース接続</span></a> を有効化すると、リクエストのプロセス時間の多くの部分に対するデータベースアカウントへの接続において、高速になります。</p>\n<p>限られたネットワーク性能の仮想化ホストにおいて、とても効果的です。</p>\n</section>\n<section id=\"templates\">\n<h3><a class=\"reference internal\" href=\"/ja/6.0/ref/settings/#std-setting-TEMPLATES\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">TEMPLATES</span></code></a><a class=\"heading-anchor\" href=\"#templates\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>キャッシュされたテンプレートローダーを有効にすると、レンダリングが必要になるたびに各テンプレートをコンパイルする必要がなくなるので、パフォーマンスが劇的に向上します。 <a class=\"reference internal\" href=\"/ja/6.0/ref/settings/#std-setting-DEBUG\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">DEBUG</span> <span class=\"pre\">=</span> <span class=\"pre\">False</span></code></a> の場合、キャッシュテンプレートローダーは自動的に有効になります。詳しくは <a class=\"reference internal\" href=\"/ja/6.0/ref/templates/api/#django.template.loaders.cached.Loader\" title=\"django.template.loaders.cached.Loader\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.template.loaders.cached.Loader</span></code></a> を参照してください。</p>\n</section>\n</section>\n<section id=\"error-reporting\">\n<h2>エラーのレポート<a class=\"heading-anchor\" href=\"#error-reporting\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>あなたの書いたコードを本番環境に送信するまでは、頑強であることが望まれますが、予期しないエラーを除外することはできません。ありがたいことに、Django はエラーをキャッチして適切にお知らせします。</p>\n<section id=\"logging\">\n<h3><a class=\"reference internal\" href=\"/ja/6.0/ref/settings/#std-setting-LOGGING\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">LOGGING</span></code></a><a class=\"heading-anchor\" href=\"#logging\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>本番環境に置く前に、ロギング設定を見直しましょう。また、トラフィックを受け取ったらすぐにそれらが想定通り動作していることを確認してください。</p>\n<p>ロギングに関する詳細は <a class=\"reference internal\" href=\"/ja/6.0/topics/logging/\"><span class=\"doc\">ロギング</span></a> を参照してください。</p>\n</section>\n<section id=\"admins-and-managers\">\n<h3><a class=\"reference internal\" href=\"/ja/6.0/ref/settings/#std-setting-ADMINS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">ADMINS</span></code></a> と <a class=\"reference internal\" href=\"/ja/6.0/ref/settings/#std-setting-MANAGERS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">MANAGERS</span></code></a><a class=\"heading-anchor\" href=\"#admins-and-managers\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p><a class=\"reference internal\" href=\"/ja/6.0/ref/settings/#std-setting-ADMINS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">ADMINS</span></code></a> は、500 エラーの通知を E メールで受け取ります。</p>\n<p><a class=\"reference internal\" href=\"/ja/6.0/ref/settings/#std-setting-MANAGERS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">MANAGERS</span></code></a> は、404 エラーの通知を受け取ります。<a class=\"reference internal\" href=\"/ja/6.0/ref/settings/#std-setting-IGNORABLE_404_URLS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">IGNORABLE_404_URLS</span></code></a> により不要なレポートをフィルタリングできます。</p>\n<p>E メールによるエラーレポートの詳細は、<a class=\"reference internal\" href=\"/ja/6.0/howto/error-reporting/\"><span class=\"doc\">エラーレポートの管理</span></a> を参照してください。</p>\n<aside class=\"admonition-error-reporting-by-email-doesn-t-scale-very-well admonition\">\n<p class=\"admonition-title\">E メールによるエラーレポートはスケールしない</p>\n<p>あなたの受信箱がレポートであふれかえる前に、<a class=\"reference external\" href=\"https://docs.sentry.io/\">Sentry</a> などのエラーモニタリングツールの導入を検討してください。Sentry もログを集計することができます。</p>\n</aside>\n</section>\n<section id=\"customize-the-default-error-views\">\n<h3>デフォルトのエラービューをカスタムする<a class=\"heading-anchor\" href=\"#customize-the-default-error-views\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Django には、いくつかの HTTP に対して、デフォルトのビューとテンプレートが用意してあります。ルートのテンプレートディレクトリに以下のテンプレートを作成することで、独自のテンプレートに置き換えることができます: <code class=\"docutils literal notranslate\"><span class=\"pre\">404.html</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">500.html</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">403.html</span></code>, and <code class=\"docutils literal notranslate\"><span class=\"pre\">400.html</span></code> 。99％のWebアプリケーションは、これらのテンプレートを使用した <a class=\"reference internal\" href=\"/ja/6.0/ref/views/#error-views\"><span class=\"std std-ref\">デフォルトのエラービュー</span></a> で事足りるはずですが、 <a class=\"reference internal\" href=\"/ja/6.0/topics/http/views/#customizing-error-views\"><span class=\"std std-ref\">これらをカスタマイズする</span></a> こともできます。</p>\n</section>\n</section>","rootId":"deployment-checklist","toc":[{"title":"manage.py check --deploy を実施しよう","anchor":"run-manage-py-check-deploy","children":[]},{"title":"manage.py runserver から切り替える","anchor":"switch-away-from-manage-py-runserver","children":[]},{"title":"最重要な設定","anchor":"critical-settings","children":[{"title":"SECRET_KEY","anchor":"secret-key","children":[]},{"title":"DEBUG","anchor":"debug","children":[]}]},{"title":"環境に合わせた設定","anchor":"environment-specific-settings","children":[{"title":"ALLOWED_HOSTS","anchor":"allowed-hosts","children":[]},{"title":"CACHES","anchor":"caches","children":[]},{"title":"DATABASES","anchor":"databases","children":[]},{"title":"EMAIL_BACKEND と関連する設定","anchor":"email-backend-and-related-settings","children":[]},{"title":"STATIC_ROOT と STATIC_URL","anchor":"static-root-and-static-url","children":[]},{"title":"MEDIA_ROOT と MEDIA_URL","anchor":"media-root-and-media-url","children":[]}]},{"title":"HTTPS","anchor":"https","children":[{"title":"CSRF_COOKIE_SECURE","anchor":"csrf-cookie-secure","children":[]},{"title":"SESSION_COOKIE_SECURE","anchor":"session-cookie-secure","children":[]}]},{"title":"パフォーマンスの最適化","anchor":"performance-optimizations","children":[{"title":"セッション","anchor":"sessions","children":[]},{"title":"CONN_MAX_AGE","anchor":"conn-max-age","children":[]},{"title":"TEMPLATES","anchor":"templates","children":[]}]},{"title":"エラーのレポート","anchor":"error-reporting","children":[{"title":"LOGGING","anchor":"logging","children":[]},{"title":"ADMINS と MANAGERS","anchor":"admins-and-managers","children":[]},{"title":"デフォルトのエラービューをカスタムする","anchor":"customize-the-default-error-views","children":[]}]}],"breadcrumbs":[{"docname":"howto/index","title":"How-to ガイド","url":"/ja/6.0/howto/"},{"docname":"howto/deployment/index","title":"Djangoをデプロイするには","url":"/ja/6.0/howto/deployment/"}],"prev":{"docname":"howto/deployment/asgi/uvicorn","title":"Django を Uvicorn とともに使う","url":"/ja/6.0/howto/deployment/asgi/uvicorn/"},"next":{"docname":"howto/static-files/deployment","title":"静的ファイルをデプロイする","url":"/ja/6.0/howto/static-files/deployment/"},"formats":{"html":"/ja/6.0/howto/deployment/checklist/","markdown":"/ja/6.0/howto/deployment/checklist.md","json":"/ja/6.0/howto/deployment/checklist.json"},"source":"https://github.com/django/django/blob/stable/6.0.x/docs/howto/deployment/checklist.txt","official":"https://docs.djangoproject.com/ja/6.0/howto/deployment/checklist/","inVersions":["6.1","6.0","5.2","5.1","5.0","4.2","4.1","4.0","3.2","3.1","3.0","2.2","2.1","2.0","1.11","1.10","1.9"],"inLocales":["en","sv","zh-hans","ga","fr","ja","id","it","pt-br","ko","es","el","pl"]}