arinux

Linux サーバー設定備忘録
MySQL (3) - passwd 管理 (2)


nss-mysql を利用して、/etc/passwd, /etc/group, /etc/shadow の情報を DB から取得する方法を説明します。


メモ nss-mysql インストール


以下は、クライアントとなるサーバー(ここでは test15.arinux.net)上で実施します。


  1. http://download.savannah.gnu.org/releases/nss-mysql/ から、
    「nss-mysql-1.0.tar.gz」 をダウンロードして、「/usr/local/src」 に置きます。


  2. 解凍します。
    [test15]# cd /usr/local/src
    [test15]# tar zxvf nss-mysql-1.0.tar.gz
    


  3. コンパイルに必要なパッケージを追加インストールします。
    (依存するパッケージも追加されます)
    [test15]# yum install gcc
    [test15]# yum install gcc-c++
    [test15]# yum install yum zlib-devel
    


  4. コンフィグ、コンパイル、インストールします。
    [test15]# ./configure --with-mysql-lib=/usr/local/mysql/lib --with-mysql-include=/usr/local/mysql/include
    [test15]# make
    [test15]# make install
    


  5. /etc/nss-mysql.conf を編集します。このファイルは、group と passwd 情報の取得に使用されます。
    [test15]# vi /etc/nss-mysql.conf
    
    (以下の箇所を編集)
    users.host = inet:slave01.arinux.net:3306;          # 参照先のDBサーバー名
    users.database = usersdb;                           # 接続先のデータベース名
    users.db_user = cwuser;                             # 接続時のユーザー名
    users.db_password = 'n,V0dX6kjgcd;                  # 接続時のパスワード
    users.backup_host = inet:slave02.arinux.net:3306;   # 上記DBサーバーに接続できない時の参照先
    users.backup_database = usersdb;                    # 接続先のデータベース名
    users.backup_db_user = cwuser;                      # 接続時のユーザー名
    users.backup_db_password = n,V0dX6kjgcd;            # 接続時のパスワード
    users.table = user;                                 # 参照先のテーブル名
    users.where_clause = user.status = 'A' AND user.shost = test15.arinux.net';  # 接続元のホスト名
    


  6. /etc/nss-mysql-root.conf を編集します。このファイルは、shadow 情報の取得に使用されます。
    [test15]# vi /etc/nss-mysql-root.conf
    
    (以下の箇所を編集)
    shadow.host = inet:slave01.arinux.net:3306;         # 参照先のDBサーバー名
    shadow.database = usersdb;                          # 接続先のデータベース名
    shadow.db_user = cwuser;                            # 接続時のユーザー名
    shadow.db_password = n,V0dX6kjgcd;                  # 接続時のパスワード
    shadow.backup_host = inet:slave02.arinux.net:3306;  # 上記DBサーバーに接続できない時の参照先
    shadow.backup_database = usersdb;                   # 接続先のデータベース名
    shadow.backup_db_user = cwuser;                     # 接続時のユーザー名
    shadow.backup_db_password = n,V0dX6kjgcd;           # 接続時のパスワード
    shadow.table = user;                                # 参照先のテーブル名
    shadow.where_clause = user.status = 'A' AND user.shost = 'test15.arinux.net';  # 接続元のホスト名
    


  7. mysql モジュールをシンボリックリンクします。
    [test15]# cd /usr/local/mysql/lib
    [test15]# mkdir orgfiles
    [test15]# mv libmysqlclient.so orgfiles/.
    [test15]# mv libmysqlclient.so.15 orgfiles/.
    [test15]# mv libmysqlclient_r.so orgfiles/.
    [test15]# mv libmysqlclient_r.so.15 orgfiles/.
    [test15]# ln -s libmysqlclient.so.15.0.0 libmysqlclient.so
    [test15]# ln -s libmysqlclient.so.15.0.0 libmysqlclient.so.15
    [test15]# ln -s libmysqlclient_r.so.15.0.0 libmysqlclient_r.so
    [test15]# ln -s libmysqlclient_r.so.15.0.0 libmysqlclient_r.so.15
    [test15]# ls -l
    (一部省略)
    lrwxrwxrwx 1 root root        24 Dec  3 14:18 libmysqlclient.so -> libmysqlclient.so.15.0.0*
    lrwxrwxrwx 1 root root        24 Dec  3 14:06 libmysqlclient.so.15 -> libmysqlclient.so.15.0.0*
    -rwxr-xr-x 1 root mysql  5120308 Aug  4 22:51 libmysqlclient.so.15.0.0*
    lrwxrwxrwx 1 root root        26 Dec  3 14:18 libmysqlclient_r.so -> libmysqlclient_r.so.15.0.0*
    lrwxrwxrwx 1 root root        26 Dec  3 14:07 libmysqlclient_r.so.15 -> libmysqlclient_r.so.15.0.0*
    -rwxr-xr-x 1 root mysql  5143389 Aug  4 22:52 libmysqlclient_r.so.15.0.0*
    


  8. 共有ライブラリの検索パスを追加します。
    [test15]# vi /etc/ld.so.conf
    
    include ld.so.conf.d/*.conf
    /usr/local/lib
    /usr/local/mysql/lib    # この行を追加
    


  9. システムに反映させます。
    [test15]# ldconfig
    


  10. MySQL へ接続できるかどうかを確認します。
    [test15]# mysql -h slave01.arinux.net -u cwuser -p usersdb
    Enter password:
    (省略)
    mysql> ¥q
    


  11. /etc/nsswitch.conf を編集します。
    [test15]# vi /etc/nsswitch.conf
    
    (以下の箇所を編集)
    passwd:     files mysql
    shadow:     files mysql
    group:      files mysql
    
    虫眼鏡 編集内容の意味


    「files」 は、/etc/passwd、/etc/shadow、/etc/group のことを指し、これらに該当するユーザー名やパスワードがなかった場合に、「mysql」 を探しに行くことを意味しています。


  12. MySQL DB 上の group, passwd, shadow 情報が参照できるかを確認します。
    [test15]# getent group
    (省略)
    sales:x:512:
    system:x:511:
    
    [test15]# getent passwd
    (省略)
    ari:x:1001:511:Arinux:/home/ari:/bin/bash
    
    [test15]# getent shadow
    (省略)
    ari:$1$UMu5YsKa$XGzhP.p0hk71Y3nQE09iG.:14194:0:99999:7:::
    


  13. ssh ログインのテストをします。
    [test15]# ssh -l ari slave01.arinux.net
    ari@slave01.arinux.net's password:
    Last login: Wed Dec  3 14:46:52 2008 from slave01.arinux.net
    Could not chdir to home directory /home/ari: No such file or directory
    -bash-3.2$
    


  14. ログイン時に自動的にホームディレクトリを作成したい場合は、system-auth-ac を編集します。
    [test15]# vi /etc/pam.d/system-auth-ac
    
    #%PAM-1.0
    # This file is auto-generated.
    # User changes will be destroyed the next time authconfig is run.
    auth        required      pam_env.so
    auth        sufficient    pam_unix.so nullok try_first_pass
    auth        requisite     pam_succeed_if.so uid >= 500 quiet
    auth        required      pam_deny.so
    
    account     required      pam_unix.so
    account     sufficient    pam_succeed_if.so uid < 500 quiet
    account     required      pam_permit.so
    
    password    requisite     pam_cracklib.so try_first_pass retry=3
    password    sufficient    pam_unix.so md5 shadow nullok try_first_pass use_autht ok
    password    required      pam_deny.so
    
    session     optional      pam_keyinit.so revoke
    session     required      /lib/security/pam_mkhomedir.so skel=/etc/skel/ umask=0022  # この行を追加
    session     required      pam_limits.so
    session     [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid
    session     required      pam_unix.so
    
    [test15]# ssh -l ari slave01.arinux.net
    ari@slave01.arinux.net's password:
    Creating directory '/home/ari'.
    Last login: Wed Dec  3 15:09:29 2008 from slave01.arinux.net
    [ari@slave02 ~]$
    



つづく

| arinux | MySQL | 17:33 | comments(2) | trackbacks(0) | pookmark |
MySQL (2) - passwd 管理


MySQL を利用して、/etc/passwd, /etc/group, /etc/shadow の管理を DB で行う設定を説明します
(以下の操作は、全てマスターで実施します)。



メモ サーバー構築環境


機種NEC Express5800, IBM x336(OS 変更)
OSVine 4.2CentOS 5.2
kernel2.6.16-76.39vl42.6.18-92.1.18.el5
glibcglibc-2.3.4-2vl3.3glibc-2.5-24
mysqlmysql-5.0.67-linux-i686-glibc23.tar.gzmysql-5.0.67-linux-i686.tar.gz
nss-mysql1.01.0



メモ MySQL インストール


MySQL (1) - レプリケーション を参考に、MySQL をインストールして、mysqld を起動します。



メモ DB 作成


  1. mysql に root でログインします。
    [master]# mysql -u root -p
    Enter password:
    


  2. 新規 DB を作成します。
    mysql> CREATE DATABASE usersdb;
    Query OK, 1 row affected (0.00 sec)
    


  3. DB が作成されたことを確認します。
    mysql> SHOW DATABASES;
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | usersdb            |
    | mysql              |
    | repldb             |
    | test               |
    +--------------------+
    5 rows in set (0.00 sec)
    


  4. ローカルから DB へ接続するためのユーザーを作成します。このユーザーには、全ての権限を与えます。
    mysql> GRANT ALL PRIVILEGES ON usersdb.* TO  myadmin@localhost IDENTIFIED BY 'p-yw1naYO4he';
    Query OK, 0 rows affected (0.00 sec)
    


  5. クライアントから DB へ接続するためのユーザーを作成します。このユーザーには、SELECT 権限のみ与えます。
    mysql> GRANT SELECT ON usersdb.* TO  cwuser@'test15.arinux.net' IDENTIFIED BY 'n,V0dX6kjgcd';
    Query OK, 0 rows affected (0.00 sec)
    


  6. ユーザ情報を反映します。
    mysql> FLUSH PRIVILEGES;
    Query OK, 0 rows affected (0.00 sec)
    


  7. ユーザーが作成されたことを確認します。
    mysql> SELECT * FROM mysql.db ¥G
    (以下、省略)
    mysql> SELECT * FROM mysql.user ¥G
    (以下、省略)
    mysql> SHOW GRANTS for cwuser@'test15.arinux.net';
    +----------------------------------------------------------------------------------+
    | Grants for cwuser@test15.arinux.net                                              |
    +----------------------------------------------------------------------------------+
    | GRANT USAGE ON *.* TO 'cwuser'@'test15.arinux.net' IDENTIFIED BY PASSWORD
     '*69B3D5081425557A449413DD0FBD59FBE30CC1FF'                                       |
    | GRANT SELECT ON `usersdb`.* TO 'cwuser'@'test15.arinux.net'                     |
    +----------------------------------------------------------------------------------+
    2 rows in set (0.00 sec)
    


  8. ログアウトします。
    mysql> ¥q
    Bye
    
    [master]#
    



メモ groups テーブル作成


このテーブルは、/etc/group の情報を格納します。


  1. DB 接続ユーザーでログインします。
    [master]# mysql -u myadmin -p usersdb
    Enter password: p-yw1naYO4he
    mysql>
    


  2. groups テーブルを作成します。
    青い旗 以下をコピーして、mysql> プロンプトで貼り付ければ入力できます。
    CREATE TABLE groups (
      group_id int(11) NOT NULL auto_increment primary key,
      group_name varchar(30) DEFAULT '' NOT NULL,
      status        char(1) DEFAULT 'A',
      group_password varchar(64) DEFAULT 'x' NOT NULL,
      gid int(11) NOT NULL
    );
    
    ※ /usr/local/src/nss-mysql-1.0/sample.sql を参考にしています。
    mysql> CREATE TABLE groups (
        -> group_id int(11) NOT NULL auto_increment primary key,
        -> group_name varchar(30) DEFAULT '' NOT NULL,
        -> status        char(1) DEFAULT 'A',
        -> group_password varchar(64) DEFAULT 'x' NOT NULL,
        -> gid int(11) NOT NULL
        -> );
    Query OK, 0 rows affected (0.00 sec)
    


  3. groups テーブルが作成されたことを確認します。
    mysql> show tables;
    +--------------------+
    | Tables_in_usersdb  |
    +--------------------+
    | groups             |
    +--------------------+
    1 row in set (0.00 sec)
    
    mysql> show fields from groups;
    +----------------+-------------+------+-----+---------+----------------+
    | Field          | Type        | Null | Key | Default | Extra          |
    +----------------+-------------+------+-----+---------+----------------+
    | group_id       | int(11)     | NO   | PRI | NULL    | auto_increment |
    | group_name     | varchar(30) | NO   |     |         |                |
    | status         | char(1)     | YES  |     | A       |                |
    | group_password | varchar(64) | NO   |     | x       |                |
    | gid            | int(11)     | NO   |     | NULL    |                |
    +----------------+-------------+------+-----+---------+----------------+
    5 rows in set (0.00 sec)
    


  4. groups テーブルにデータを追加します。
    mysql> INSERT INTO groups VALUES (1,'system','A','x',511);
    Query OK, 1 row affected (0.00 sec)
    
    mysql> INSERT INTO groups VALUES (2,'sales','A','x',512);
    Query OK, 1 row affected (0.00 sec)
    


  5. 追加されたことを確認します。
    mysql> select * from groups;
    +----------+------------+--------+----------------+-----+
    | group_id | group_name | status | group_password | gid |
    +----------+------------+--------+----------------+-----+
    |        1 | system     | A      | x              | 511 |
    |        2 | sales      | A      | x              | 512 |
    +----------+------------+--------+----------------+-----+
    2 rows in set (0.00 sec)
    



メモ user テーブル作成


このテーブルは、/etc/passwd と /etc/shadow の情報を格納します。


  1. user テーブルを作成します。
    青い旗 以下をコピーして、mysql> プロンプトで貼り付ければ入力できます。
    CREATE TABLE user (
      user_id int(11) NOT NULL auto_increment primary key,
      user_name varchar(50) DEFAULT '' NOT NULL,
      realname varchar(32) DEFAULT '' NOT NULL,
      shell varchar(20) DEFAULT '/sbin/nologin' NOT NULL,
      password varchar(40) DEFAULT '' NOT NULL,
      status char(1) DEFAULT 'N' NOT NULL,
      uid int(11) NOT NULL,
      gid int(11) DEFAULT '511' NOT NULL,
      homedir varchar(32) DEFAULT '/home/nologin' NOT NULL,
      lastchange varchar(50) NOT NULL default '',
      min int(11) NOT NULL default '0',
      max int(11) NOT NULL default '0',
      warn int(11) NOT NULL default '7',
      inact int(11) NOT NULL default '-1',
      expire int(11) NOT NULL default '-1',
      shost varchar(50) default NULL
     );
    
    ※ /usr/local/src/nss-mysql-1.0/sample.sql を参考にしています。
    mysql> CREATE TABLE user (
        ->   user_id int(11) NOT NULL auto_increment primary key,
        ->   user_name varchar(50) DEFAULT '' NOT NULL,
        ->   realname varchar(32) DEFAULT '' NOT NULL,
        ->   shell varchar(20) DEFAULT '/sbin/nologin' NOT NULL,
        ->   password varchar(40) DEFAULT '' NOT NULL,
        ->   status char(1) DEFAULT 'N' NOT NULL,
        ->   uid int(11) NOT NULL,
        ->   gid int(11) DEFAULT '511' NOT NULL,
        ->   homedir varchar(32) DEFAULT '/home/nologin' NOT NULL,
        ->   lastchange varchar(50) NOT NULL default '',
        ->   min int(11) NOT NULL default '0',
        ->   max int(11) NOT NULL default '0',
        ->   warn int(11) NOT NULL default '7',
        ->   inact int(11) NOT NULL default '-1',
        ->   expire int(11) NOT NULL default '-1',
        ->   shost varchar(50) DEFAULT '' NOT NULL
        ->  );
    Query OK, 0 rows affected (0.02 sec)
    


  2. user テーブルが作成されたことを確認します。
    mysql> show tables;
    +--------------------+
    | Tables_in_usersdb  |
    +--------------------+
    | groups             |
    | user               |
    +--------------------+
    2 rows in set (0.00 sec)
    
    mysql> show fields from user;
    +------------+-------------+------+-----+---------------+----------------+
    | Field      | Type        | Null | Key | Default       | Extra          |
    +------------+-------------+------+-----+---------------+----------------+
    | user_id    | int(11)     | NO   | PRI | NULL          | auto_increment |
    | user_name  | varchar(50) | NO   |     |               |                |
    | realname   | varchar(32) | NO   |     |               |                |
    | shell      | varchar(20) | NO   |     | /sbin/nologin |                |
    | password   | varchar(40) | NO   |     |               |                |
    | status     | char(1)     | NO   |     | N             |                |
    | uid        | int(11)     | NO   |     | NULL          |                |
    | gid        | int(11)     | NO   |     | 511           |                |
    | homedir    | varchar(32) | NO   |     | /home/nologin |                |
    | lastchange | varchar(50) | NO   |     |               |                |
    | min        | int(11)     | NO   |     | 0             |                |
    | max        | int(11)     | NO   |     | 0             |                |
    | warn       | int(11)     | NO   |     | 7             |                |
    | inact      | int(11)     | NO   |     | -1            |                |
    | expire     | int(11)     | NO   |     | -1            |                |
    | shost      | varchar(50) | NO   |     |               |                |
    +------------+-------------+------+-----+---------------+----------------+
    16 rows in set (0.00 sec)
    
    青い旗] shost


    「shost」 は、接続元のホスト名を入れて、接続元の制限をするために使用します。


  3. 一度 MySQL を抜けて、ログインパスワードを生成します。ここでは openssl を使用して MD5 パスワードを作成します。
    mysql> ¥q
    Bye
    
    [master]# openssl passwd -1
    Password:
    Verifying - Password:
    $1$ZNI4FxIL$AfwYl6rpSg03tvmJnoGFW/
    


  4. MySQL にログインします。
    [master]# mysql -u myadmin -p usersdb
    Enter password: 
    


  5. user テーブルにデータを追加します。
    INSERT INTO user VALUES (1,'ari','Arinux','/bin/bash','$1$ZNI4FxIL$AfwYl6rpSg03tvmJnoGFW/',
    'A',1001,511,'/home/ari', '14194', '0', '0', '7', '-1', '-1', 'test15.arinux.net');
    Query OK, 1 row affected (0.00 sec)
    


  6. 追加されたことを確認します。
    mysql> select * from user¥G
    *************************** 1. row ***************************
       user_id: 1
     user_name: ari
      realname: Arinux
         shell: /bin/bash
      password: $1$ZNI4FxIL$AfwYl6rpSg03tvmJnoGFW/
        status: A
           uid: 1001
           gid: 511
       homedir: /home/ari
    lastchange: 14194
           min: 0
           max: 0
          warn: 7
         inact: -1
        expire: -1
         shost: test15.arinux.net
    1 row in set (0.00 sec)
    



メモ user_group テーブル作成


このテーブルは、補助グループの情報を格納します。


  1. user_group テーブルを作成します。
    青い旗 以下をコピーして、mysql> プロンプトで貼り付ければ入力できます。
    CREATE TABLE user_group (
      user_id int(11) DEFAULT '0' NOT NULL,
      group_id int(11) DEFAULT '0' NOT NULL
      );
    
    mysql> CREATE TABLE user_group (
        ->   user_id int(11) DEFAULT '0' NOT NULL,
        ->   group_id int(11) DEFAULT '0' NOT NULL
        ->   );
    Query OK, 0 rows affected (0.01 sec)
    
    ※ /usr/local/src/nss-mysql-1.0/sample.sql を参考にしています。


  2. user_group テーブルが作成されたことを確認します。
    mysql> show tables;
    +--------------------+
    | Tables_in_usersdb  |
    +--------------------+
    | groups             |
    | user               |
    | user_group         |
    +--------------------+
    3 rows in set (0.00 sec)
    
    mysql> show fields from user_group;
    +----------+---------+------+-----+---------+-------+
    | Field    | Type    | Null | Key | Default | Extra |
    +----------+---------+------+-----+---------+-------+
    | user_id  | int(11) | NO   |     | 0       |       |
    | group_id | int(11) | NO   |     | 0       |       |
    +----------+---------+------+-----+---------+-------+
    2 rows in set (0.00 sec)
    



つづく

| arinux | MySQL | 13:56 | comments(1) | trackbacks(0) | pookmark |
MySQL (1) - レプリケーション


MySQL のマスター/スレーブ型のレプリケーションの設定方法について記述します。ここでは、スレーブ側は read-only として設定します。


メモ サーバー構築環境


機種NEC Express5800, IBM x336(OS 変更)
OSVine 4.2CentOS 5.2
kernel2.6.16-76.39vl42.6.18-92.1.18.el5
glibcglibc-2.3.4-2vl3.3glibc-2.5-24
mysqlmysql-5.0.67-linux-i686-glibc23.tar.gzmysql-5.0.67-linux-i686.tar.gz


メモ MySQL インストール


※マスター及びスレーブの両方で以下を実施します。


  1. http://download.softagency.net/MySQL/Downloads/MySQL-5.0/ から、
    「mysql-5.0.67-linux-i686.tar.gz」 をダウンロードして、「/usr/local/src」 に置きます。


  2. /usr/local に解凍します。
    [root]# tar zxvf mysql-5.0.67-linux-i686.tar.gz -C /usr/local
    


  3. シンボリックリンクを張ります。
    [root]# cd /usr/local
    [root]# ln -s mysql-5.0.67-linux-i686 mysql
    [root]# ls -l
    (一部省略)
    lrwxrwxrwx  1 root root    31 Oct 20 17:01 mysql -> mysql-5.0.67-linux-i686/
    drwxr-xr-x 14  503  503  4096 Aug  5 00:20 mysql-5.0.67-linux-i686/
    


  4. mysql グループと mysql ユーザーを作成します。
    [root]# groupadd -g 401 mysql
    [root]# useradd -g mysql -u 401 mysql -d /nonexistent -s /sbin/nologin
    


  5. インストールスクリプトを実行します。
    [root]# cd /usr/local/mysql
    [root]# ./scripts/mysql_install_db --user=mysql
    Installing MySQL system tables...
    081121 17:12:53 [Warning] option 'thread_stack': unsigned value 126976 adjusted to 131072
    OK
    Filling help tables...
    081121 17:12:54 [Warning] option 'thread_stack': unsigned value 126976 adjusted to 131072
    OK
    (以下、省略)
    


  6. オーナーとグループを変更します。
    [root]# cd /usr/local
    [root]# chown -R root:mysql mysql-5.0.67-linux-i686
    [root]# cd /usr/local/mysql
    [root]# chown -R mysql data
    


  7. 「~/.bash_profile」 に PATH 変数の設定を追加します。
    [root]# vi /root/.bash_profile
    # .bash_profile
    
    # Get the aliases and functions
    if [ -f ~/.bashrc ]; then
            . ~/.bashrc
    fi
    
    # User specific environment and startup programs
    
    ENV=$HOME/.bashrc
    USERNAME="root"
    
    #export USERNAME ENV PATH                   #この行はコメントアウト
    export USERNAME ENV                         #この行を追加
    export PATH=$PATH:/usr/local/mysql-5.0.67-linux-i686/bin     #この行を追加
    
    mesg n
    


  8. 「~/.bash_profile」 を実行します。
    [root]# . ~/.bash_profile
    


  9. mysqld を起動します。
    [root]# cd /usr/local/mysql/bin
    [root]# ./mysqld_safe --user=mysql &
    [1] 3841
    Starting mysqld daemon with databases from /usr/local/mysql/data
    


  10. root ユーザーを作成してテストします。
    [root]# ./mysqladmin -u root password 'bxmbUW0|d8'
    [root]# ./mysqlshow -u root -p
    Enter password: bxmbUW0|d8
    +--------------------+
    |     Databases      |
    +--------------------+
    | information_schema |
    | mysql              |
    | test               |
    +--------------------+
    


  11. mysqld を停止します。
    [root]# ./mysqladmin shutdown -u root -p
    Enter password: bxmbUW0|d8
    STOPPING server from pid file /usr/local/mysql/data/dbmst.arinux.me.pid
    081021 18:00:33  mysqld ended
    
    [1] + Done                 ./mysqld_safe --user=mysql
    



メモ レプリケーション設定


  1. my.cnf の元になるファイルを選択してコピーします。
    ●マスター
    [master]# cp /usr/local/mysql/support-files/my-huge.cnf /etc/my.cnf
    


    虫眼鏡 各 .cnf ファイルの説明


    ファイル名説明
    my-small.cnfメモリーが64MB以下で、MySQLが時々使用されるだけの場合
    my-medium.cnfメモリーが32MB〜64MBでMySQL専用の場合、もしくは 128MBメモリーで webサーバーも同時に稼働する場合
    my-large.cnfメモリーが512MBで、主にMySQLが稼働する場合
    my-huge.cnfメモリーが1GB〜2GBで、主にMySQLが稼働する場合
    my-innodb-heavy-4G.cnfメモリーが4GBで、InnoDB のみのテーブルとわずかな接続で複雑なクエリーを実行する場合


  2. my.cnf を編集します。
    ●マスター
    [master]# vi /etc/my.cnf
    
    [mysqld]
    (省略)
    # Replication Master Server (default)
    # binary logging is required for replication
    log-error=/var/log/mysql.log    # 起動、停止、実行時のログを記録
    log-warnings=1                  # 警告メッセージを記録
    log-bin=mysql-bin               # この行はもともとあります
    
    server-id       = 1             # この行はもともとあります
    


  3. スタートアップ・スクリプトをコピーします。
    ●マスター
    [master]# cp /usr/local/mysql/support-files/mysql.server /etc/rc.d/init.d/mysql
    


  4. mysqld を起動します。
    ●マスター
    [master]# /etc/rc.d/init.d/mysql start
    Starting MySQL. SUCCESS!
    


  5. MySQL にログインします。
    ●マスター
    [master]# mysql -u root -p
    Enter password:
    
    mysql>
    


  6. server_id を確認します。
    ●マスター
    master> SHOW VARIABLES LIKE 'server¥_id';
    +---------------+-------+
    | Variable_name | Value |
    +---------------+-------+
    | server_id     | 1     |
    +---------------+-------+
    1 row in set (0.00 sec)
    


  7. スレーブからマスターへ接続するためのユーザーを作成します。このユーザーには 「REPLICATION SLAVE」 を与えます。例として、slave01.arinux.me から接続を許可する repls01 ユーザーを作成します。
    ●マスター
    master> GRANT REPLICATION SLAVE ON *.* TO repls01@'slave01.arinux.me' IDENTIFIED BY 'n8uP9(udIx';
    Query OK, 0 rows affected (0.00 sec)
    


  8. ユーザ情報を反映します。
    ●マスター
    master> FLUSH PRIVILEGES;
    Query OK, 0 rows affected (0.00 sec)
    


  9. マスターのデータベースをスレーブにコピーします。この時、DB が更新されないように書き込みをロックします。
    ●マスター
    master> FLUSH TABLES WITH READ LOCK;
    Query OK, 0 rows affected (0.00 sec)
    


  10. 現在のバイナリログの状態を確認します。
    ●マスター
    master> SHOW MASTER STATUS;
    +------------------+----------+--------------+------------------+
    | File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
    +------------------+----------+--------------+------------------+
    | mysql-bin.000001 |      594 |              |                  |
    +------------------+----------+--------------+------------------+
    1 row in set (0.00 sec)
    
    ※ ここに表示された 「File」 と 「Position」 の値を、後ほど使用します。


  11. MySQL にログインしたままの状態で、別のターミナルで操作します。


  12. マスターから 「usr/local/mysql/data」 以下をスレーブにコピーします。
    ●マスター
    [master]# cd /usr/local/mysql/data
    [master]# tar zcvf ../master594.tar.gz .
    [master]# cd ..
    [master]# scp ./master594.tar.gz ari@'slave01.arinux.me':/home/ari
    ari@'slave01.arinux.me''s password:
    master594.tar.gz                              100%  178KB 178.5KB/s   00:00
    


  13. スレーブ側の /usr/local/mysql/data と入れ替えます。
    ●スレーブ
    [slave]# cd /usr/local/mysql
    [slave]# mv data data.save01
    [slave]# mkdir data
    [slave]# chown mysql:mysql data
    [slave]# chmod 750 data
    [slave]# cd data
    [slave]# tar zxvf /home/ari/master594.tar.gz
    


  14. マスターのログは必要ないので削除します。
    ●スレーブ
    [slave]# rm -i ./master.arinux.me.*
    [slave]# rm -i ./mysql-bin.*
    [slave]# rm -i ./ib_logfile*
    [slave]# rm -i ./ibdata*
    


  15. スレーブの my.cnf を編集します。
    ●スレーブ
    [slave]# cp /usr/local/mysql/support-files/my-huge.cnf /etc/my.cnf
    [slave]# vi /etc/my.cnf
    
    [mysqld]
    (省略)
    # Replication Master Server (default)
    # binary logging is required for replication
    log-error=/var/log/mysql.log    # 起動、停止、実行時のログを記録
    log-warnings=1                  # 警告メッセージを記録
    #log-bin=mysql-bin              # コメントアウトします
    
    server-id       = 2             # 2に変更します。
    read_only                       # スレーブは read only にします
    


  16. スタートアップ・スクリプトをコピーします。
    ●スレーブ
    [slave]# cp /usr/local/mysql/support-files/mysql.server /etc/rc.d/init.d/mysql
    


  17. mysqld を起動します。
    ●スレーブ
    [slave]# /etc/rc.d/init.d/mysql start
    Starting MySQL. SUCCESS!
    


  18. マスターのロックを外します。
    ●マスター
    master> UNLOCK TABLES;
    Query OK, 0 rows affected (0.00 sec)
    


  19. スレーブ側で、マスターの情報を指定します。
    ●スレーブ
    [slave]# mysql -u root -p
    Enter password: 
    
    slave> change master to
        -> master_host='master.arinux.me',
        -> master_user='repls01',
        -> master_password='eDniXxgo35r]',
        -> master_log_file='mysql-bin.000001',
        -> master_log_pos=594;
    Query OK, 0 rows affected (0.13 sec)
    


  20. スレーブを開始します。
    ●スレーブ
    slave> START SLAVE;
    Query OK, 0 rows affected (0.00 sec)
    


  21. スレーブのステータスを確認します。
    ●スレーブ
    slave> SHOW SLAVE STATUS¥G
    *************************** 1. row ***************************
                 Slave_IO_State: Waiting for master to send event
                    Master_Host: master.arinux.me
                    Master_User: repls01
                    Master_Port: 3306
                  Connect_Retry: 60
                Master_Log_File: mysql-bin.000001
            Read_Master_Log_Pos: 594
                 Relay_Log_File: slave01-relay-bin.000002
                  Relay_Log_Pos: 235
          Relay_Master_Log_File: mysql-bin.000001
               Slave_IO_Running: Yes
              Slave_SQL_Running: Yes
                Replicate_Do_DB:
            Replicate_Ignore_DB:
             Replicate_Do_Table:
         Replicate_Ignore_Table:
        Replicate_Wild_Do_Table:
    Replicate_Wild_Ignore_Table:
                     Last_Errno: 0
                     Last_Error:
                   Skip_Counter: 0
            Exec_Master_Log_Pos: 594
                Relay_Log_Space: 235
                Until_Condition: None
                 Until_Log_File:
                  Until_Log_Pos: 0
             Master_SSL_Allowed: No
             Master_SSL_CA_File:
             Master_SSL_CA_Path:
                Master_SSL_Cert:
              Master_SSL_Cipher:
                 Master_SSL_Key:
          Seconds_Behind_Master: 0
    1 row in set (0.00 sec)
    


  22. 実際にマスター側で DB を作成して、スレーブに更新されるかを確認します。
    ●マスター
    master> CREATE DATABASE repldb;
    Query OK, 1 row affected (0.01 sec)
    
    master> USE repldb;
    Database changed
    
    master> CREATE TABLE sample (
        -> id INT,
        -> data VARCHAR(100)
        -> );
    Query OK, 0 rows affected (0.01 sec)
    
    master> INSERT INTO sample VALUES(1,'arinux');
    Query OK, 1 row affected (0.00 sec)
    
    master> SELECT * FROM sample;
    +------+--------+
    | id   | data   |
    +------+--------+
    |    1 | arinux |
    +------+--------+
    1 row in set (0.00 sec)
    


  23. スレーブ側で確認します。
    ●スレーブ
    slave> SHOW DATABASES;
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | mysql              |
    | repldb             |
    | test               |
    +--------------------+
    4 rows in set (0.00 sec)
    
    slave> USE repldb;
    Database changed
    
    slave> SHOW TABLES;
    +------------------+
    | Tables_in_repldb |
    +------------------+
    | sample           |
    +------------------+
    1 row in set (0.00 sec)
    
    slave> SELECT * FROM sample;
    +------+--------+
    | id   | data   |
    +------+--------+
    |    1 | arinux |
    +------+--------+
    1 row in set (0.00 sec)
    



メモ スレーブ停止テスト


スレーブが停止している間の DB 更新が、再開後に反映されるかをテストします。


  1. スレーブの mysqld を停止します。
    ●スレーブ
    [slave]# /etc/rc.d/init.d/mysql stop
    Shutting down MySQL. SUCCESS!
    


  2. マスターでテーブルの内容を更新します。
    ●マスター
    master> INSERT INTO sample VALUES(2,'cweb');
    Query OK, 1 row affected (0.00 sec)
    
    mysql> UPDATE sample SET id='11' where data='arinux';
    Query OK, 1 row affected (0.00 sec)
    Rows matched: 1  Changed: 1  Warnings: 0
    
    mysql> SELECT * FROM sample;
    +------+--------+
    | id   | data   |
    +------+--------+
    |   11 | arinux |
    |    2 | cweb   |
    +------+--------+
    2 rows in set (0.00 sec)
    


  3. スレーブの mysqld を起動します。
    ●スレーブ
    [slave]# /etc/rc.d/init.d/mysql start
    Starting MySQL. SUCCESS!
    


  4. スレーブ側でテーブルが更新されているかを確認します。
    ●スレーブ
    [slave]# mysql -u root -p
    Enter password:
    
    slave> USE repldb;
    Database changed
    
    slave> SELECT * FROM sample;
    +------+--------+
    | id   | data   |
    +------+--------+
    |   11 | arinux |
    |    2 | cweb   |
    +------+--------+
    2 rows in set (0.00 sec)
    



ここまで

| arinux | MySQL | 16:51 | comments(2) | trackbacks(0) | pookmark |
Moodle (10) - Tips


満月 ログイン画面


メモ トップページをログイン画面にする


トップページをログイン画面に、及びログアウト後にログイン画面を表示させます。


  1. Default では、以下の画面がトップページになっています。
    Moodle Default のトップページ


  2. 管理者アカウントでログインします。


  3. サイト管理のメニューから、「セキュリティ」 → 「サイトポリシー」 をクリックします。
    Moodle サイト管理 サイトポリシー


  4. 「ユーザのログインを強制する」 にチェックを入れます。
    Moodle サイトポリシー ログインの強制


  5. 「変更を保存する」 を押します。
    Moodle サイトポリシー 変更を保存


  6. ログアウトすると、ログイン画面が表示されるようになります。
    Moodle ログアウト
    Moodle ログイン画面



メモ ログイン画面に、前回のユーザー名を表示させない


Default では、ログイン画面の「ユーザー名」のフォームに、前回ログインしたユーザー名が勝手に書かれてしまいます。これを以下の方法で、非表示に変更します。


※ この方法は、Moodle 全般的日本語フォーラム 〜ログイン画面のユーザ名非表示方法について より拝借しました。


  1. 「login/index.php」 を編集します。
    [root]# cd /data/www/moodle/login
    [root]# vi index.php
    
    /// Generate the login page with forms
    
        if (get_moodle_cookie() == '') {
            set_moodle_cookie('nobody');   // To help search for cookies
        }
    
        if (empty($frm->username) && $authsequence[0] != 'shibboleth') {  // See bug 5184
    
    // 以下をコメントアウト
    //        $frm->username = get_moodle_cookie() === 'nobody' ? '' : get_moodle_cookie();
    
    //以下を追加
            $frm->username = "";
    
            $frm->password = "";
        }
    


  2. 以下のように、ログイン画面のユーザー名は、常に空白になります。
    Moodle ログイン画面



ここまで

| arinux | E-learning | 15:40 | comments(1) | trackbacks(0) | pookmark |
Moodle (9) - アカウント管理 (3) 〜LDAP認証


LDAP サーバーにて Moodle のログイン認証を行うことができます。なお、LDAP ユーザーには、posixAccount が必要です。


メモ LDAP エントリーの追加


  1. Moodle 用の ou(organization unit) を追加します。
    [root]# vi oudn_moodle.ldif
    
    dn: ou=moodle,dc=examples,dc=com
    objectClass: organizationalUnit
    ou: moodle
    
    [root]# ldapadd -x -W -D "cn=Manager,dc=examples,dc=com" -f ./oudn_moodle.ldif
    Enter LDAP Password:
    adding new entry "ou=moodle,dc=examples,dc=com"
    


  2. Moodle 用の group を追加します。
    [root]# vi mgroup01.ldif
    
    dn: cn=moodle,ou=group,dc=examples,dc=com
    objectClass: posixGroup
    cn: moodle
    gidNumber: 1005
    
    [root]# ldapadd -x -W -D "cn=Manager,dc=examples,dc=com" -f ./mgroup01.ldif
    Enter LDAP Password:
    adding new entry "cn=moodle,ou=group,dc=examples,dc=com"
    


  3. これから追加するユーザー用のパスワードを MD5ハッシュ で生成します。
    [root]# slappasswd -h {MD5}
    New password: (パスワードを入力)
    Re-enter new password: (再入力)
    {MD5}STltdvRla003L8aMgb2TUQ==
    


  4. Moodle 用のユーザーを追加します。
    [root]# vi muser01.ldif
    
    dn: cn=minami sakai,ou=moodle,dc=examples,dc=com
    objectClass: posixAccount
    objectClass: inetOrgPerson
    sn: sakai
    cn: minami sakai
    uid: minami
    uidNumber: 3001
    gidNumber: 1005
    userPassword: {MD5}STltdvRla003L8aMgb2TUQ==
    mail: minami@arinux.me
    homeDirectory: /home/minami
    loginShell: /sbin/nologin
    
    [root]# ldapadd -x -W -D "cn=Manager,dc=examples,dc=com" -f ./muser01.ldif
    Enter LDAP Password:
    adding new entry "cn=minami sakai,ou=moodle,dc=examples,dc=com"
    


  5. 登録した内容を検索して確認します。
    [root]# ldapsearch -x -h localhost -b "ou=moodle,dc=examples,dc=com"
    (一部省略)
    # moodle, examples.com
    dn: ou=moodle,dc=examples,dc=com
    objectClass: organizationalUnit
    ou: moodle
    
    # minami sakai, moodle, examples.com
    dn: cn=minami sakai,ou=moodle,dc=examples,dc=com
    objectClass: posixAccount
    objectClass: inetOrgPerson
    sn: sakai
    cn: minami sakai
    uid: minami
    uidNumber: 3001
    gidNumber: 1005
    mail: minami@arinux.me
    homeDirectory: /home/minami
    loginShell: /sbin/nologin
    



メモ 登録後のメール送信時のバグ修正


LDAP ユーザーを追加した際に、該当ユーザーに送信されるメールに URI が記述されないバグがありますので、関連ファイルを修正します。


※ この方法は、Eメールアドレスの変更時の確認メール より拝借しました。


  1. ここから Revision 1.70 の auth.php をダウンロードします。


  2. moodledata ディレクトリ下にある日本語パッケージのファイルを入れ替えます。
    [root]# cd /data/moodledata/lang/ja_utf8
    [root]# cp auth.php auth.php.org
    [root]# cp <保存したディレクトリ>/auth.php .
    [root]# chown daemon:daemon auth.php
    [root]# chmod 666 auth.php
    


  3. ここから Revision 1.4 の repository.php をダウンロードします。


  4. 同様に、ファイルを入れ替えます。
    [root]# cd /data/moodledata/lang/ja_utf8
    [root]# cp repository. repository.php.org
    [root]# cp <保存したディレクトリ>/repository.php .
    [root]# chown daemon:daemon repository.php
    [root]# chmod 666 repository.php
    



メモ LDAP サーバの設定


  1. 管理者アカウントでログインします。


  2. サイト管理のメニューから、「ユーザ」 → 「認証」 → 「認証の管理」 をクリックします。
    Moodle サイト管理 認証の管理


  3. 「LDAPサーバ」 の 「Yes」 の列のアイコンをクリックして、「開いた目」 のアイコンに変更します。
    Moodle 認証の管理 使用可能な認証プラグイン


  4. LDAPサーバの行の 「設定」 をクリックします。
    Moodle 認証の管理 使用可能な認証プラグイン


  5. 以下のように設定します。
    LDAPサーバ設定 
    ホストURIldap://127.0.0.1
    バージョン3
    LDAPエンコーディングutf-8
    Bind設定 
    パスワードを隠すNo
    識別名cn=Manager,dc=examples,dc=com
    ユーザlookup設定 
    ユーザタイプposixAccount(rfc2307)
    コンテクストou=moodle,dc=examples,dc=com
    サブコンテクストを検索するNo
    エイリアスの修飾参照No
    ユーザ属性uid
    メンバー属性uidNumber
    ユーザDNのメンバー属性空白
    オブジェクトクラス空白
    パスワード変更の強制 
    パスワード変更の強制No
    標準パスワード変更ページを使用するNo
    パスワードフォーマットMD5暗号化
    パスワード変更のURI空白
    LDAPパスワード有効期限設定 
    有効期限切れNo
    有効期限切れを警告10
    有効期限切れ属性空白
    猶予ログインNo
    猶予ログイン属性空白
    ユーザの作成 
    外部にユーザを作成するNo
    新しいユーザのコンテクスト空白
    コース作成者 
    コース作成者空白
    Cron同期化スクリプト 
    削除された外部ユーザ内部に保持する
    NTLM SSO 
    有効No
    サブネット空白
    データマッピング 
    全て Default 


  6. 「変更を保存する」 を押します。
    Moodle 認証 LDAPサーバ 変更の保存


  7. ログアウトします。



メモ LDAP ユーザの登録


  1. LDAP ユーザーでログインします。


  2. ログイン直後に以下のフォームが表示されます。必要事項を記入し、「プロファイルを更新する」 を押します。
    Moodle プロファイルの編集
    (省略)
    Moodle プロファイルの更新


  3. 以下の画面が表示されますが、このまま置いておくか、閉じてかまいませんが、この時点では 「続ける」 は押しません。
    Moodle プロファイルの編集 メールアドレス変更リクエスト


  4. 以下のメールが、登録したメールアドレス宛に届きます。
    件名: Moodle (arinux) のメール更新確認
    
      さん
    
    あなたは、Moodle (arinux)
    のアカウントに関するメールアドレスの変更をリクエストしました。この変更を
    確認するには、あなたのブラウザで以下のURIにアクセスしてください。
    
    http://10.1.1.15/moodle/user/emailupdate.php?key=Hm4l0BgkExT4orDCH7LW&id=21
    


  5. メールに記述されている URL にアクセスすると、以下のように登録が完了します。
    Moodle メールアドレス更新


  6. この時点で、「続ける」 を押すと、再度 「プロファイルの編集」 の画面に移動します。
    Moodle メールアドレス更新 続ける
    Moodle プロファイルの編集


  7. この時点で、メール送信の画面で 「続ける」 を押しても同様に 「プロファイルの編集」 の画面に移動します。
    Moodle プロファイルの編集 続ける


  8. Moodel ユーザとして追加されているかを確認します。一度ログアウトして、管理者アカウントでログインします。


  9. サイト管理のメニューから、「ユーザ」 → 「アカウント」 → 「ユーザ一覧の表示」 をクリックして、LDAPユーザが表示されていることを確認します。
    Moodle アカウント ユーザ一覧



つづく

| arinux | E-learning | 11:02 | comments(2) | trackbacks(0) | pookmark |
Moodle (8) - アカウント管理 (2) 〜自動登録


メモ 自動コース登録


各ユーザーにロールを割り当てなくても、各コースの設定によって、自動的にコース登録をさせることができます。


  1. 管理者アカウントでログインします。


  2. 該当のコースをクリックします。
    Moodle コース一覧


  3. 管理メニューの 「設定」 をクリックします。
    Moodle 管理 設定


  4. 「コース登録可能」 を 「Yes」 にします。
    Moodle コース設定の編集 ユーザ登録方法
    (省略)
    Moodle コース設定の編集 保存


  5. ロールを割り当てたユーザーがログインした場合は、以下のように表示されます。


    Moodle マイコース


    Moodle トピックアウトライン


  6. ロールを割り当てていないユーザーがログインすると、以下のように表示されます。
    Moodle マイコース


    Moodle コース登録


    Moodle トピックアウトライン



メモ Eメールによる自己登録


ユーザー自身によるアカウントの自己登録の方法を説明します。


  1. 管理者アカウントでログインします。


  2. サイト管理のメニューから、「ユーザ」 → 「認証」 → 「認証の管理」 をクリックします。
    Moodle サイト管理 認証の管理


  3. 「Eメールによる自己登録」 の 「Yes」 の列のアイコンをクリックして、「開いた目」 のアイコンに変更します。
    Moodle 認証の管理 使用可能な認証プラグイン


    Moodle 認証の管理 使用可能な認証プラグイン


  4. 共通設定の自己登録を 「Eメールによる自己登録」 に変更します。
    Moodle 認証の管理 共通設定


  5. 「変更を保存する」 を押します。
    Moodle 認証の管理 保存


  6. 実際に 「Eメールによる自己登録」 を実施してみます。一度ログアウトして、ログイン画面を表示させます。
    Moodle ログアウト


    Moodle ログインへのリンク


  7. 以下のように、ログイン画面の右側が 「はじめての方ですか?」 という表示形式になります。「新しいアカウントを作成する」 を押します。
    Moodle ログイン画面


  8. 必要事項を記入し、「私の新しいアカウントを作成する」 を押します。
    Moodle 新しいアカウントの作成


  9. 以下の画面はそのまま置くか、閉じてかまいませんが、この時点では 「続ける」 は押しません。
    Moodle アカウントの確定


  10. 以下のメールが、登録したメールアドレス宛に届きます。
    件名: Moodle (arinux): アカウントの確定
    
    こんにちは すぎ 新大阪 さん
    
    「Moodle (arinux)」であなたのメールアドレスによる新しいアカウントの作成が
    依頼されました。
    
    あなたの新しいアカウントを確定するには、下記のウェブアドレスにアクセスして
    ください:
    
    http://10.1.1.15/moodle/login/confirm.php?data=wilxa5KVM0rhFyw/sugi
    
    ほとんどのメールプログラムでは、上記部分はクリックできるよう青色にリンク表
    示されています。
    
    動作しない場合は、コピー&ペーストを使ってウェブブラウザ上部のアドレス欄に、
    このアドレスを入力してください。
    
    お分かりにならない場合は、サイト管理者
    管理 ユーザ
    admin@arinux.me
     にご連絡ください。
    


  11. メールに記述されている URL にアクセスすると、以下のように登録が完了します。
    Moodle 新しいアカウントの登録完了


  12. 上記画面で 「コース」 を押すと、以下のようにコースカテゴリが表示されます。
    Moodle コースカテゴリ


  13. この時点で、以下の画面で 「続ける」 を押すと、同様の画面が表示されます。
    Moodle アカウントの確定


    Moodle マイコース



つづく

| arinux | E-learning | 15:00 | comments(2) | trackbacks(0) | pookmark |
Moodle (7) - アカウント管理 (1) 〜ユーザー追加とロール


メモ ユーザーの追加


  1. 管理者アカウントでログインします。
    Moodle ログイン


    Moodle ログイン画面


  2. 以下のように必要事項を記入し、「プロファイルを更新する」 を押します。「ユーザ名」 は英数字のみが入力可です。
    Moodle アカウント ユーザの追加
    (省略)
    Moodle アカウント プロファイルの更新


  3. ユーザの一覧が表示されます。
    Moodle アカウント ユーザ一覧


  4. 同様の方法で、ユーザを一人ずつ追加します。



メモ ロールの割り当て


  1. Moodle の TOP 画面へ移動します。 Moodle TOP画面へのリンク


  2. コース名をクリックします。
    Moodle コースの選択


  3. 管理メニューの 「ロールの割り当て」 をクリックします。
    Moodle 管理 ロールの割り当て


  4. 「ロールの割り当て」 の画面が表示されます。例として、すでに登録されているユーザを、管理者に割り当てます。「管理者」 をクリックします。
    Moodle ロールの割り当て


  5. ユーザーを選択し、「追加」 を押します。
    Moodle ロールの割り当て 管理者


  6. 以下のように、「割り当て済みユーザ」 の欄に追加されます。
    Moodle ロールの割り当て 管理者 追加


  7. 続けて、「講師」 へロールを割り当ててみます。「割り当てるロール」 のドロップダウンリストから 「講師」 を選択します。
    Moodle ロールの割り当て 講師


  8. ユーザーを選択し、「追加」 を押すと、「割り当て済みユーザ」 の欄に追加されます。
    Moodle ロールの割り当て 追加


    Moodle ロールの割り当て 追加


  9. 同様に 「社員」 を追加します。
    Moodle ロールの割り当て 社員


    Moodle ロールの割り当て 追加


    Moodle ロールの割り当て 追加


  10. Moodle の TOP 画面へ移動して、以下のように該当のコースに 「講師」 が表示されることを確認します。
    Moodle TOP画面へのリンク


    Moodle コース一覧



つづく

| arinux | E-learning | 11:09 | comments(1) | trackbacks(0) | pookmark |
Moodle (6) - アンケートの追加


アンケートモジュール 「Questionnaire」 をインストールして、アンケートのページを作成します。


メモ アンケート・モジュールの追加


  1. http://moodle.org/mod/data/view.php?id=6009 から、
    「questionnaire.zip」 をダウンロードして、「/usr/local/src」 に置きます。


  2. moodle ディレクトリ下の mod ディレクトリに解凍します。
    [root]# cd /data/www/moodle/mod
    [root]# unzip /usr/local/src/questionnaire.zip
    


  3. 実際のアンケート作成・集計等では、phpESP を利用します。 http://www.butterfat.net/wiki/Projects/phpESP/ から、
    「phpESP-2.1.1.gz」 をダウンロードして、「/usr/local/src」 に置きます。


  4. questionnaire ディレクトリ以下に解凍します。
    [root]# cd /data/www/moodle/mod/questionnaire
    [root]# tar zxvf /usr/local/src/phpESP-2.1.1.gz
    


  5. http://moodle.org/mod/forum/discuss.php?d=34306 から、
    「locale.zip」 をダウンロードして、「/usr/local/src」 に置きます。


  6. questionnaire/phpESP ディレクトリ以下に解凍します。
    [root]# cd /data/www/moodle/mod/questionnaire/phpESP
    [root]# unzip /usr/local/locale.gz
    


  7. phpESP設定ファイルを編集します。
    [root]# cd /data/www/moodle/mod/questionnaire/phpESP/admin
    [root]# cp phpESP.ini.php.default phpESP.ini.php 
    [root]# vi phpESP.ini.php
    
    /* LANGUAGE RELATED */
    // Default language for designer interface
    // (Must have gettext support avaiable.)
    //$ESPCONFIG['default_lang'] = 'en_US';      //この行をコメントアウト
    $ESPCONFIG['default_lang'] = 'ja_JP.UTF-8';  //この行を追加
    
    // HTML character set used by phpESP
    // (Try 'Windows-1251' for Cryillic, etc.)
    //$ESPCONFIG['charset'] = 'ISO-8859-15';
    $ESPCONFIG['charset'] = 'UTF-8';             //この行はもともとあります
    


  8. Moodle の TOP 画面へ移動します。
    Moodle TOP画面へのリンク


  9. システムに反映するため、「通知」 を押します。
    Moodle システムへの通知


  10. 以下のメッセージが表示されます。
    Moodle モジュールテーブル設定中
    Moodle モジュールテーブル設定 成功
    「続ける」 を押します。


  11. 以下の画面が表示されます。
    Moodle 通知画面


  12. 左メニューから 「モジュール」 → 「活動」 → 「活動モジュール」 とクリックして、「Questionnaire」 が表示されていることを確認します。
    Moodle モジュール 活動の管理



