FreeBSD に Moodle 1.9 を新規インストール
前回の作業の結果を別の観点で見ると、「Moodleを入れていない FreeBSD ユーザでも、こうすればインストールできる…」というのが見えてきました。さらに FreeBSD の Ports には Moodle があり活用しない手はありません。ということで、今度は標準的な FreeBSD のインストール状態からの Moodle 1.9 立ち上げを書いておきます。なお、この記述は日本国内では利用者が多いPostgresql を使用する場合です。MySQLの場合は奥村先生のWiKiを御参照ください。
なお、FreeBSDやUnixに詳しくない人は、コマンドをみてすぐに実行せずに、一度最後まで読んで理解し、わからないコマンドは、検索して他の人の説明で意味を理解するなどの十分な準備をしておいてください。
まず、次の条件を満たすホストを構築してください。通常、FreeBSDをWebサーバに使っていれば標準的だとは思います。
- FreeBSD-6.x 以上 (7.xでもOK)
- Ports から Apache 2.0 以上を導入済。(以下の例では Apache 2.2)
- http:///your-web-site.example.jp/moodle/ は、 /usr/local/www/data/ に対応(Portsの標準位置)
- PHP-5.x を導入済。
まず、 sysinstall を使って、DBの操作権限をもつアカウント pgsql を作ります。
# sysinstall
(Configure → User Management → Add User)
pgsql の home は、どこでもいいですが、今回は /home/pgsql としておきます。
DB を導入しましょう。
/usr/ports/database の下を見るとたくさんのバージョンがあって悩みますが、Moodle 1.9 を安定して動かせるのは 8.1.x です。8.2以上ではエラーがでます。
# make install
導入がおわったら、いつもの /etc/rc.conf に動作環境を設定します。この例では DB を /home/pgsql/data の下に作ります。運用をすると容量が大きくなるので注意。
# echo postgresql_data=\"/home/pgsql/data\" >> /etc/rc.conf
# echo postgresql_initdb_flags=\"--encoding=UTF8 --lc-collate=C \" >> /etc/rc.conf
# echo postgresql_enable=\"YES\" >> /etc/rc.conf
# mkdir /home/pgsql/data
# chown pgsql /home/pgsql/data
環境設定がおわったら、DBの初期化をし、そしてDBのデーモンを起動します。
# /usr/local/etc/rc.d/postgresql start
次に、Moodle用の DBの雛型を構築します。ここで、moodleuser というのは、Unixのアカウント pgsql が、DB に接続するときの DBサーバへに対するユーザ名です。また、p-a-s-u-w-a-d-o は、その際のパスワードです。p-a-s-u-w-a-d-o の部分は、自分で好きなものにしてください。
% psql -c "create user moodleuser createdb;" template1
% psql -c "alter user moodleuser password 'p-a-s-u-w-a-d-o';" template1
% psql -c "create database moodle16;" -U moodleuser template1
% psql -c "alter user moodleuser nocreatedb;" template1
% psql -l (←出来たかどうかの確認)
% exit
まっさらから入れるので Ports を使います。
# make config
(PGSQL にチェックをつけます。)
# make install
これで Moodle-1.9.x がインストールされます。
Moodleを動作させると、大きく2つのディレクトリが作成されます。
- Moodleのプログラムとコンフィグファイル
- /usr/local/www/moodle
- Moodleのコースデータ
- /usr/local/www/moodledata
このうち、コンフィグファイルは1つしかない(しかも非常に小さい)ので、前者のディレクトリは運用をしていっても容量が増えません。一方、後者のディレクトリは運用をすると容量が増えていきます。また、FreeBSDの場合は deinstall をすると、このディレクトリがどちらも消去されます。アップグレードのときなどにトラブルになる可能性もあります。そこで、後者のディレクトリを退避させておきます。
# chown www:www /home/moodledata
# cd /usr/local/www
# mv moodledata moodledata.orig
# ln -s /home/moodledata
まず、php5-pgsql を入れます。
# make config
(MBSTRING と PGSQLにチェックをつける)
# make install
次に、httpd.conf に、Moodle 対応をします。以下の内容を httpd.conf に追加します。追加場所は、最後でいいと思います。
AcceptPathInfo On
<Directory /usr/local/www/moodle>
AllowOverride None
Order Allow,Deny
Allow from all
</Directory>
<Directory /usr/local/www/moodledata>
AllowOverride None
Order Allow,Deny
Deny from all
</Directory>
おわったら、apacheを再起動します。
Moodleの設定は、webで行ないます。
- http:///your-web-site.example.jp/moodle/ にアクセスしてください。
- 言語設定は「日本語(ja)」
- ウェブアドレスは http:///your-web-site.example.jp/moodle/
- データディレクトリは、 /usr/local/www/moodledata (←注意)
- データベースの指定
- タイプは PostgreSQL(postgres7) です。7と書いてありますが大丈夫。
- ホストサーバー: localhost(defaultのまま)
- データベース: moodledb です。(この記事の上の方で作成したときの名称)
- ユーザ: moodleuser
- パスワード: p-a-s-u-w-a-d-o
- テーブル接頭辞: mdl_ (defaultのまま)
- サーバーチェックのときに openssl について苦情をいわれるかも知れませんが、無視していいです。
- 言語パックのダウンロードで、「日本語(ja)」言語パックをダウンロードしてください。
Moodleは daemon ではないので、定期的にメール配送などをするきっかけを必要とします。通常は cron に以下の内容を設定します。(メール配送などは10分間隔にする場合)
実際には、上記の1行を書いたファイル(/tmp/crontab-moodle)を用意しておいて、
# crontab -l > crontab.now
# cat crontab.now crontab-moodle > crontab.new
# crontab crontab.new
とすればよいでしょう。これでインストール完成です。
運用をすると容量が変化するディレクトリは、次の2つです。
- /home/pgsql/data
- /home/moodledata
これらのバックアップをとっておく必要があります。
- Postgresql のバックアップは、次のようにしてとっておきましょう。
# su - pgsql
% pg_dump -Ft moodledb | gzip -c > moodledb.tar.gzmoodleのDBが飛んでしまったときは、apacheを止め、次のコマンドで、それ以前に取ってあったDBをリストアします。
# su - pgsql
% psql -l (DBの名前を確認)
% dropdb moodledb (←大変危険なコマンドなので超注意)
% psql -l (壊れたDBが消えたことを確認)
% psql -c "alter user moodleuser createdb;" template1
% psql -c "create database moodledb with template template0;" -U moodleuser template1
% psql -c "alter user moodleuser nocreatedb;" template1
% psql -l (←出来たかどうかの確認)
% gzip -dc < moodle.tar.gz | pg_restore -d moodledb - moodledataのバックアップは、普通に Unix 的な方法で取っておきましょう。
- また、Moodle自体にコースバックアップの機能があります。これを使うと、各コース毎にバックアップが作成されます。
/home/moodledata/(コース番号)/backupdata/backup-コース名-年月日-時刻.zip
このファイルをどこかに保管しておいて、コースが壊れたときにMoodleのコース設定画面からリストアをすることで復活させることもできます。
とりあえず以上です。間違いがあるかも知れないので、御指摘大歓迎です。
| 固定リンク
この記事へのコメントは終了しました。
コメント