ModSET常見問題(FAQ)


Moodle 與 WSDL

張貼者:2020年2月3日 下午11:06Martin Freeman   [ 已更新 2020年2月3日 下午11:06 ]

Moodle vs. WSDL
有幾個與企業ERP 的整合案,都會提到 Web Service 整合,所以想記錄一下給公司業務同仁,也同時跟大家分享 Moodle 如何由WebService整合其它異質系統。

要從一個外商使用的cloud的系統 - Boomi 開始說起;這個案子花了我們RD不少時間,在它的WSDL的部份,雖然如此最終還是可以整理如下:

如何取得WDSL

產出WDSL 的部份,你必須設定 User Token;當你拿到 token 後可以用類似這樣的網址取得WSDL:
https://<你的 moodle 網址>/webservice/soap/server.php?wstoken=<你的 token>&wsdl=1
<你的 moodle 網址>、<你的 token>要換成你自己的...
eg. https://www.moodle.com.tw/webservice/soap/server.php?wstoken=d40f90d0238b368fd88574fb8cbcbd88&wsdl=1
這樣就會拿到你要的 WSDL 了。

注意事項

雖然步驟很簡單,還是有幾件事要注意:
  • Moodle 的User Token,是以 User + Function(功能/操作)為單位的,意即不同的 user、不同的功能是不同的 token。
  • 外部系統經由 Moodle WSDL 取得的Method,基本上還是來自你在 Moodle 上的設定(在網站管理 -> 外掛 -> 網路服務);換句話說,所有可被外部呼叫的功能,都是由 你/Moodle 控制的。 
  • 如果你的外部系統(eg. ERP、EIP or Boomi )在公司以外,請確定你們的IPS/IDS(防火牆、入侵偵測)有開放封包存取。
我知道這樣的說明可能還不夠,有太多細節恕我無法一一說明,請利用上方的搜尋(搜尋這個協作)找到您需要的資訊。

MoodleSET with MinGW

張貼者:2020年1月1日 上午12:36Jobs Dennis   [ James Liu 已於 2020年2月27日 上午7:38 更新 ]

What is MinGW

在協助 Moodle 開發的案子裡,因為 Moodle 是LAMP的系統,常會需要提到開發工具、環境;而在 Windows 系統要用 unix-like 的環境,就會想到 MinGW 及 Cygwin。MinGW (Minimalist GNU for Windows) (發音可以是「Min~G~W」或是「Min~W」, 也有人唸做 「名貴(台語發音)」 或是 min gnu 「明~格奴」)Cygwin (發音-「賽葛-wing」)
嚴格來說,Cygwin和MinGW並不是同一個範圍的東西,Cygwin模擬出POSIX環境,能夠編譯並運行大部分的類Unix程式。
而MinGW只是用來編譯能在Windows作業系統中執行的程式的工具鏈(toolchain)而已,跟MSVC才是同個範圍的。

Cygwin

Cygwin 的目的是希望透過一個 DLL (就是 Cygwin1.dll, 通常在 C:\Windows\System32 底下) 建立一個系統呼叫轉換層,將原先 UNIX 世界裡的 system call 呼叫,經由這個 DLL 把它們對應到 Windows 的系統呼叫,如此一來就可以很方便在 Windows 底下模擬出一個 UNIX 平台來,這樣你不需要一個 UNIX 機器照樣也可以開發 UNIX 程式。開發好的程式只要拿到 UNIX 平台上就可以使用。
同理原來UNIX上諸多 Open source 程式也可以拿到 Windows 世界來使用,當然啦!UNIX system calls 與 Windows APIs 不盡然可以一對一對應,Cygwin 的目標在於儘可能相容(Compatible),執行績效倒不是重點考量。
MoodleSET API 說明&amp; 開發環境

MinGW

MinGW 原來是 Cygwin 裡 GNU 開發工具的一個分支,但它沒有 Cygwin 複雜,而且目的也與 Cygwin 不同。(WiKi-MinGW )。的目的反而是將 GNU 這個 open source、free 的開發工具移植到 Windows 平台,它直接產生出來的PC視窗平台機器碼,可以說與微軟 Visual Studio 做出來的一摸一樣,可以彼此互相通用。執行效率反而是重點。

