Rev.0: 2008.08.20
Rev.1: 2010.08.03 (CentOS 5.5で再検証)
CentOS 5.5 i386の載ったサーバーマシンにMoodleをインストールして運用できる環境を構築します。
サーバー運用時のアップデート作業などを配慮して、なるべくOS付属のRPMモジュールをそのまま使い、ソースコードから自分でMakeすることはやめました。
作業に当たっては、基本的なLinux OSの知識と、viエディタの操作知識が必須です。
linux OSの一般的なインストール知識も必要です。
これらの情報については、参考書が色々出ているので、適当に購入して読んでください。
今回は特に明記はしませんでしたが、セキュリティー関係の設定については各自で充分な対策をしていただくようにお願いします。
注:以下の記述は、当方のマシンで検証して、一応、基本動作のみ確認済みです。
ただし、OSやアプリケーションソフトのバージョンや設定の違いなどで、このとおりに作業しても、正しく動作しない場合もあります。
ひょっとしたら、私の考え違いや記述ミスなどもあるかもしれません。
したがって、インストール作業は、あくまで、”At your own risk.”でやることにしてください。
このメモの通りにインストールして何か不都合が起きたとしても、その結果について当方ではいっさい責任をもちません。
——————————————————————————–
[1]インストール環境
1. OS
本格的なサーバー環境を構築するには、IBM/DELL/富士通など各社のサーバーが標準採用しているRedHat Enterprise Linux ES5をつかうことをお推めします。
一方で、とりあえずソフトのテスト用環境を安価に作りたいと言う要望もあるので、今回はOSとして、Cent OS 5.5を使用してみました。
Cent OSは、RedHat Enterprise Linux OSのクローンなので、本番のサーバーをたてる時にも違和感を感じずに移行できるとおもいます。
このOSでは、PHP5 + Postgres8 + MySQL5の環境になるのでご注意願います。
なお、本格的にe-Learningサイトを運用する場合はそれなりのスペックの本格的なサーバーマシンが必要ですが、とりあえずテスト的にインストールする場合はLinux OSが動くものなら何でもOKです。
ただし、メインメモリは1GB以上載せることをお勧めします。
2. OS インストール
インストール用のisoイメージを、Centサイトから無償ダウンロードしてDVD-Rに焼きます。
http://www.centos.org/
インストール作業の前に、サーバーに設定するネットワークデータを決めておいてください。
IP Address/Netmask/Host name/Domain name/Default gateway/
Pri. DNS server/Sec. DNS server/SMTP server など
DVD-Rをマシンにセットして、電源を入れブートします。
もしもDVD-Rから起動できない場合は、BIOSの設定を確認願います。
インストール画面が表示されるので、各ページの記載内容に従って作業を進めていきます。
主な注意点だけ以下に載せておきます。
2-1. ブートモード選択
boot: と出てきたら、そのままEnterキーを押す
インストールプログラムが立ち上がる。
2-2.To begin testing the CD…と出てきたら「Skip」を選択
2-3.言語選択は「Japanese(日本語)」を選択
2-4.キーボードも一般には「日本語」を選択
2-5.インストールモードの選択
「インストール(I) CentOS」を選択
2-6.「選択したドライブ上のlinuxパーティションを削除してデフォルトのレイアウトを作成します。」の右横の上下三角印をクリック。
出てきたメニューの中から「カスタムレイアウトを作成します。」を選択。
今回インストールするマシンに以前linux OSを載せていたかどうか?
などによって、次項の設定時に出てくるメニュー画面などは違いがあるかもしれません。状況にあわせて適当に作業してください。
2-7.ハードドライブの部分をマシンに合わせて設定
例:
/boot 128MB ext3
/ 15GB ext3
/home 5GB ext3
/var 10GB ext3
swap 2GB swap
/data 残り全部 ext3
(/data下にMoodleサイトを載せるつもりです)
2-8.ブートローダーの設定 デフォルトのまま
2-9.ネットワークデバイス 環境に合わせて設定
・ネットワークデバイス
・ホスト名
・その他の設定
2-10.マップ内で地域を選択 「アジア/東京」を選択
2-11.rootユーザーのパスワード 好きな物を設定
2-12.ソフトウエアの選択
「今すぐカスタマイズする(C)」を選択
・デスクトップ環境 GNOMEデスクトップ環境
・アプリケーション Office生産性、エディタ、グラフィカルインターネット、グラフィックス、
・開発 開発ツール、開発ライブラリ
・サーバー DNSネームサーバー、FTPサーバー、MySQLデータベース、PostgreSQLデータベース
Webサーバー、サーバー設定ツール、メールサーバー、レガシーなネットワークサーバー、
印刷サポートなど
・ベースシステム X Window System、システムツール、ベース、管理ツール
・言語 日本語
# MySQL/PostgreSQL/Webなどは、オプションが良く分からなければ全部選択します。
# Moodleを載せるだけなら、PostgreSQLデータベース関係は不要です。
# ベースシステムを選択しないと後で非常に困ります。基本的なコマンドが使えなかったりします。
2-13.インストールの開始
2-14.リブート、ようこそ表示
2-15.ファイアウォール FTP,SSH,HTTPS,HTTP,SMTP,NAMEDなどを許可
2-16.SELinux 無効(自己責任で願います)
2-17.Kdump 有効にしない
2-18.日付と時刻
2-19.ユーザーの作成
2-20.サウンドカード
サーバーなので、無視しても大丈夫です。
2-21.追加のCD
2-22.再起動
4.インストール後のOSの設定
rootでログインします。
管理ユーザー(root)の環境設定は好みの問題も有るので必ずしもこの通りにする必要はありません。以下は単なる参考です。
画面上部のメニューバーの何も無いところでマウスの右ボタンをクリックするとメニューが表示されるので、[パネルへ追加...]を左ボタンクリックします。
出てきたメニューウインドウの中で、[GNOME目玉]を左クリックするとメニューバーの上に、目玉が常時表示されます。(特に意味無し)
画面上部のメニュー[アプリケーション]–[アクセサリ]–[GNOME端末]上でマウスの右ボタンをクリックします。
「このランチャをパネルへ追加」を選んで左ボタンをクリックメニューバーにGNOME端末アイコンが常時表示されるようになります。
アイコンをクリックすれば、もちろんGNOME端末ウインドウが開かれます。
画面上部のメニュー[アプリケーション]–[インターネット]-[Firefox Web Browser]上でマウスの右ボタンをクリックします。
「パネルへ追加」を選んで左ボタンをクリックします。
メニューバーにFirefoxアイコンが常時表示されるようになります。
メニューバーの地球儀アイコンの上でマウスの右ボタンをクリックします。
「パネルから削除」を選んで左ボタンをクリックすると、GNOMEウエブブラウザのアイコンが削除されます。
ネットワークの設定を確認します。
ニューバーのGNOME端末アイコンをクリックして、GNOMEターミナルを開きます。
/etcディレクトリのhostsファイルを開いて内容を確認します。
# vi /etc/hosts
127.0.0.1 localhost.localdomain localhost
163.131.76.114 pc076114.totsu.co.jp pc076114
(このマシンのIP アドレス) (FQDN名) (ホスト名)
たとえば、上記のような感じに設定されていればOKです。
ちゃんと設定されていない場合は、手動で修正します。
Moodleのインストール作業を始める前に、
このマシンからDNSで名前解決ができて、FireFoxでインターネットのWebページが閲覧でき、mailが送信できるようになっている必要があります。
できなかった場合はサイト管理者と相談するか、linux OSインストールのHowTo本などを読んで研究してください。
# vi /etc/hosts.allow
ALL:127.0.0.1
sshd:ALL
vsftpd:ALL
(許可するプログラム):(アクセスを許可する相手)
などと状況にあわせて、許可するアクセス条件を書き込みます。
# vi /etc/hosts.deny
ALL:ALL
上記の1行を記入します。
一般ユーザー(例:testuser)を適宜追加します。
後で、ネット経由で端末からsshでログインする時など1人ぐらいは一般ユーザーを作っておかないと困ることがあります。
メニューバーの[システム]–[管理]–[ユーザーとグループ]を選択「ユーザーを追加」をクリックします。
ユーザー名: testuser
氏名: Test User
パスワード: 適当なパスワード
パスワードの確認: 再度、同じパスワード
ログインシェル: /bin/bash
ホームディレクトリ: /home/testuser
ユーザー用にプライベートグループを作成 (チェック外す)
ユーザーIDを手動で指定 (自分で指定してもOK)
OSモジュールのアップデート作業をします。
なるべく高速に、インターネットにアクセスできる必要があります。
GPG公開鍵をインストールします:
# rpm --import http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5
ソフトウェアをアップデートします。
# yum update
Cent OSサイトから、各モジュールの最新版をダウンロードするのでかなり時間がかかります。
放っておいて、何か別の仕事をして時間をつぶしましょう。
アップデートが終ったら、マシンをリブートします。
# reboot
ソフトを追加インストールします。
下記のモジュールは、デフォルトではインストールされませんがMoodleで必要なので、追加インストールします。
# yum install php-gd
# yum install php-mbstring
# yum install php-xmlrpc
# yum install php-xml
[2] FTPサーバーの設定
以下の作業をrootで実行します。
ただし、「sftpを使うからftpはいならい」という人は
設定しないでもOKです。
# cd /etc/vsftpd
設定ファイルを編集します。
# vi vsftpd.conf
anonymous_enable=YES
anonymous_enable=NO <—– 変更
file_open_mode=0777 <—– 追加
# xferlog_file=/var/log/vsftpd.log
xferlog_file=/var/log/vsftpd.log <—– 変更
userlist_enable=YES
userlist_enable=NO <—– 変更
userlist_deny=YES <—– 追加
FTPサーバーが自動起動するように設定します。
# chkconfig --level 345 vsftpd on
設定されたか確認します。
# chkconfig --list vsftpd
とりあえず、起動します。
# service vsftpd start
[3] Apacheの設定
以下の作業をrootで実行します。
Webサイト登載ディレクトリを作成します。
# mkdir /data/html
# vi /etc/httpd/conf/httpd.conf (以下viの操作になります)
・WWWページを置くディレクトリの設定(先ほど作ったディレクトリを設定)
修正個所が2箇所あります
DocumentRoot “/var/www/html”
DocumentRoot “/data/html” <—-こちらに修正
<Directory “/var/www/html”>
<Directory “/data/html”> <—-こちらに修正
・ディレクトリインデックスの追加(index.phpを追加します)
DirectoryIndex index.html index.html.var
DirectoryIndex index.php index.html index.html.var <—-こちらに修正
・LanguagePriorityの順番変更。 jaを最初にしたほうが気分が良いでしょう。
LanguagePriority en ca cs da de el eo es et fr he hr it ja ko…. (jaが後ろの方にある)
LanguagePriority ja en ca cs da de el eo es et fr he hr it ko…. <—-こちらに修正
・AddDefaultCharset UTF-8
Moodleを使うだけならこのままでOKです。
XoopsなどのEUC-JPエンコードのサイトも載せる場合はコメントアウトしたほうが良いでしょう。
Apacheの自動起動スクリプトを設定します。
# chkconfig --level 345 httpd on
設定されたか確認します。
# chkconfig --list httpd
[4] MySQLの設定
Mysqlを起動します。
# service mysqld start
MySQLのrootユーザーのパスワード設定(例:2010mysql)
# mysqladmin -u root password 2010mysql
登録済ユーザーのチェック
# mysql -u root -p2010mysql (-pとパスワードの間にスペースを入れない)
mysql> select host,user,password from mysql.user;
もしも特定のユーザー(例:moodleuser)を削除したい場合は
mysql> delete from mysql.user where user=”moodleuser”;
デフォルトで匿名ユーザーがいる場合は削除します。
mysql> delete from mysql.user where user="";
mysqlからexitします。
mysql> exit;
ネットワークrootユーザーのパスワード設定(例:2010mysql)
# mysqladmin -u root -h FQDN password 2010mysql
FQDNの所には、このマシンのIP Address(例:www.totsusangyo.comなど)を入力します。
Moodle用データベースの作成
MoodleからMySQLにアクセスするユーザー(moodleuser)を作ります。
# mysql -u root -p2010mysql
Moodle用に、utf8エンコードのデータベース(例:moodle)を作ります。
mysql> create database moodle character set utf8 COLLATE utf8_unicode_ci;
作ったデータベースにアクセスするためのユーザー(moodleuser)を作ります。
別ユーザーでアクセスした方が、いきなりrootでアクセスするよりも良いと思います。
mysql> grant all privileges on
moodle.* to moodleuser@localhost identified by '2010moodleuser';
本当にできたか確認します。
mysql> show databases;
mysql> exit;
新ユーザーでアクセスできるか確認します。
# mysql -u moodleuser -p2010moodleuser
mysql> exit;
MySQLが自動起動するように設定します。
そうすれば、電源をいれて立ち上げれば、MySQLが自動的に走ります。
# chkconfig --level 2345 mysqld on
# chkconfig --list mysqld
[5] mimetypeの設定追加
# vi /etc/mime.types
下記の2行を追加します。
application/x-httpd-php php
application/x-httpd-php-source phps
[6]PHPの設定変更
# vi /etc/php.ini
下記のようになっているか確認、なっていなければ修正します。
magic_quotes_runtime = Off
file_uploads = On
session.auto_start = 0
session.bug_compat_warn = 0
memory_limit = 16M
memory_limit = 256M <—-実装メモリとの兼ね合いだが、128M以上を推奨
post_max_size = 8M
post_max_size = 51M <—-適当に修正
upload_max_filesize = 2M
upload_max_filesize = 51M <—-適当に修正
;mbstring.language = Japanese
mbstring.language = Japanese <—-こちらに修正
;mbstring.internal_encoding = EUC-JP
mbstring.internal_encoding = UTF-8 <—-こちらに修正
;mbstring.encoding_translation = Off
mbstring.encoding_translation = On <—-こちらに修正
;mbstring.http_input = auto
mbstring.http_input = auto <—-こちらに修正
;mbstring.http_output = SJIS
mbstring.http_output = UTF-8 <—-こちらに修正
magic_quotes_gpc = Off
PHPが動くかテストします。
テストページを作成し、/data/htmlに置きます。
# cd /data/html
# vi test.php (新ファイル)
下記の3行を記入します。
<?php
phpinfo();
?>
Apacheをリスタートします。
# service httpd restart
ブラウザ()でこのマシンのtest.phpページにアクセスしてみます。
FQDNが server.yourcompany.com のアドレスだった場合は、URLは下記になります。
URL http://server.yourcompany.com/test.php
内容のチェックが終わったらtest.phpファイルは削除します。
[7] moodleのインストール
moodledata用ディレクトリの作成
# mkdir /data/moodledata
# chown apache:apache /data/moodledata
FirefoxブラウザでMoodleサイト(http://moodle.org/)にアクセスします。
ダウンロードページから、Standard Moodle Distribution の中のLatest Stable Buildを
選んで.tgz formatファイルをダウンロードします。
今回ダウンロードしたときのファイル名はmoodle-weekly-19.tgz (約12MB)でした。
ダウンロードしたファイルのあるディレクトリに行きます。
Firefoxの設定がデフォルトのままの場合は、/root/Desktopになります。
# cd /root/Desktop
Moodleファイルを展開します。
# tar xvfz moodle-weekly-19.tgz
# cp -r moodle /data/html/moodle
FirefoxブラウザでMoodleにアクセスして設定を進めます。
URL http://FQDN/moodle/
FQDNのところは、インストールしたマシンのアドレスになります。
Language 日本語(ja) を選択してNextボタンをクリック
「PHP設定を確認しています …」で表示が全部「パス」になっていればOK 次へボタンをクリック
「Moodleのインストール先を確認してください。」の内容がOKなら 次へボタンをクリック
次は、データベースの設定ページです。
タイプ MySQL(mysql)
ホストサーバ localhost
データベース moodle ([4]で作ったデータベース名)
ユーザ moodleuser ([4]で作ったユーザ名)
パスワード 2008moodleuser ([4]で作ったパスワード、本当はもっとちゃんとしたものにする)
テーブル接頭辞 mdl_
「あなたの環境を確認しています …」ページで状態がすべて「OK」ならば、次へボタンをクリック
「言語パックのダウンロード」ページでは、「日本語をダウンロードする」ボタンをクリックする。
「言語「 日本語 (ja) 」が正常にインストールされました。」と出れば、次へボタンをクリック
次のページでは「インストールスクリプトは、自動的にあなたの選択した設定を反映した
config.phpファイルを作成することができませんでした。…」と言う赤字のワーニングが
表示されます。
Firefoxブラウザは開いたままにして、今度はGNOME端末の方で作業します。
Moodleをインストールしたディレクトリに移動します。
# cd /data/html/moodle
viエディタでconfig.phpと言うファイルを作ります。
# vi config.php
キーボードのiを押してインサートモードにしておきます。
さっきから開いたままのFirefoxブラウザの中のPHPプログラム部分
<?php /// Moodle Configuration File
:
:
?>
を、マウスの左ボタンを押しながら選択し、右ボタンクリックして「コピー」します。
つぎに、GNOME端末で開いているviエディタの中にマウスの真中ボタンを押しペーストします。
シフトキーとzzを押して、内容を書き込んで終了します。
config.phpファイルが作れたら、Firefoxブラウザの中の続けるボタンをクリック
「著作権表示」ページは、了解したらYesボタンをクリック
「現在のリリース情報」ページは、続けるボタンをクリック
「データベースのアップグレードが完了しました。」表示が出たら続けるボタンをクリック
「workshop テーブルが正常に設定されました。」表示が出たら続けるボタンをクリック
「truefalse テーブルが正常に設定されました。」表示が出たら続けるボタンをクリック
「データベースのアップグレードが完了しました。」表示が出たら続けるボタンをクリック
もう一度「データベースのアップグレードが完了しました。」表示が出たら続けるボタンをクリック
「タグ テーブルが正常に設定されました。」表示が出たら続けるボタンをクリック
「paypal テーブルが正常に設定されました。」表示が出たら続けるボタンをクリック
「xml テーブルが正常に設定されました。」表示が出たら続けるボタンをクリック
もう一度「xml テーブルが正常に設定されました。」表示が出たら続けるボタンをクリック
「user テーブルが正常に設定されました。」表示が出たら続けるボタンをクリック
「管理者アカウントの設定」ページが表示されるので、内容を設定します。
記入例:
ユーザ名 admin (デフォルトのadminでは無く、別の名前のが本当は良い)
新しいパスワード 2010admin (本当はもっとちゃんとしたパスワードにする)
メールアドレス root@example.com (実際に使えるメイルアドレスにする)
都道府県 京都府
国を選択する 日本
必要な内容を記入したら、ページ一番下のプロファイルを更新するボタンを押す
「新しい設定 - フロントページ設定」のページが表示されるので、内容を設定します。
「長いサイト名」と「短いサイト名」「フロントページの説明」の記入が必要です。
記入が済んだら、ページの一番下の変更を保存するボタンを押す
次のページで、Moodleトップページが表示されたら、とりあえずの初期設定は完了です。
この状態では、管理ユーザー(admin)として、既にMoodleサイトにログインしています。
そのまま設定を続けるか、あるいはページ右上のログアウトをクリックしてログアウトします。
[8] cronの設定
Firefoxブラウザで下記URLにアクセスして、スクリプトが動くか確認します。
http:///example.com/moodle/admin/cron.php (アドレスは適当に修正)
Cron script completed correctly
Execution took 0.951853 seconds
みたいに表示されれば動作OKです。
このスクリプトが定期的に実行されるようにcronに設定します。
# crontab -e
*/5 * * * * wget -q -O /dev/null http://example.com/moodle/admin/cron.php
crontab -eした後は、viエディタが開いた状態になっているので上記の1行を入力します。
example.comのところは、自分のサーバーのFQDNをいれてください。
記入したら、シフトとzzキーを押して書き込んでviエディタを終了します。
Apacheをリスタートします。
# service httpd restart
追加:
1.Moodleがインストールされているディレクトリの中に、Moodle設定ファイル「config.php」があります。
自動作成された config.php にUnicode
でのファイル名処理のため以下の指定を加えます。
通常の手順では自動付加されない可能性があるので,念のため付け加えます。
# vi /data/html/moodle/config.php
$CFG->unicodedb = true;
$CFG->unicodecleanfilename = true;
2.SSH
rootでのSSHログインを明示的に禁止します。
とりあえず一般ユーザーでログインしてから su - するか、sudoしてください。
# vi /etc/ssh/sshd_config
#PermitRootLogin yes
PermitRootLogin no <—–こちらに変更