メモ アンケート・ページの追加


例としてトピック5 に 「Questionnaire」 を追加します。


  1. Moodle の TOP 画面へ移動します。
    Moodle TOP画面へのリンク


  2. コース名をクリックします。
    Moodle コースの選択


  3. 「活動の追加」 のドロップダウンリストから 「Questionnaire」 を選択します。
    Moodle 活動の追加・Questionnaire


  4. Name・要約を記入、他の箇所はここではデフォルトのままとし、「保存して表示する」 を押します。
    Moodle Questionnaire の編集 Name・要約保存
    Moodle Questionnaire の編集 保存


  5. 「Questions」 タブをクリックします。
    Moodle アンケートの作成 Questions


  6. ここでは例として、「Essay Box」 タイプを選択します。
    Moodle アンケートの作成 Questions Type


  7. 「Add selected question type」 ボタンを押します。
    Moodle アンケートの作成 Questionsの追加


  8. 以下のように記入して、「変更を保存する」 を押します。
    Moodle アンケートの作成 Essay Box question


  9. 作成したアンケートが、以下のように一覧に表示されます。
    Moodle アンケートの作成 Questions 一覧


  10. 「Preview」 タブを押して、作成したアンケートをプレビューしてみます。
    Moodle アンケートの作成 Preview タブ


  11. 以下がその preview 画面です。コース名のボタン(ここでは EXAM-101)を押すと、リソース追加の画面に移動します。
    Moodle アンケートの作成 Preview


    Moodle リソースの追加画面