Msys2

MinGW 常與 MSYS(Minimal SYStem)搭配使用,Msys是在 Windows上的一個瘦身型 shell 功能,它也是從 Cygwin 改版過來的,但更在乎與GNU相關的事物,因此沒有 Cygwin 那樣肥大的缺點。
因為 MSYS 的長期停止更新,MSYS2後來便出現了。MSYS2繼承了MSYS的理念,整合了32位元和64位元的 MinGW,並使用「pacman」來管理套件,讓原本沒有什麼擴充能力的MSYS,也可以自由且迅速地安裝各式各樣的套件了。

GNU
GNU是一個類Unix(Unix-like)的作業系統,經常與Linux核心搭配在一起(GNU/Linux即為一般我們所說的「Linux作業系統」)。有許多軟體開發的程式都是運作在GNU的環境中,無法直接在Windows作業系統中使用,就得依靠如Cygwin和MinGW(Minimalist GNU for Windows)等軟體在Windows作業系統中,建立出GNU程式的開發環境。

Install安裝

安裝 MSYS2

MSYS2官方網站下載,選擇x86_64的版本;安裝程式就一直下一步而已沒啥困難的,預設的安裝目錄為 C:\msys64。
安裝MSYS2後,進入黑色終端機,先更新一下MSYS2的套件:
pacman -Syu
更新到一半時,MSYS2可能會要求使用者要直接關閉MSYS2;請用右上角X關閉視窗。
關閉MSYS2後,重新開啟MSYS2的終端機,並輸入以下指令,繼續把套件的更新跑完。
pacman -Su

安裝 MinGW64

這裡就是要安裝我們要用的 MinGW 了
pacman -S mingw-w64-x86_64-toolchain
會安裝 17 組套件,按 enter 全部安裝。(如果要安裝 32位元: 
mingw-w64-i686-toolchain)

設定環境

這裡就跟我們參考的作法不一樣,經我們實作後用以下的方法:
vim ~/.bash_profile
加入這行:
PATH=/c/msys64/mingw64/bin:$PATH
在最後一行,重新進入 MSYS2 即可測試
gcc --version
在 Windows 環境要編譯 Gnu 的程式,真的是要看你的程式是什麼、我們也無法給一個統一的答案; MoodleSET 的學校,我們的推薦的還是 CentOS (so, YMMV).


參考來源: https://b8807053.pixnet.net/blog/post/3612532-%5B%E8%BD%89%E8%B2%BC%5Dmingw-%E8%88%87-cygwin-%E7%9A%84%E4%B8%8D%E5%90%8C%E8%99%95https://magiclen.org/msys2/

piix4_smbus 0000:00:07.3: Host SMBus controller not enabled!

張貼者:2019年12月24日 上午2:14James Liu   [ Martin Freeman 已於 2020年1月13日 下午4:08 更新 ]

今天接到 MoodleSET 學校來電,說他在在 MySQL 加掛一顆硬碟,打算拿來備份 Moodle 資料用;但在 VMware 加了硬碟、也在 CentOS 格式化成功了,卻在 DB主機 重開機時停了到 console 畫面查看...

問題描述

主要訊息: piix4_smbus 0000:00:07.3: Host SMBus controller not enabled! 
MySQL 掛上硬碟後無法正常開機
上面提到,可以用 journalctl -xb 看詳細訊息(不過本例是處理 piix4 為主, 我們就不看了),或是用 systemctl reboot、systemctl default (^D) 重開機. 

解決方法:
請試試看:
用 root 密碼進入 維護模式 ,  鍵入下列指令:
mount -o remount.rw /
echo 'blacklist i2c-piix4' >> /etc/modprobe.d/blacklist.conf
然後重開機。
PS: 如果在 /etc/modprobe.d 下沒有 blacklist.conf 這個檔案, 就把  >> 改成 > :
echo 'blacklist i2c-piix4' > /etc/modprobe.d/blacklist.conf
這樣就會產生一個新的檔案,然後重新開機。
done.



