はじめに
IIS に Django をデプロイして 画面を一回もお目見えすることなく 500 エラーが出た場合、タイトルの通り python のインストール設定が原因で起きている可能性があります
先に結論を記述しますが、その場合の対処策として 2パターン 方法があります
パターン①:python をアンインストールしてから再度、適切な設定でインストールし直す
パターン②:適切な権限を付与して対処する (アンインストールしない)
アンインストールして再度インストールしてもいいですが、環境パスが変わるなど、すでにローカルで動かしているシステムに影響があるかないか調べるのもメンドクサイですよね…
今回は パターン② 適切な権限を付与して対処する方法を共有したいと思います
下記の環境を想定しています
- Windows 10
- Python 3.9.7
- Django 3.2.10
もくじ
- 原因となったインストール手順
- 権限不足時のエラー画面
- 対処方法
原因となったインストール手順
ここで「Install Now」を押してしまっている…
「Install Now」でインストールする場合、インストールされる場所はユーザーフォルダ配下となる
IIS にユーザーフォルダ配下の python にアクセスする権限がないためエラーとなってしまう
最初から IIS で利用する目的の場合は、「Customize installation」を選択して
「all users」にチェックを入れる必要がある (デフォルトでチェックが入っている)
※ちなみに、Windows Server でインストールする場合は、デフォルトで False になっているので注意してください
権限不足時のエラー
セットアップが終わり、いざ接続って時に下記のエラーが出る
これだけではさすがに分からないですね…
対処方法
python の実行ファイル (python.exe) があるフォルダに対して、IIS のユーザー権限を付与する
下記、作業順に記載
[1] ユーザーの python 実行フォルダを開く
C:\Users\*****\AppData\Local\Programs\Python\Python39
[2] Python39 に対して右クリック -> 「プロパティ」を選択
[3] 「セキュリティ」タブ -> 「編集」を選択
[4] 「追加」を選択後、「IIS_IUSRS」と入力し「名前の確認」を押下
[5] 「適用」して完了
おわりに
python を入れ直すって記事はいくつかあったが、そのままの状態で対処する記事が見つからなかった
探し方が甘いだけかもしれませんが…
アンインストールはしたくないなぁって思いながら探している方の助力になれば幸いです