つづく

| arinux | E-learning | 15:47 | comments(1) | trackbacks(0) | pookmark |
Moodle (5) - 小テストの追加


メモ 小テストの追加


例としてトピック4 に 「小テスト」 を追加します。


  1. 管理者としてログインし、以下のようにトップページに表示されるコース名をクリックします。
    Moodle コースの選択


  2. 「編集モードの開始」 を押します。
    Moodle コースの選択 編集モードの開始


  3. 「活動の追加」 のドロップダウンリストから 「小テスト」 を選択します。
    Moodle 活動の追加 小テスト


  4. 名称・イントロダクションを記入、他の箇所はここではデフォルトのままとし、「保存して表示する」 を押します。
    Moodle 小テストの編集 名称・イントロダクション
    Moodle 小テストの編集 レビューオプション
    Moodle 小テストの編集 保存


  5. 例として、○×問題を作成します。問題の作成のドロップダウン・リストから、「○/×問題」 を選択します。
    Moodle 小テストの編集 ○×問題の作成


  6. 問題名・問題テキスト・フィードバック・正解を記入し、「変更を保存する」 を押します。
    Moodle 小テスト ○×問題の追加 問題名
    Moodle 小テスト ○×問題の追加 フィードバック
    Moodle 小テスト ○×問題の追加 保存


  7. 作成した問題の 「操作」 の欄にある □ にチェックを入れ、「小テストに追加する」 を押します。
    Moodle 小テストへの問題の追加


  8. 以下のように 「この小テストの問題」 の下に、作成した問題が追加されました。確認のため、「プレビュー」 を押します。
    Moodle この小テストの問題


  9. ○ か × かを選び、「送信」 を押します。
    Moodle この小テストの問題


  10. 結果とフィードバックが表示されます。
    Moodle 小テストのプレビュー


  11. 解答後すぐに結果とフィードバックを表示するかどうかについては、「小テストの編集」 の以下の箇所で設定します。
    Moodle 小テストの編集 レビューオプション


  12. 小テストの編集画面へ移動したい場合は、「この小テストを更新する」 を押します。
    Moodle 小テストの更新