Cookie samesite

張貼者:2019年12月16日 上午3:02John Liou   [ James Liu 已於 2020年3月13日 下午4:21 更新 ]

Q:

A cookie associated with a cross-site resource at <URL> was set without the `SameSite` attribute. A future release of Chrome will only deliver cookies with cross-site requests if they are set with `SameSite=None` and `Secure`. You can review cookies in developer tools under Application>Storage>Cookies and see more details at <URL> and <URL>.
A:
Chrome 瀏覽器51 開始,的 Cookie 新增加了一個 SameSite屬性,用來防止 CSRF 攻擊和用戶追蹤
Chrome 之後瀏覽器會將 cookie 屬性 
76 
Chrome 80(2020年2月發布)將會預設啟用, 屆時網站未宣告 samesite=none 且使用 HTTPS連線,與 Cookie 相關的請求都會被拒絕。
The Stable version of Chrome 80 is targeted for enabling this feature by default. This feature is available as of Chrome 76 by enabling the same-site-by-default-cookies flag. See https://www.chromium.org/updates/same-site for full timeline.



reference:

If you got message like below:
A cookie associated with a cross-site resource at http://docs.moodle.org/ was set without the `SameSite` attribute. A future release of Chrome will only deliver cookies with cross-site requests if they are set with `SameSite=None` and `Secure`. You can review cookies in developer tools under Application>Storage>Cookies and see more details at https://www.chromestatus.com/feature/5088147346030592 and https://www.chromestatus.com/feature/5633521622188032.
(index):1 

A cookie associated with a cross-site resource at http://tracker.moodle.org/ was set without the `SameSite` attribute. A future release of Chrome will only deliver cookies with cross-site requests if they are set with `SameSite=None` and `Secure`. You can review cookies in developer tools under Application>Storage>Cookies and see more details at https://www.chromestatus.com/feature/5088147346030592 and https://www.chromestatus.com/feature/5633521622188032.
Moodle Cookie Samesite problem


May be you have reference other site image, like this:
<p><img src="https://moodle.org/pluginfile.php/2840042/mod_page/content/19/Moodle-Logo-RGB.png" alt="Moodle.org" width="204" height="61" class="img-responsive atto_image_button_text-bottom"></p>
You can change to:
<p><img src="pix/Moodle-Logo-RGB.png" alt="moodle.org" width="204" height="61" class="img-responsive atto_image_button_text-bottom"></p>
Of cause, you should copy the png into moodle/pix.
 

Moodle 無法發信

張貼者:2019年3月5日 下午11:17Amber Li   [ 已更新 2019年3月6日 下午5:21 ]

Q: 在公佈欄發佈公告卻沒有寄信通知學生,或是修改 email 卻沒有寄出認證信,這些無法發信的問題,該檢查哪些設定呢?

A:
  1. 可先確認是否為 SMTP 帳號密碼錯誤,若確定沒有問題
  2. 可到 cron.php 確認,若有發現訊息: SMTP -> ERROR: Failed to connect to server: Permission denied

那可能是 SeLinux 寄信功能未開啟
$ getsebool httpd_can_sendmail
若結果為:httpd_can_sendmail --> off

請執行以下指令:
$ sudo setsebool -P httpd_can_sendmail 1
輸入密碼後,需等待一下,再輸入指令
$ getsebool httpd_can_sendmail
確認結果是否為:httpd_can_sendmail --> on

如果還不行,試試:
  • getsebool httpd_can_network_connect
  • setsebool -P httpd_can_network_connect 1

net::ERR_NAME_NOT_RESOLVED

張貼者:2018年11月26日 下午11:54Moodle My   [ James Liu 已於 2020年3月13日 下午4:10 更新 ]

接收到 MoodleSET 的客戶留言詢問,如何修復 Google Chrome 遇到的錯誤 - net::ERR_NAME_NOT_RESOLVED ?
Q: 開啟 Moodle 首頁時,在 Chrome DevTools 的 Console  出現 
GET https://www.google-analytics.com/.... net::ERR_NAME_NOT_RESOLVED

