Uncategorized

AWSを使ってWebサイトを構築してみた。その3 ~DjangoでWebサイト公開~

前回の記事では、Windows ServerのIIS設定について説明しました。AWSを使ってWebサイトを構築してみた。その2 ~Windows Serverの構築~

本記事では、いよいよPythonxDjango使って動的なWebサイトを公開する手順について説明していきます。

目次

開発環境(Pycharm)の設定

Windows ServerとローカルPCでリソース連携する仕組みの設定

Web公開するためのWindows Serverの設定

開発環境(Pycharm)の設定

Pycharm Professionalを使ってWebサイトを激速で作ってみた! を参考にPycharmをローカルPCへインストールします。ここからの手順では上のリンクで作成したプロジェクトを使って設定していきます。

Windows ServerとローカルPCでリソース連携

次にローカルPCで開発したプログラムを素早くWebサイトへ反映できるようにAWSのサービスであるCodeCommitの設定をしていきたいと思います。Code CommitはAWSのgitで作成したプログラムを保存しておくためのバケツになります。

AWSのマネジードコンソール画面検索バーへ「CodeCommit」と入力し、CodeCommitを開きます。

画面右上が「東京」リージョンとなっていることを確認してください。

「リポジトリ作成」をクリックしてください。次の画面で、リポジトリ名に「hoge1」と入力、「作成」ボタンをクリックするとリポジトリができます。このリポジトリにローカルPCで作ったプログラムを連携していきます。

作成したリポジトリのURLは控えておいてください。

次にリポジトリへアクセスするためのID/PWを取得していきます。マネジードコンソールに戻り、左上にある検索バーへ「IAM」と入力し、IAM画面を開きます。作成したID/PWも手元に控えておいてください。

「ユーザ」、「認証情報」から、CodeCommitのGit認証情報を作成していきます。

ローカルPCの開発環境へGit連携の設定を行う

PycharmからPycharm Professionalを使ってWebサイトを激速で作ってみた! で作成したプロジェクトを開きます。メニューバーのVCS(バージョン管理システムの意味)から「Gitリポジトリの作成」、現在のプロジェクトを選択し、「OK」をクリックします。

リソースが赤くなりますが、リポジトリへの連携が終わっていないものが赤く表示されています。それではリポジトリへ連携していきたいと思います。

メニューバーから「VCS」の表記がなくなり、「Git」が表示されますので選択し、「リモート管理」をクリックしてください。

ポップアップ画面で、リポジトリ作成時に手元に控えたURLを貼り付けます。*冒頭にGit cloneがある場合は削除し、https~はじまりのURLを記載します。次に「OK」をクリックします

Git連携のID/PWを入力する画面が表示されますと、IAM画面で取得したID/PWを入力してください。

ここまで来ますと、下の画面のコミットから、バージョン管理外ファイルにcheckし、「コミットとプッシュ」をクリックします。

CodeCommitの画面を開き、作成したリポジトリ内を確認すると、プログラムが連携できいることが確認できます。

これで、ローカルPCの設定は終了となります。

次にWindowsServerの設定をしていきます。

Web公開するためのWindows Serverの設定

それでは、Windows Serverで作成したプログラムを公開するための設定を説明していきます。

フォルダの作成 C直下にinetpub/wwwroot/djangoフォルダを作成します

次にPythonをインストールしていきます。https://www.python.org/downloads/からPythonのインストーラーをダウンロードしてインストールしていきます。Pycharm画面かからもインストールすることはできますがカスタマイズインストールを行うため直接Pythonのサイトからダウンロードしてセットアップしてください。

「環境変数の追加」にチェック、インストール場所もC直下へ変更しましょう。

つづいて、Pycharmをインストールします。Git連携機能を用いるためProfessional版をインストールしてください。完了しましたらPycharmを開きます。

