{"title":"デプロイチェックリスト","version":"2.1","locale":"ja","docname":"howto/deployment/checklist","url":"/ja/2.1/howto/deployment/checklist/","canonical":"https://djangodocs.dev/ja/2.1/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/2.1/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/2.1/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=\"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/2.1/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<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=\"s1\">&#39;SECRET_KEY&#39;</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=\"s1\">&#39;/etc/secret_key.txt&#39;</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</section>\n<section id=\"debug\">\n<h3><a class=\"reference internal\" href=\"/ja/2.1/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/2.1/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/2.1/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/2.1/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/2.1/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/2.1/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>もしキャッシュを使うなら、開発環境と本番環境とでコネクションパラメータは異なるでしょう。そうでない場合、デフォルトはref:<a href=\"#id1\"><span class=\"problematic\" id=\"id2\">`</span></a>local-memory-caching`のper-processに設定されています。</p>\n<p>キャッシュサーバーは認証に弱点を持っています。あなたのアプリケーションからのコネクションだけを受け入れるようにしてください。</p>\n<p>もしあなたがMemcachedを使うなら、より性能を向上させるために <span class=\"xref std std-ref\">cached sessions</span> を使うことも検討してください。</p>\n</section>\n<section id=\"databases\">\n<h3><a class=\"reference internal\" href=\"/ja/2.1/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/2.1/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/2.1/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>デフォルトでは、Django は <a class=\"reference external\" href=\"mailto:webmaster&#37;&#52;&#48;localhost\">webmaster<span>&#64;</span>localhost</a> と <a class=\"reference external\" href=\"mailto:root&#37;&#52;&#48;localhost\">root<span>&#64;</span>localhost</a> から E メールを送信します。しかし、いくつかのメールプロバイダはこれらのアドレスを拒否します。異なる送信者アドレスを使用するには、<a class=\"reference internal\" href=\"/ja/2.1/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> と <a class=\"reference internal\" href=\"/ja/2.1/ref/settings/#std-setting-SERVER_EMAIL\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">SERVER_EMAIL</span></code></a> 設定を修正してください。</p>\n</section>\n<section id=\"static-root-and-static-url\">\n<h3><a class=\"reference internal\" href=\"/ja/2.1/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/2.1/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/2.1/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/2.1/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/2.1/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/2.1/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/2.1/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 id=\"file-upload-permissions\">\n<h3><a class=\"reference internal\" href=\"/ja/2.1/ref/settings/#std-setting-FILE_UPLOAD_PERMISSIONS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">FILE_UPLOAD_PERMISSIONS</span></code></a><a class=\"heading-anchor\" href=\"#file-upload-permissions\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>With the default file upload settings, files smaller than\n<a class=\"reference internal\" href=\"/ja/2.1/ref/settings/#std-setting-FILE_UPLOAD_MAX_MEMORY_SIZE\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">FILE_UPLOAD_MAX_MEMORY_SIZE</span></code></a> may be stored with a different mode\nthan larger files as described in <a class=\"reference internal\" href=\"/ja/2.1/ref/settings/#std-setting-FILE_UPLOAD_PERMISSIONS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">FILE_UPLOAD_PERMISSIONS</span></code></a>.</p>\n<p>Setting <a class=\"reference internal\" href=\"/ja/2.1/ref/settings/#std-setting-FILE_UPLOAD_PERMISSIONS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">FILE_UPLOAD_PERMISSIONS</span></code></a> ensures all files are uploaded with\nthe same permissions.</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>ユーザーアカウントやアドミンといった機密領域を保護するだけでは十分ではありません。同じセッションクッキーが HTTP や HTTPS に使われるからです。ウェブサーバーはすべての HTTP トラフィックを HTTPS にリダイレクトし、Django には HTTPS リクエストのみが送信されなければなりません。</p>\n<p>一度 HTTPS をセットアップしたら、以下の設定項目が有効になります。</p>\n<section id=\"csrf-cookie-secure\">\n<h3><a class=\"reference internal\" href=\"/ja/2.1/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/2.1/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/2.1/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=\"conn-max-age\">\n<h3><a class=\"reference internal\" href=\"/ja/2.1/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/2.1/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/2.1/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/2.1/ref/templates/api/#template-loaders\"><span class=\"std std-ref\">テンプレートローダーのドキュメント</span></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/2.1/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/2.1/topics/logging/\"><span class=\"doc\">ロギング</span></a> を参照してください。</p>\n</section>\n<section id=\"admins-and-managers\">\n<h3><a class=\"reference internal\" href=\"/ja/2.1/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/2.1/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/2.1/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/2.1/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/2.1/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/2.1/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 includes default views and templates for several HTTP error codes. You\nmay want to override the default templates by creating the following templates\nin your root template directory: <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\n<code class=\"docutils literal notranslate\"><span class=\"pre\">400.html</span></code>. The <a class=\"reference internal\" href=\"/ja/2.1/ref/views/#error-views\"><span class=\"std std-ref\">default error views</span></a> that use these\ntemplates should suffice for 99% of Web applications, but you can\n<a class=\"reference internal\" href=\"/ja/2.1/topics/http/views/#customizing-error-views\"><span class=\"std std-ref\">customize them</span></a> as well.</p>\n</section>\n</section>","rootId":"deployment-checklist","toc":[{"title":"manage.py check --deploy を実施しよう","anchor":"run-manage-py-check-deploy","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":"FILE_UPLOAD_PERMISSIONS","anchor":"file-upload-permissions","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":"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/2.1/howto/"},{"docname":"howto/deployment/index","title":"Django をデプロイする","url":"/ja/2.1/howto/deployment/"}],"prev":{"docname":"howto/deployment/wsgi/uwsgi","title":"Django を uWSGI とともに使うには？","url":"/ja/2.1/howto/deployment/wsgi/uwsgi/"},"next":{"docname":"howto/upgrade-version","title":"Django の新しいバージョンへの更新","url":"/ja/2.1/howto/upgrade-version/"},"formats":{"html":"/ja/2.1/howto/deployment/checklist/","markdown":"/ja/2.1/howto/deployment/checklist.md","json":"/ja/2.1/howto/deployment/checklist.json"},"source":"https://github.com/django/django/blob/stable/2.1.x/docs/howto/deployment/checklist.txt","official":"https://docs.djangoproject.com/ja/2.1/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","zh-hans","fr","ja","id","pt-br","ko","es","el","pl"]}