A:
依照筆者的經驗,這個問題通常是個人電腦的 DNS 解析不正確,導致像 Moodle/edx 站台,在引用其它資源或連結其它網站時,找不到(無法解析/resolve)這個站台;換句話說就是:你個人PC/瀏覽器無法連到以這個 domain name 為名的站台(上述的 www.google-analytics.com);所以你要檢查你的 DNS 是否設定對(Hinet: 168.95.1.1/Google: 8.8.8.8 );或是你的網路卡設定
Windows NIC IPV4 網路使用Google公用DNS


Read more


Google in Moodle

張貼者:2018年9月22日 上午12:41Moodle My

您可以將 Google Docs、Slides、Forms(表單) 加到 Moodle 課程中。
在各種 Moodle 資源中 "Page" (頁面) 可能是最好的方法。 因此,在您的 Moodle 課程中,您可以在所需的主題/週次擊"新增加活動或資源",然後選擇"頁面"(Page)。

Docs
Sheets
Forms Youtube Map
Slides

VideoQuiz模組- IE 11 未答送出,顯示SyntaxError

張貼者:2018年9月19日 下午8:33Vin Yan   [ John Liou 已於 2018年9月20日 上午2:25 更新 ]

Q:
VideoQuiz模組使用 IE 11 瀏覽器,回答題目時,沒有點選項,就直接點選「送出」按鈕會出現錯誤訊息:SyntaxError 字元無效,如下圖:


A:
更新 videoquiz版本:2018072402 / 2.3.2.1,以下提供修復的 patch 檔供使用者修正,請自行下載。

解決方式如下
於 yui/src/videoquiz/videoquiz_qdialogue.js,將以下程式碼:
if(aElements['answers'].value == ""){

變更為:
if(params['answers'] == "" || typeof params['answers'] === "undefined" ){
    var alertpanel = new M.core.alert({title: this.heading, message:M.str.videoquiz.answervalidating, modal: true});
    return false;
}

本次 patch 檔已完成 javascript 合併,修復後,請記得清除 Moodle 快取及瀏覽器快取。
清除快取的方式,請參考以下:

教師入門操作手冊,是否對新進老師有幫助?

張貼者:2018年4月8日 下午8:07James Liu

Q: 逢甲大學教師入門操作手冊,是否對新進老師有幫助?操作手冊的好與壞?
A: 
新進老師剛進來都是開學最忙時,沒人可以問的時候則可翻閱操作手冊或是直接打電話詢問廠商。
此版操作手冊為入門操作手冊,可以很快的在目錄就找得到你要的章節頁次,內頁編排也井然有序。但此操作手冊僅為功能介紹說明,少了操作說明畫面,不知道每個功能點了之後要如何使用。

ionCube loaders 安裝

張貼者:2017年6月22日 下午7:38Amber Li   [ 未知的使用者 已於 2017年6月22日 下午8:05 更新 ]

請至http://www.ioncube.com/loaders.php下載系統所對應的ioncube_loaders版本

以下為 CentOS 6為例
linux 

1. 下載ioncube_loaders ( tar.gz 或 zip皆可)
wget http://downloads3.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.zip
2. 解壓縮 ioncube_loaders_lin_x86-64.zip  ,解壓縮後檔案內目錄如下:
  

4. 查看 PHP Extension Build 為 NTS 還是 TS,NTS 即複製 ioncube_loader_lin_x.x.so 檔,TS 則複製 ioncube_loader_lin_x.x_ts.so 檔
PHP

5. 複製 ioncube 資料夾內 ioncube_loader_lin_5.4.so 至 /usr/lib64/php/modules/ 下 
6. 將 ioncube_loader_lin_5.4.so 權限修改為 755
7. 編修 php.ini ,在最後一行加入:
 zend_extension = "/usr/lib64/php/modules/ioncube_loader_lin_5.4.so"
8. 重啟 apache
9. 檢查 PHP info ,顯示畫面如下,即完成安裝。


1-10 of 11