flagflag  If you want to see English page, please click "English" Button at Left.
7: 2021-09-02 (木) 03:04:04 iseki ソース 現: 2022-07-05 (火) 11:43:15 iseki ソース
Line 1: Line 1:
-* mod_mdlds [#vc2f0b1e] +* mod_lticontainer [#vc2f0b1e] 
- +- サポート対象の MDLDockerSpawner が [[LTIDockerSpawner>JupyterHub/LTIDockerS​pawner]] に名称を変更したので,このモジュールも mod_mdlds から mod_lticontainer へ名称を変更.(2021 9/17) 
-- see [[Moodle+JupyterHub]]+- さらに変更.[[LTIDockerSpawner>JupyterHub/LTIDockerS​pawner]] は [[LTIContainerSpawner>JupyterHub/LTICont​ainerSpawner]] の一部になる (2021 10/3).迷路は続くよ何処までも. 
 +-- 当然 [[LTIPodmanSpawner>JupyterHub/LTIPodmanSpawner]] でも使用可能.
#br #br
-** [[Moodle]] Module for Moodle & JupyterHub Integration [#s675b15a] +** [[Moodle]] Module for Moodle & [[JupyterHub]] Integration [#s675b15a] 
-- https://gitlab.nsl.tuis.ac.jp/iseki/mod_mdlds+- gitlab: https://gitlab.nsl.tuis.ac.jp/iseki/mod_lticontainer 
 + 
 +- [[LTIDockerSpawner>JupyterHub/LTIDockerS​pawner]],  [[LTIPodmanSpawner>JupyterHub/LTIPodmanS​pawner]] をサポートする,Moodle用モジュール 
 +- see also. [[Moodle+JupyterHub]]
#br #br
 +
** 機能(Tab) [#d7fb0b70] ** 機能(Tab) [#d7fb0b70]
Line 19: Line 24:
#br #br
-*** Lti Setting [#z3069e1d]+*** Lti Settings [#z3069e1d]
- Lti Connections での,表示・非表示設定 - Lti Connections での,表示・非表示設定
#br #br
*** Lti Edit [#ae39bec4] *** Lti Edit [#ae39bec4]
-- LTI(外部サービス)インスタンスのカスタムパラメータを書き換える.+- [[LTI]](外部サービス)インスタンスのカスタムパラメータを書き換える.
-- 通常は DB上のデータを書き換えるだけ. -- 通常は DB上のデータを書き換えるだけ.
 +-- カスタムパラメータ自体は,JupyterHubに実際に接続(ログイン)した時に送られる.
- データを更新したタイミングで Dockerのボリュームを作成するように設定することも可能. - データを更新したタイミングで Dockerのボリュームを作成するように設定することも可能.
 +#br
 +
 +**** カスタムパラメータ一覧 [#zb17a132]
 +- lms_users=
 +- lms_teachers=
 +- lms_image=
 +- lms_defurl=
 +- lms_cpulimit=
 +- lms_memlimit=
 +- lms_vol_表示名=
 +- lms_sub_表示名=
 +- lms_prs_表示名=
 +- lms_sessionifo=
 +- lms_iframe=
 +
 +- カスタムパラメータ名は snake_case で記述
#br #br
**** Accessible users [#l4e19364] **** Accessible users [#l4e19364]
-- LTIのカスタムパラメータの ''mdl_user'' に対応+- LTIのカスタムパラメータの ''lms_users'' に対応
- Volume セクションで記述したボリュームをマウントできるユーザを指定する. - Volume セクションで記述したボリュームをマウントできるユーザを指定する.
- ユーザはMoodleのユーザ名を,カンマ(,)または空白で区切って記述する. - ユーザはMoodleのユーザ名を,カンマ(,)または空白で区切って記述する.
Line 38: Line 60:
**** Teachers [#zc5de450] **** Teachers [#zc5de450]
-- LTIのカスタムパラメータの ''mdl_teacher'' に対応 +- LTIカスタムパラメータの ''lms_teachers'' に対応 
-- コースの教師を指定する.指定の仕方は,mdl_user と同じ.* も使えるが,使う意味がない.(全員教師って何?) +- コースの教師を指定する.指定の仕方は,lms_user と同じ.* も使えるが,使う意味がない.(全員教師って何?) 
-- 教師の特権+- 途中で教師のメンバを変更した場合は,Task volume および Submit volume のオーナが教師グループから外れる可能性があるので,注意が必要. 
 +-'' 教師の特権''
-- Task volume に書き込みができる. -- Task volume に書き込みができる.
-- Submit volume にあるファイルの読み込み,コピー,削除ができる. -- Submit volume にあるファイルの読み込み,コピー,削除ができる.
--- ボリュームのアクセス名の先頭に マイナス(-) を付けた場合,教師に対してのみアクセス用のリンクが張られる(-は削除される)+-- ボリュームのアクセス名の先頭に マイナス(-) を付けた場合,教師に対してのみアクセス用のリンクが張られる(-は削除されてリンクが張られる)
--- 学生にリンクによるアクセスをさせたくない場合に使用(セキュリティ的な意味ではなく,操作上の学生の混乱を少なくさせるためのもの) --- 学生にリンクによるアクセスをさせたくない場合に使用(セキュリティ的な意味ではなく,操作上の学生の混乱を少なくさせるためのもの)
---- Personal volume を使うときに,Task volumeに使うと便利.と言うか,そのために作った.+--- ''Personal volume を使うときに,Task volumeにマイナス付きのリンク名を指定すると便利.''と言うか,そのために作った.
#br #br
**** Container image [#h616d693] **** Container image [#h616d693]
-- LTIのカスタムパラメータの ''mdl_image'' に対応+- LTIのカスタムパラメータの ''lms_image'' に対応
- 起動するコンテイメージを指定する.デフォルトの場合は,設定ファイルで指定したイメージ. - 起動するコンテイメージを指定する.デフォルトの場合は,設定ファイルで指定したイメージ.
- Jupyter Lab/Notebook 以外のイメージを選択した場合は,漏れなくシステムが死にます. - Jupyter Lab/Notebook 以外のイメージを選択した場合は,漏れなくシステムが死にます.
--- じゃあ,Jupyter Lab/Notebook のイメージだけ表示すればと言われても,私の現時点でのスキルでは無理です.+-- じゃあ,Jupyter Lab/Notebook のイメージだけ表示すればと言われても,%%私の現時点でのスキルでは無理です%%. 
 +-- 一応イメージ名に含まれる文字列に対して,フィルターを掛けることができるようにしました.
#br #br
-**** Sub URL [#b8add38d] +**** Default URL [#b8add38d] 
-- LTIのカスタムパラメータの ''mdl_suburl'' に対応+- LTIのカスタムパラメータの ''lms_defurl'' に対応
- Lab か Notebook のどちらにアクセスするかのURLを指定する.デフォルトは設定ファイルで指定したURL. - Lab か Notebook のどちらにアクセスするかのURLを指定する.デフォルトは設定ファイルで指定したURL.
- Lab を指定した場合は,起動するコンテイメージが Labをサポートしていないと 404 not found になる. - Lab を指定した場合は,起動するコンテイメージが Labをサポートしていないと 404 not found になる.
 +#br
 +
 +**** CPU Limit [#nd4baaa6]
 +- ''lms_cpulimit'' に対応.
 +- Docker コンテナ内での CPU数の上限
 +#br
 +
 +**** Memory Limit [#d46eb1f0]
 +- ''lms_memlimit'' に対応.
 +- Docker コンテナ内での メモリの上限
 +- CPU Limit は 0.1 でも結構動くが,メモリ 120Mぐらいだと JupyterHub/singleuser のコンテナは起動しない.
 +-- 140M くらいだと何とかコンテナは起動するが,ほぼ使えない.
 +-- 180M くらいで何とか使用できるようになる.
 +-- mod_lticontainer では,余裕を考えてきりのいい 200M から表示.
#br #br
**** Volume セクション [#m11ddd29] **** Volume セクション [#m11ddd29]
- Task volume, Submit volume はユーザが JupyterHubにアクセスしたときに(許可があれば)マウントされる. - Task volume, Submit volume はユーザが JupyterHubにアクセスしたときに(許可があれば)マウントされる.
--- 許可ユーザの書き方は mdl_user と同じ.ただしデフォルト(空欄)では,全てのユーザが許可される. +-- 許可ユーザの書き方は lms_user(Accessible users) と同じ.ただしデフォルト(空欄)では,全てのユーザが許可される. 
--- md_user よりも,ここで指定される個々の許可ユーザの方が優先される.+-- lms_user(Accessible users)よりも,ここで指定される個々の許可ユーザの方が優先される.
-- * も使用できるが意味はない. 空欄にしておけば良いので. -- * も使用できるが意味はない. 空欄にしておけば良いので.
-- 通常は誰かが jupyterHubにアクセスしてログインした瞬間に(ボリュームが存在しなければ)ボリュームが作成され,マウントされる. -- 通常は誰かが jupyterHubにアクセスしてログインした瞬間に(ボリュームが存在しなければ)ボリュームが作成され,マウントされる.
Line 74: Line 112:
-- マウントポイントをドット(.) ディレクトリの下に隠すことができるので,見た目もすっきり. -- マウントポイントをドット(.) ディレクトリの下に隠すことができるので,見た目もすっきり.
 +- Volume のマウントコマンドをカスタムパラメータから削除するには,アクセス名の無いエントリを作成する.
 +-- Personal Volume については,カスタムパラメータから削除すると,存在自体を忘れてしまう可能性があるので注意(自分のディレクトリを見て確認可能)
-- 表示名の指定についての制約+- 表示名の指定について
-- アルファベット小文字,及び数字のみ使用可能 -- アルファベット小文字,及び数字のみ使用可能
-- 三種類のボリューム(vol, sub, prs)について,同じ表示名が指定できる. -- 三種類のボリューム(vol, sub, prs)について,同じ表示名が指定できる.
 +
 +- アクセス名について
 +-- 漢字指定可能
 +-- ドット(.)を指定すると,ボリュームのフルネームでリンクが作られる.(ln -s ボリューム名 .  が実行されるため)
 +-- アクセス名の無いエントリを作成すると,カスタムパラメータから削除される.
 +-- ボリュームのアクセス名の先頭に マイナス(-) を付けた場合,教師に対してのみアクセス用のリンクが張られる(-は削除されてリンクが張られる)
#br #br
***** Task volume [#j8ff684d] ***** Task volume [#j8ff684d]
-- LTIのカスタムパラメータの ''mdl_vol_表示名=アクセス名: 許可ユーザ'' に対応+- LTIのカスタムパラメータの ''lms_vol_表示名=アクセス名: 許可ユーザ'' に対応
- 課題提示用ボリューム.教師は書き込み可能だが,学生は読み出しのみ可能 - 課題提示用ボリューム.教師は書き込み可能だが,学生は読み出しのみ可能
-  Volumes タブで削除可能 -  Volumes タブで削除可能
Line 89: Line 135:
***** Submit volume [#h71a48b0] ***** Submit volume [#h71a48b0]
-- LTIのカスタムパラメータの ''mdl_sub_表示名=アクセス名: 許可ユーザ'' に対応+- LTIのカスタムパラメータの ''lms_sub_表示名=アクセス名: 許可ユーザ'' に対応
- 課題回収用ボリューム.教師は読み出し(書き込み,削除:これはオーナのみ)が可能だが,学生は課題の提出(書き込み)と自分の提出した課題にのみアクセス(読み出し,削除)可能 - 課題回収用ボリューム.教師は読み出し(書き込み,削除:これはオーナのみ)が可能だが,学生は課題の提出(書き込み)と自分の提出した課題にのみアクセス(読み出し,削除)可能
-  Volumes タブで削除可能 -  Volumes タブで削除可能
Line 97: Line 143:
***** Personal volume [#xde7793d] ***** Personal volume [#xde7793d]
-- LTIのカスタムパラメータの ''mdl_prs_表示名=アクセス名: 許可ユーザ'' に対応+- LTIのカスタムパラメータの ''lms_prs_表示名=アクセス名: 許可ユーザ'' に対応
- これはユーザの専用ボリュームに''恒久的に作成されるディレクトリ''である. - これはユーザの専用ボリュームに''恒久的に作成されるディレクトリ''である.
- ユーザ本人しかアクセスできない.(コンテナ起動時の管理プロセスを除く) - ユーザ本人しかアクセスできない.(コンテナ起動時の管理プロセスを除く)
- Task volume, Submit volume は Volumes タブで削除可能だが,これは一度作成するとシステムの管理者またはユーザ本人しか削除できない - Task volume, Submit volume は Volumes タブで削除可能だが,これは一度作成するとシステムの管理者またはユーザ本人しか削除できない
-- このモジュールからの削除は,やってやれないこともないが,現時点ではその機能は実装されていない. -- このモジュールからの削除は,やってやれないこともないが,現時点ではその機能は実装されていない.
-- ''Task volume と同じ名前(表示名)で作成すると,コンテナ起動時に Task vokume の内容がここにコピーされる.''+- ''Task volume と同じ名前(表示名)で作成すると,コンテナ起動時に Task volume の内容がここにコピーされる.''
-- 課題配布に使用するのが主な目的. -- 課題配布に使用するのが主な目的.
-- 取り扱いが面倒だが,上手く使えば強力. -- 取り扱いが面倒だが,上手く使えば強力.
 +
- 許可ユーザに名前がない場合は,ディレクトリに対して何の操作も行われない.(ディレクトリ自体は存在) - 許可ユーザに名前がない場合は,ディレクトリに対して何の操作も行われない.(ディレクトリ自体は存在)
-- アクセス名からのリンクは行われない. -- アクセス名からのリンクは行われない.
-- Task volume と同じ名前(表示名)にしても,コピーは行われない. -- Task volume と同じ名前(表示名)にしても,コピーは行われない.
#br #br
 +
**** その他のカスタムパラメータ [#w8e77374] **** その他のカスタムパラメータ [#w8e77374]
-- mdl_sessionifo : このモジュールのインスタンスIDと対応する LTIインスタンスのIDが自動的に設定される.+- ''lms_sessionifo'' : このモジュールのインスタンスIDと対応する LTIインスタンスのIDが自動的に設定される.
-- ユーザが気にすることは何もない.このデータは実際には feserver の feplg_nbwsモジュールに送られてる. -- ユーザが気にすることは何もない.このデータは実際には feserver の feplg_nbwsモジュールに送られてる.
 +- ''lms_iframe'' : iframeサポート.自動的に設定される.
 +-- %%ただし正常に動かすためには,jupyterhub_config.py の host_url を設定しなければならない.%%
 +-- host_url を設定しなくとも動きますが,デフォルトの host_url はセキュリティ的にちと甘いです.可能なら設定してください.
 +-- ホストの Python のバージョンが 3.7以下の場合は使用できない(jupyterhubのエラーになる).tornado が cookie の samesite を処理できないため.
 +--- jupyterhub のエラーメッセージ:http.cookies.CookieError: Invalid attribute 'samesite'
 +
 +- 現時点で(実装しているけど)使用していないカスタムパラメータ.
 +-- lms_options :コマンドオプション.そのうち使うかも.
 +
- このモジュールが使用するもの以外の カスタムパラメータには一切影響を及ぼさない. - このモジュールが使用するもの以外の カスタムパラメータには一切影響を及ぼさない.
#br #br
Line 117: Line 174:
*** Volumes [#v8f11413] *** Volumes [#v8f11413]
- 関連する Dockerボリュームの表示名の一覧とその削除. - 関連する Dockerボリュームの表示名の一覧とその削除.
-- 表示されるボリューム名(表示名)は,省略された名前 +- Personal volume は操作対象外. 
-- 本来の名前: ''mdl_[ vol | sub | prs ]_表示名_コースID_MoodleホストのFQDN'' +- 表示されるボリューム名(表示名)は,省略された名前. 
--- 例:''mdl_vol_xyz_98_el.mml.tuis.ac.jp''+- ボリュームのフルネーム(正式名): ''lms_[ vol | sub | prs ]_表示名_コースID_MoodleホストのFQDN'' 
 +-- 例:''lms_vol_xyz_98_el.mml.tuis.ac.jp'' 
 +#br 
 + 
 +** Trouble Shooting [#cb048806] 
 +**** Call to undefined function posix_getpwuid() [#hafc01be] 
 +- php-process をインストールする 
 + yum -y install php-process 
 + 
 +**** The web server process does not have write access to its own home directory. Please check the permissions. [#ja22db7c] 
 +- Webサーバの実効ユーザのホームディレクトリを調べて,そのディレクトリを実効ユーザの持ち物にする. 
 + vipw /etc/passwd 
 + cd /usr/share/httpd/ 
 + chown apache.apache . 
 +#br 
 + 
 +** 課題の配布と回収例 [#z4207c5c] 
 + 
 +*** lms_vol と lms_sub を使用する. [#c7ce7bf8] 
 +**** 課題作成 [#k47c555f] 
 ++ 設定 
 +-- lms_user : 空欄 
 +-- lms_teacher : 自分のユーザ名 
 +-- lms_image : 課題で使用するイメージ 
 +-- lms_vol : 適当なアクセス名,許可ユーザに自分のユーザ名 
 ++ JupyterHub にログイン. 
 ++ lms_vol 内で教材を作成.他の適当なディレクトリで作業しても良い. 
 ++ ipynb_deploy コマンドでファイルを変換・コピー. 
 +++ ipynb_deploy コマンドは,後で採点や統計作業を行い易いようにするために,ファイル内のコードセルに通し番号を付ける. 
 +++ lms_vol 内で作業していて,作業場所をそのまま公開する場合は,''ipynb_deploy . ''と入力する. 
 +++ ipynb_deploy コマンドを実行する前に,必ずファイルのバックアップを取ること.もし ipynb_deploy の実行によりファイルが破損しても,当方は一切責任は持てません. 
 +#br 
 + 
 +**** 課題公開 [#f395156f] 
 ++ 設定 
 +-- lms_user : * 
 +-- lms_teacher : 自分のユーザ名 
 +-- lms_image : 課題で使用するイメージ 
 +-- lms_vol : 課題提示用ボリューム.適当なアクセス名を指定.許可ユーザは空欄 
 +-- lms_sub : 課題収集用ボリューム.適当なアクセス名を指定.許可ユーザは空欄. 
 +#br 
 + 
 +**** 課題の実施(学生) [#dc3f3da2] 
 ++ ''学生は,lms_vol 内から,自分の作業用場所(~/jupyter または ~/jupyter/works 下など)に課題ファイルをコピー'' 
 ++ 課題を行う. 
 ++ 提出は,課題ファイルを指定された提出用 lms_sub ボリュームにコピーする.この際,ファイル名に自分の学籍番号,名前を追加する. 
 +++ ファイル提出の際には ''ipynb_submit'' コマンドが使用できる.ipynb_submi はファイル名にユーザ名を自動的に付け加えて,指定されたフォルダにコピーする. 
 +++ 例)''ipynb_submit kadai-1.ipynb  課題1提出用''  
 +#br 
 + 
 +*** 加えて lms_prs を使用する. [#f2ab0290] 
 +**** 課題作成 [#u9ae551e] 
 ++ 設定 
 +-- lms_user : 空欄 
 +-- lms_teacher : 自分のユーザ名 
 +-- lms_image : 課題で使用するイメージ 
 +-- lms_vol : ''先頭にマイナス(-)を付けたアクセス名''.許可ユーザに自分のユーザ名 
 ++ JupyterHub にログイン. 
 ++ lms_vol 内で教材を作成.以前作成した教材ファイルとファイル名が被らないように注意する.他の適当なディレクトリで作業しても良い. 
 ++ ipynb_deploy コマンドで課題ファイルを変換・コピー. 
 +++ ipynb_deploy コマンドは,後で採点や統計作業を行い易いようにするために,ファイル内のコードセルに通し番号を付ける. 
 +++ lms_vol 内で作業していて,作業場所をそのまま公開する場合は,''ipynb_deploy .  ''と入力する. 
 +++ 注)ipynb_deploy コマンドを実行する前に,必ずファイルのバックアップを取ること.もし ipynb_deploy の実行によりファイルが破損しても,当方は一切責任は持てません. 
 +#br 
 + 
 +**** 課題公開 [#leb1cb54] 
 ++ 設定 
 +-- lms_user : * 
 +-- lms_teacher : 自分のユーザ名 
 +-- lms_image : 課題で使用するイメージ 
 +-- lms_vol : 先頭にマイナス(-)を付けたアクセス名,許可ユーザは空欄.学生にはリンク名は表示されない. 
 +-- lms_prs : 表示名はlms_vol と同じにする.アクセス名は適当な名前.許可ユーザは空欄. 
 +-- lms_sub : 課題収集用ボリューム.適当なアクセス名.許可ユーザは空欄.
#br #br
-** 課題の配布と回収 [#z4207c5c]+**** 課題の実施(学生) [#g9c148c0] 
 ++ ''学生は lms_prs 内にあるファイルを使って,そのまま課題を行う.'' 
 ++ 提出は,課題ファイルを指定された提出用 lms_sub ボリュームにコピーする.この際,ファイル名に自分の学籍番号,名前を追加する. 
 +++ ファイル提出の際には ''ipynb_submit'' コマンドが使用できる.ipynb_submi はファイル名にユーザ名を自動的に付け加えて,指定されたフォルダにコピーする. 
 +++ 例)''ipynb_submit kadai-1.ipynb 課題1提出用''  
 +- 強制的に教師側で課題を回収する方法も検討中.
#br #br
-** XML-RPC [#w4125370]+** オプション [#td7f849a] 
 +*** Moodle [#qfea410a] 
 +**** XML-RPC [#w4125370] 
 +- feserver の feplg_nbws モジュールからの XML-PRC を受信し,データをデータベースに格納可能. 
 +- オプションだから,やらなくても良い(feserver を使用しなくても良い)
#br #br
Line 132: Line 270:
*** Install [#cb55e0da] *** Install [#cb55e0da]
 # cd {moodle_dir}/mod  # cd {moodle_dir}/mod
- # git clone https://gitlab.nsl.tuis.ac.jp/iseki/mod_mdlds.git + # git clone https://gitlab.nsl.tuis.ac.jp/iseki/mod_lticontainer.git 
- # mv mod_mdlds mdlds + # mv mod_lticontainer ltids 
- # chown -R apache.apache mdlds+ # chown -R apache.apache ltids
 access to moodle by admin  access to moodle by admin
-*** docker_rsock.sh [#b8408faf] +*** container_rsock.sh [#b8408faf] 
-- docker のリモートコントロール用シェルスクリプト+- Docker/Podman のリモートコントロール用シェルスクリプト
- ssh のポートフォワーディングを使って,UNIXのソケットファイルを繋げる. - ssh のポートフォワーディングを使って,UNIXのソケットファイルを繋げる.
-- Dockerホスト側に,sshでログイン可能な(ログイン)ユーザが必要.+- Docker/Podman ホスト側に,sshでログイン可能な(ログイン)ユーザが必要.
#br #br
-**** Moodle 側について [#x2ea61d9]+**** LMS 側について [#x2ea61d9]
- docker クライアント(/usr/bin/docker)が必要 - docker クライアント(/usr/bin/docker)が必要
#br #br
-**** docker 側のログインユーザについて [#u03a87eb]+ 
 +**** docker/podman 側のログインユーザについて [#u03a87eb]
+ ユーザのホームディレクトリについて,ユーザが書き込み可能であること. + ユーザのホームディレクトリについて,ユーザが書き込み可能であること.
-++ CentOS8 で嵌った.ユーザを dockerにしたんだが,dockerのホームディレクトリなのに,dockerが書き込み可能でなかった. +++ CentOS8 で嵌った.ユーザを dockerにしたんだが,docker/podmanのホームディレクトリなのに,docker/podmanが書き込み可能でなかった. 
-+ ユーザが docker のグループに属していること(UNIXソケットファイルにアクセスするため).++ ユーザが docker/podman のグループに属していること(UNIXソケットファイルにアクセスするため).
+ ユーザのログインシェルは不要 + ユーザのログインシェルは不要
#br #br
-** Hack [#o0db98a7+*** ipynb_deploy [#r5db573e
-*** [[DB>./DB]] [#df5455f9]+- ipynb ファイル内のコードセルに通し番号を付ける. 
 +- 学習記録分析などの,後処理用 
 +#br
-**** [[mdl_mdlds>./DB/mdl_mdlds]] [#q6c18d6f+** System [#hc13caeb] 
-**** [[mdl_mdlds_websock_data>./DB/mdl_mdlds_websock_data]] [#tcb471ae+ 
-**** [[mdl_mdlds_websock_session>./DB/mdl_mdlds_websock_session]] [#r217fd43+*** [[DB>./DB]] [#df5455f9
-**** [[mdl_mdlds_websock_tags>./DB/mdl_mdlds_websock_tags]] [#y6a5decf]+- [[mdl_lticontainer>./DB/mdl_lticontainer]] 
 +- [[mdl_lticontainer_client_data>./DB/mdl_lticontainer_client_data]] 
 +- [[mdl_lticontainer_server_data>./DB/mdl_l​ticontainer_server_data]
 +- [[mdl_lticontainer_session  >./DB/mdl_lticontainer_session]] 
 +- [[mdl_lticontainer_tags>./DB/mdl_lticonta​iner_tags]]
#br #br


トップ   新規 ページ一覧 単語検索 最終更新   ヘルプ   最終更新のRSS 1.0 最終更新のRSS 2.0 最終更新のRSS Atom

サイト内 検索

ログイン

ユーザー名:

パスワード:


パスワード紛失
新規登録

サブ メニュー

ミニカレンダー

前月2024年 5月翌月
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
<今日>

オンライン状況

50 人のユーザが現在オンラインです。 (19 人のユーザが xpwiki を参照しています。)

登録ユーザ: 0
ゲスト: 50

もっと...

アクセスカウンタ

今日 : 102102102
昨日 : 8048804880488048
総計 : 2366966323669663236696632366966323669663236696632366966323669663
Powered by XOOPS Cube 2.1© 2001-2006 XOOPS Cube Project
Design by XoopsDesign.com