つづく

| arinux | E-learning | 09:16 | comments(1) | trackbacks(0) | pookmark |
Moodle (4) - リソースの追加


メモ リソースの追加(ウェブページ)


既に作成した 「コース」 に、リソースを追加します。


  1. 管理者としてログインし、以下のようにトップページに表示されるコース名をクリックします。
    Moodle コースの選択


  2. 「編集モードの開始」 を押します。
    Moodle コースの選択 編集モードの開始


  3. 例として、「トピック1」 にウェブページを作成します。以下のように、ドロップダウンリストから 「ウェブページの作成」 を選択します。
    Moodle リソースの追加 ウェブページの作成


  4. 以下のように、名称・要約・テキストを記入し、「保存して表示する」 を押します。



  5. 作成したリソースが表示されます。リソース追加の画面に戻る場合は、以下のように 「コース名」 (実際にはコースの省略名) をクリックします。




メモ トピックの追加


既存のコースに、トピックを追加します。


  1. 以下のように、該当のコース画面で、左側にあるメニューから 「設定」 をクリックします。


  2. 「週/トピックの数」 の値をドロップダウン・リストから選択します。


  3. 「変更を保存する」 を押します。


  4. 以下のように、トピックの数が増えました。



メモ リソースの追加(ウェブサイトにリンク)


