tag:crieit.net,2005:https://crieit.net/tags/moodle/feed 「moodle」の記事 - Crieit Crieitでタグ「moodle」に投稿された最近の記事 2022-07-14T11:08:23+09:00 https://crieit.net/tags/moodle/feed tag:crieit.net,2005:PublicArticle/18190 2022-05-17T16:16:36+09:00 2022-07-14T11:08:23+09:00 https://crieit.net/posts/Moodle-URL-Google-Forms-Moodle 【Moodle】URL変数を使って、Google FormsにMoodleのコース名を自動入力させる <h2 id="Google Formsを使ったアンケート運用の悩みとその解決方法"><a href="#Google+Forms%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%9F%E3%82%A2%E3%83%B3%E3%82%B1%E3%83%BC%E3%83%88%E9%81%8B%E7%94%A8%E3%81%AE%E6%82%A9%E3%81%BF%E3%81%A8%E3%81%9D%E3%81%AE%E8%A7%A3%E6%B1%BA%E6%96%B9%E6%B3%95">Google Formsを使ったアンケート運用の悩みとその解決方法</a></h2> <ul> <li>Moodleのアンケートモジュールより使いやすかったのでGoogle Formsで受講者のアンケートを取っていました。フォームの入力項目にMoodleのコース名があるのですが、これを受講者に手入力してもらうと入力間違いが発生しがちでデータ集計用に都度修正しないといけないのが長年の大きな悩みでした。</li> <li>MoodleのURL変数機能を使うとコース名をMoodleからGoogle Formsに自動で渡せるのでこの入力間違い問題を簡単に解決できます。<br /> この例ではコース名をGoogle Formsに渡していますが、Moodleのログインユーザー名を渡すことも可能でとても便利です。</li> </ul> <h2 id="動作確認したバージョン"><a href="#%E5%8B%95%E4%BD%9C%E7%A2%BA%E8%AA%8D%E3%81%97%E3%81%9F%E3%83%90%E3%83%BC%E3%82%B8%E3%83%A7%E3%83%B3">動作確認したバージョン</a></h2> <ul> <li>Moodle 3.11.4+</li> </ul> <h2 id="手順"><a href="#%E6%89%8B%E9%A0%86">手順</a></h2> <h3 id="1. Google Formsの指定入力項目のURLパラメーターを取得する"><a href="#1.+Google+Forms%E3%81%AE%E6%8C%87%E5%AE%9A%E5%85%A5%E5%8A%9B%E9%A0%85%E7%9B%AE%E3%81%AEURL%E3%83%91%E3%83%A9%E3%83%A1%E3%83%BC%E3%82%BF%E3%83%BC%E3%82%92%E5%8F%96%E5%BE%97%E3%81%99%E3%82%8B">1. Google Formsの指定入力項目のURLパラメーターを取得する</a></h3> <p><a href="https://crieit.now.sh/upload_images/2bc1c94ac131f712416489d452d91b55628344c5a9b1a.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/2bc1c94ac131f712416489d452d91b55628344c5a9b1a.png?mw=700" alt="image" /></a></p> <h4 id="1-2. Moodleのコースを入力している項目で適当な値を入れる"><a href="#1-2.+Moodle%E3%81%AE%E3%82%B3%E3%83%BC%E3%82%B9%E3%82%92%E5%85%A5%E5%8A%9B%E3%81%97%E3%81%A6%E3%81%84%E3%82%8B%E9%A0%85%E7%9B%AE%E3%81%A7%E9%81%A9%E5%BD%93%E3%81%AA%E5%80%A4%E3%82%92%E5%85%A5%E3%82%8C%E3%82%8B">1-2. Moodleのコースを入力している項目で適当な値を入れる</a></h4> <p><a href="https://crieit.now.sh/upload_images/8c7f19e9f05668c57894a6eaeda7819c628344f995418.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/8c7f19e9f05668c57894a6eaeda7819c628344f995418.png?mw=700" alt="image" /></a></p> <h4 id="1-3. 一番下の「リンクを取得」をクリックする"><a href="#1-3.+%E4%B8%80%E7%95%AA%E4%B8%8B%E3%81%AE%E3%80%8C%E3%83%AA%E3%83%B3%E3%82%AF%E3%82%92%E5%8F%96%E5%BE%97%E3%80%8D%E3%82%92%E3%82%AF%E3%83%AA%E3%83%83%E3%82%AF%E3%81%99%E3%82%8B">1-3. 一番下の「リンクを取得」をクリックする</a></h4> <p><a href="https://crieit.now.sh/upload_images/67c49ff155ceb4e358afd7ddc1c9c9ee62834520a3474.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/67c49ff155ceb4e358afd7ddc1c9c9ee62834520a3474.png?mw=700" alt="image" /></a></p> <h4 id="1-4. 「リンクをコピー」をクリックして生成されたURLを取得する"><a href="#1-4.+%E3%80%8C%E3%83%AA%E3%83%B3%E3%82%AF%E3%82%92%E3%82%B3%E3%83%94%E3%83%BC%E3%80%8D%E3%82%92%E3%82%AF%E3%83%AA%E3%83%83%E3%82%AF%E3%81%97%E3%81%A6%E7%94%9F%E6%88%90%E3%81%95%E3%82%8C%E3%81%9FURL%E3%82%92%E5%8F%96%E5%BE%97%E3%81%99%E3%82%8B">1-4. 「リンクをコピー」をクリックして生成されたURLを取得する</a></h4> <p><a href="https://crieit.now.sh/upload_images/045b4e9585d981c97b024554195f6f286283457759799.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/045b4e9585d981c97b024554195f6f286283457759799.png?mw=700" alt="image" /></a></p> <h4 id="1-5. メモ帳などに生成されたURLを貼り付け、URLパラメーターを確認する"><a href="#1-5.+%E3%83%A1%E3%83%A2%E5%B8%B3%E3%81%AA%E3%81%A9%E3%81%AB%E7%94%9F%E6%88%90%E3%81%95%E3%82%8C%E3%81%9FURL%E3%82%92%E8%B2%BC%E3%82%8A%E4%BB%98%E3%81%91%E3%80%81URL%E3%83%91%E3%83%A9%E3%83%A1%E3%83%BC%E3%82%BF%E3%83%BC%E3%82%92%E7%A2%BA%E8%AA%8D%E3%81%99%E3%82%8B">1-5. メモ帳などに生成されたURLを貼り付け、URLパラメーターを確認する</a></h4> <p><code>https://docs.google.com/forms/d/e/xxxxxxxxxxxxxxxxxxx/viewform?usp=pp_url&entry.88458871=hogehoge</code></p> <p>上記の場合は<strong>entry.88458871</strong>が該当項目のURLパラメーターです。<br /> <strong>https://docs.google.com/forms/d/e/xxxxxxxxxxxxxxxxxxx/viewform?usp=pp_url</strong>はURLモジュールの<strong>外部URL</strong>に指定します</p> <h3 id="2. Moodleのコース内にあるGoogle Formsに飛ぶURLモジュールのURL変数を設定する"><a href="#2.+Moodle%E3%81%AE%E3%82%B3%E3%83%BC%E3%82%B9%E5%86%85%E3%81%AB%E3%81%82%E3%82%8BGoogle+Forms%E3%81%AB%E9%A3%9B%E3%81%B6URL%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB%E3%81%AEURL%E5%A4%89%E6%95%B0%E3%82%92%E8%A8%AD%E5%AE%9A%E3%81%99%E3%82%8B">2. Moodleのコース内にあるGoogle Formsに飛ぶURLモジュールのURL変数を設定する</a></h3> <h4 id="2-1. 外部URLの設定"><a href="#2-1.+%E5%A4%96%E9%83%A8URL%E3%81%AE%E8%A8%AD%E5%AE%9A">2-1. 外部URLの設定</a></h4> <p><a href="https://crieit.now.sh/upload_images/11c35a0a2e30a0952699d4c84bb45ac062834889dd10e.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/11c35a0a2e30a0952699d4c84bb45ac062834889dd10e.png?mw=700" alt="image" /></a><br /> 上記で確認した<strong>https://docs.google.com/forms/d/e/xxxxxxxxxxxxxxxxxxx/viewform?usp=pp_url</strong>を<strong>外部URL</strong>へ入れます。</p> <h4 id="2-2. URL変数の設定"><a href="#2-2.+URL%E5%A4%89%E6%95%B0%E3%81%AE%E8%A8%AD%E5%AE%9A">2-2. URL変数の設定</a></h4> <p><a href="https://crieit.now.sh/upload_images/f0715dd34b715e3fd32dff68ae360a2e628346fb9ddf8.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/f0715dd34b715e3fd32dff68ae360a2e628346fb9ddf8.png?mw=700" alt="image" /></a></p> <p>URL変数の&parameter=変数の箇所にこのような形式で先程確認したURLパラメーターの<strong>entry.88458871</strong>と<strong>自動入力させたい情報</strong>(ここでは長いコース名)入れます。</p> <h3 id="3. URLモジュールからGoogle Formsのリンクを踏んで動作チェック"><a href="#3.+URL%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB%E3%81%8B%E3%82%89Google+Forms%E3%81%AE%E3%83%AA%E3%83%B3%E3%82%AF%E3%82%92%E8%B8%8F%E3%82%93%E3%81%A7%E5%8B%95%E4%BD%9C%E3%83%81%E3%82%A7%E3%83%83%E3%82%AF">3. URLモジュールからGoogle Formsのリンクを踏んで動作チェック</a></h3> <p><a href="https://crieit.now.sh/upload_images/52355fdfa98336dec3e566cc5fb6c6d762834a04b1bc3.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/52355fdfa98336dec3e566cc5fb6c6d762834a04b1bc3.png?mw=700" alt="image" /></a></p> <p>Google Formsで指定項目にMoodleのコース名が自動で入力されればOKです</p> arohajiro tag:crieit.net,2005:PublicArticle/16483 2021-01-03T18:28:53+09:00 2021-02-08T12:55:11+09:00 https://crieit.net/posts/S3-Moodle-S3-HTTP-Referer-Moodle 【S3】【Moodle】S3のバケットポリシーで 特定の HTTP Referer へのアクセスの制限 を導入したら、Moodle でリンクした動画が再生できずにハマった <p>Moodleのコンテンツとして<strong>S3に保管しているファイル</strong>をURLモジュールでリンクしているのですが、S3のバケットポリシーを <a target="_blank" rel="nofollow noopener" href="https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/dev/example-bucket-policies.html#example-bucket-policies-use-case-2">匿名ユーザーへの読み取り専用アクセス許可の付与</a> で設定していたため、<br /> ファイルを直リンクできる状態になっていました<br /> あまりよろしい状態とは言えないので、 <a target="_blank" rel="nofollow noopener" href="https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/dev/example-bucket-policies.html#example-bucket-policies-use-case-4">特定の HTTP Referer へのアクセスの制限</a> を導入してみたところ、Moodleの挙動でちょっとハマったので備忘メモしておきます</p> <h1 id="確認済み環境"><a href="#%E7%A2%BA%E8%AA%8D%E6%B8%88%E3%81%BF%E7%92%B0%E5%A2%83">確認済み環境</a></h1> <ul> <li>Moodle (bitnami-moodle-3.8.2)</li> </ul> <h1 id="S3のバケットポリシー"><a href="#S3%E3%81%AE%E3%83%90%E3%82%B1%E3%83%83%E3%83%88%E3%83%9D%E3%83%AA%E3%82%B7%E3%83%BC">S3のバケットポリシー</a></h1> <p>こんな感じで、MoodleのURLからのみS3のファイルにアクセスできるようにしてみました</p> <pre><code class="json">{ "Version": "2012-10-17", "Statement": [ { "Sid": "Allow get requests originating from moodle.aroha.test and moodle-staging.aroha.test", "Effect": "Allow", "Principal": "*", "Action": "s3:GetObject", "Resource": "arn:aws:s3:::arohatest/*", "Condition": { "StringLike": { "aws:Referer": [ "http://moodle-staging.aroha.test/*", "https://moodle.aroha.test/*" ] } } } ] } </code></pre> <h1 id="バケットポリシーを変更したら、動画ファイルのリンクで問題発生!"><a href="#%E3%83%90%E3%82%B1%E3%83%83%E3%83%88%E3%83%9D%E3%83%AA%E3%82%B7%E3%83%BC%E3%82%92%E5%A4%89%E6%9B%B4%E3%81%97%E3%81%9F%E3%82%89%E3%80%81%E5%8B%95%E7%94%BB%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%AE%E3%83%AA%E3%83%B3%E3%82%AF%E3%81%A7%E5%95%8F%E9%A1%8C%E7%99%BA%E7%94%9F%EF%BC%81">バケットポリシーを変更したら、動画ファイルのリンクで問題発生!</a></h1> <p>バケットポリシーを変えたところ、以下のようにリンクしている動画ファイルが再生できなくなりました(T T)<br /> PDFファイルへのリンクは問題無く動くので、Moodle側に問題がありそうです</p> <p><a href="https://crieit.now.sh/upload_images/f0fb8c89b9ce6ba32ccbccfdca1230185ff18d543be65.jpg" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/f0fb8c89b9ce6ba32ccbccfdca1230185ff18d543be65.jpg?mw=700" alt="b7fe208ec86544c2a734fd55e131b643.jpg" /></a></p> <h1 id="問題の回避策"><a href="#%E5%95%8F%E9%A1%8C%E3%81%AE%E5%9B%9E%E9%81%BF%E7%AD%96">問題の回避策</a></h1> <p>URLモジュールでアピアランスをポップアップに設定した動画ファイルは全てNGなので、<strong>自動</strong> or <strong>埋め込み</strong> に変更してみました<br /> (詳しく調べていませんが、ポップアップだと <strong>HTTP Referer</strong> が送られないのかな?)</p> <p><a href="https://crieit.now.sh/upload_images/3c149cd73623ba78add965501b31584a5ff18d7680970.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/3c149cd73623ba78add965501b31584a5ff18d7680970.png?mw=700" alt="9bf1918ab705e6bf7fbd4d02f95692fc.png" /></a></p> <h1 id="回避後の様子"><a href="#%E5%9B%9E%E9%81%BF%E5%BE%8C%E3%81%AE%E6%A7%98%E5%AD%90">回避後の様子</a></h1> <p>Moodleのページ内に動画が埋め込まれますが、ちゃんと再生できました<br /> しかし、これじゃ動画のサイズが小さく固定されて見にくい(T T)</p> <p><a href="https://crieit.now.sh/upload_images/10f715ef6ed37daa534ee74f630432305ff18d94ddf65.jpg" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/10f715ef6ed37daa534ee74f630432305ff18d94ddf65.jpg?mw=700" alt="48cab808d912677c2ac3a681fe643787.jpg" /></a></p> <h1 id="埋め込まれた動画のサイズを変える方法"><a href="#%E5%9F%8B%E3%82%81%E8%BE%BC%E3%81%BE%E3%82%8C%E3%81%9F%E5%8B%95%E7%94%BB%E3%81%AE%E3%82%B5%E3%82%A4%E3%82%BA%E3%82%92%E5%A4%89%E3%81%88%E3%82%8B%E6%96%B9%E6%B3%95">埋め込まれた動画のサイズを変える方法</a></h1> <ol> <li><p>メディアプレイヤのプラグインから、VideoJSプレイヤの設定を開く</p> <p><a href="https://crieit.now.sh/upload_images/c2bac5494028ed049b5f99034bd55c7a5ff18dac82212.jpg" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/c2bac5494028ed049b5f99034bd55c7a5ff18dac82212.jpg?mw=700" alt="fc5ed9d8423a6e807bd8193fc0604b88.jpg" /></a></p></li> <li><p>サイズを制限するのチェックを外して、変更を保存する</p> <p><a href="https://crieit.now.sh/upload_images/70b5d5db05ae01cfba2fdbfe18b7624b5ff18dbee5c89.jpg" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/70b5d5db05ae01cfba2fdbfe18b7624b5ff18dbee5c89.jpg?mw=700" alt="2147762179d355b0f77a4fb0275d4d8e.jpg" /></a></p></li> </ol> <h1 id="VideoJSプレイヤの設定変更後の様子"><a href="#VideoJS%E3%83%97%E3%83%AC%E3%82%A4%E3%83%A4%E3%81%AE%E8%A8%AD%E5%AE%9A%E5%A4%89%E6%9B%B4%E5%BE%8C%E3%81%AE%E6%A7%98%E5%AD%90">VideoJSプレイヤの設定変更後の様子</a></h1> <p>ブラウザのウインドウサイズに合わせた動画サイズになり、見やすくなりました (^^)</p> <p><a href="https://crieit.now.sh/upload_images/9812d246d3c3101dcb3c7975a2c514c45ff18dd38fab9.jpg" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/9812d246d3c3101dcb3c7975a2c514c45ff18dd38fab9.jpg?mw=700" alt="6c4718708264783637151a3f79ad4c69.jpg" /></a></p> <h1 id="まとめ"><a href="#%E3%81%BE%E3%81%A8%E3%82%81">まとめ</a></h1> <p>moodleでHTTP Refererのアクセス制限をしたS3の動画ファイルをリンクをする場合、アピアランスを<strong>ポップアップ</strong>にすると動画は再生できない。<br /> アピアランスは自動か埋め込みを選択しましょう。</p> arohajiro tag:crieit.net,2005:PublicArticle/16204 2020-11-06T12:57:48+09:00 2020-11-06T13:58:48+09:00 https://crieit.net/posts/Bitnami-Moodle-Internal-Server-Error 【Bitnami Moodle】活動完了のレポート出力時にInternal Server Errorが発生する場合の解決方法 <h1 id="事象"><a href="#%E4%BA%8B%E8%B1%A1">事象</a></h1> <p>Moodleでコース受講者の進捗を確認する為に、活動完了のレポートを活用していました。<br /> ところが、参加者が20人を超えたコースでは「500 Internal Server Error」が発生してレポートが見られない状況が発生してしまいました。</p> <p><a href="https://crieit.now.sh/upload_images/9e13c9386cede86f17fa7be8f4f080c45fa4a285add44.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/9e13c9386cede86f17fa7be8f4f080c45fa4a285add44.png?mw=700" alt="スクリーンショット 2020-11-06 9.57.20.png" /></a></p> <h2 id="発生環境"><a href="#%E7%99%BA%E7%94%9F%E7%92%B0%E5%A2%83">発生環境</a></h2> <ul> <li>Amazon EC2 T2 (t2.micro)</li> <li>Bitnami Moodle 3.8.2-0 (AWS marketplace版)</li> <li>Apache 2.4.41</li> </ul> <h2 id="サーバから出力されるログ"><a href="#%E3%82%B5%E3%83%BC%E3%83%90%E3%81%8B%E3%82%89%E5%87%BA%E5%8A%9B%E3%81%95%E3%82%8C%E3%82%8B%E3%83%AD%E3%82%B0">サーバから出力されるログ</a></h2> <p>/opt/bitnami/apache2/logs/error_log</p> <pre><code>[Thu Nov 05 08:54:06.187727 2020] [substitute:error] [pid 22741:tid 139735763379968] [client 172.31.9.125:3026] AH01328: Line too long, URI /report/progress/index.php, referer: https://hogehoge/course/admin.php?courseid=2 [Thu Nov 05 08:54:06.187877 2020] [proxy_fcgi:error] [pid 22741:tid 139735763379968] (12)Cannot allocate memory: [client 172.31.9.125:3026] AH01075: Error dispatching request to : (passing brigade to output filters), referer: https://hogehoge/course/admin.php?courseid=2 </code></pre> <p>エラーログでググったところ、以下の情報にたどり着きました<br /> <a target="_blank" rel="nofollow noopener" href="https://community.bitnami.com/t/proxy-fcgi-error-12-cannot-allocate-memory-latest-bitnami-aws-wordpress-stack/86355">[proxy_fcgi:error] - (12)Cannot allocate memory: Latest Bitnami AWS WordPress Stack</a></p> <p>こちらはbitnamiのWordPressですが、ログの内容はほぼ同じでした</p> <h2 id="解決策"><a href="#%E8%A7%A3%E6%B1%BA%E7%AD%96">解決策</a></h2> <p>とりあえずbitnamiコミュニティ通り、SubstituteMaxLineLengthの値を変更する策をやってみることにしました。</p> <h3 id="httpd.confの修正"><a href="#httpd.conf%E3%81%AE%E4%BF%AE%E6%AD%A3">httpd.confの修正</a></h3> <p>/opt/bitnami/apache2/conf/httpd.confへ以下を追記<br /> SubstituteMaxLineLengthの値を10mに変更します。<br /> <a target="_blank" rel="nofollow noopener" href="https://httpd.apache.org/docs/trunk/ja/mod/quickreference.html">ここ</a>を見るとデフォルト値は1mぽいですね。</p> <pre><code><Location "/"> SubstituteMaxLineLength 10m </Location> </code></pre> <h3 id="Apacheの再起動"><a href="#Apache%E3%81%AE%E5%86%8D%E8%B5%B7%E5%8B%95">Apacheの再起動</a></h3> <pre><code class="bash">> sudo /opt/bitnami/ctlscript.sh restart apache </code></pre> <p>上記スクリプト実行時に以下のようなメッセージが出力されました。<br /> 問題なく再起動できているようです。</p> <pre><code>Unmonitored apache Syntax OK /opt/bitnami/apache2/scripts/ctl.sh : httpd stopped Syntax OK /opt/bitnami/apache2/scripts/ctl.sh : httpd started at port 80 Monitored apache </code></pre> <h2 id="解消したか確認してみる"><a href="#%E8%A7%A3%E6%B6%88%E3%81%97%E3%81%9F%E3%81%8B%E7%A2%BA%E8%AA%8D%E3%81%97%E3%81%A6%E3%81%BF%E3%82%8B">解消したか確認してみる</a></h2> <p>コースの参加者が20人を超えたコースでも「500 Internal Server Error」にならず、無事活動完了のレポート画面が表示できました!めでたしめでたし。</p> <p><a href="https://crieit.now.sh/upload_images/84be4cdb76d36bb7c63ab8e85f38bba45fa4a8696eb4c.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/84be4cdb76d36bb7c63ab8e85f38bba45fa4a8696eb4c.png?mw=700" alt="スクリーンショット 2020-11-06 10.34.30.png" /></a></p> arohajiro