参考)以下の画面にて「Plugins」を選択し、Japanseと検索ボックスに入力すると、Japanse Language Packが表示されますので、Installしておくと、日本語化適応してくれます。Install完了後はRestartでPycharmを再起動する必要があります。

以下の画面で「Get from VCS」を選択します

Gitのダウンロードとインストールボタンを押下します。次にURL欄にCodecommitのリポジトリ作成時に手元に控えたURLを記入します。

URLへ接続するためのID/PWが求められるので、IAMで作成したID/PW(Git認証情報)を記入します。

CodeCommit上のリソースが正しくインポートできたら、次にプログラムを実行できるように環境をセットアップしていきます。メニューバー「ファイル」右クリック、「設定」、検索バーに「インタープリター」と入力し、次の画面から

設定ができたらもう一度、設定画面から「インタープリター」と入力し、次の画面から「django」「wfastcgi」をインストールしてください

次にプロジェクトをDjangoプロジェクトと認識させるために、構成を変更します。

メニューバーの右上にある「実行構成の編集」をクリックします。

「Djangoサーバ」を選択し、右下の「OK」ボタンをクリックします。

完了しましたら、プログラムを実行できるようになっていると思いますので、右上のデバッグボタン(虫)をクリックしてください。

次の画面が表示されたら成功です。ローカル環境で実行したプログラムがWindows Serverでも同様に動作させることができました。

それでは、いよいよWebサイトへ公開していきます。

IISを起動し、「サイト」を右クリック「Webサイトの追加」、

以下のように入力します。入力後は「Default Web Site」は削除してください。

次に、Fast CGIをハンドラーに設定していくために以下のコマンドをPycharmのターミナルへ入力してください。

C:\Windows\System32\inetsrv\appcmd unlock config -section:system.webServer/handlers

次の結果が表示されることを確認してください。

(venv) PS C:\inetpub\wwwroot\django\hogeProject> C:\Windows\System32\inetsrv\appcmd unlock config -section:system.webServer/handlers
Unlocked section "system.webServer/handlers" at configuration path "MACHINE/WEBROOT/APPHOST".

次に、wfastcgi-enableコマンドを入力し、有効化していきます。次のような結果が表示されることを確認してください。

(venv) PS C:\inetpub\wwwroot\django\hogeProject> wfastcgi-enable
Applied configuration changes to section "system.webServer/fastCgi" for "MACHINE/WEBROOT/APPHOST" at configuration commit path "MACHINE/WEBROOT/APPHOST"
"C:\inetpub\wwwroot\django\hogeProject\venv\Scripts\python.exe|C:\inetpub\wwwroot\django\hogeProject\venv\lib\site-packages\wfastcgi.py" can now be used as a FastCGI script processor        

web.configファイルを作成し、Pycharmプロジェクトの直下に配置します。

web.configは以下を参考にして作成してください。 

 注意点① 上の実行結果をそのままscriptProcessor欄に貼り付けてください。

 注意点② DJANGO_SETTINGS_MODULEは、hogeProject内のsettings.pyが入っているフォルダ名.settingsとしてください。

<configuration>
  <appSettings>
    <add key="WSGI_HANDLER" value="django.core.wsgi.get_wsgi_application()" />
    <add key="PYTHONPATH" value="C:\inetpub\wwwroot\django\hogeProject" />
    <add key="DJANGO_SETTINGS_MODULE" value="djangoProject.settings" />
  </appSettings>
  <system.webServer>
    <handlers>
        <add name="Python FastCGI" path="*" verb="*" modules="FastCgiModule" scriptProcessor="C:\inetpub\wwwroot\django\venv\Scripts\python.exe|C:\inetpub\wwwroot\django\hogeProject\venv\lib\site-packages\wfastcgi.py" resourceType="Unspecified" requireAccess="Script" />
    </handlers>
  </system.webServer>
</configuration>

Webブラウザで、http://localhost/で開いてみる

右クリック、プロパティ、セキュリティーから、IIS_IUSRSを追加し、以下の権限を付与します