例としてトピック2 に 「ウェブサイトへのリンク」 を追加します。


  1. 以下のように、ドロップダウン・リストから 「ファイルまたはウェブサイトにリンク」 を選択します。


  2. 名称、要約、ロケーション(リンク先)を記入して、「保存してコースに戻る」 を押します。




メモ リソースの追加(ファイルにリンク)


例としてトピック3 に 「ファイルへのリンク」 を追加します。


  1. 以下のように、ドロップダウン・リストから 「ファイルまたはウェブサイトにリンク」 を選択します。


  2. 名称、要約を記入します。


  3. 「ファイルを選択またはアップロードする」 を押します。


  4. 以下のように、ファイルを選択します。




    虫眼鏡 ファイル名の日本語は 「_ 」(アンダーバー) に置き変わります。


  5. 「保存してコースに戻る」 を押します。


  6. この例では、各トピックは以下のようになります。



つづく

| arinux | E-learning | 15:49 | comments(1) | trackbacks(0) | pookmark |
      1
2345678
9101112131415
16171819202122
23242526272829
30      
<< September 2018 >>
+ SELECTED ENTRIES
+ RECENT COMMENTS
+ RECENT TRACKBACK
+ CATEGORIES
+ ARCHIVES
+ 掲載予定のタイトル
  • Wordpress
  • Pukiwiki
  • SMTPs/POPs/IMAPs
  • fml
  • Tips
+ CSS Nite
+ MOBILE
qrcode
+ LINKS
+ RECOMMEND
+ PROFILE