2008年3月3日 星期一

[moodle][apache][網管]moodle 搬家到獨立網址

這是一篇筆記!

為了因應未來的系統調整,要先將 moodle 移至獨立網址。目前先以同一台機器上的虛擬主機處理。大致步驟如下:

  • 新增 DNS 紀錄,分配 IP 與 Domain 。
  • 開通防火牆規則。
  • 建立虛擬網卡並指定 IP 。
  • 建立 apache 虛擬主機。
  • 複製資料庫。
  • 搬移 moodle 目錄及更改設定檔。
  • moodle 改用 ldap 認證。

其中, DNS 、防火牆與 ldap 現在不歸我管,這裡只做建立虛擬主機與 moodle 搬家的筆記。

建立虛擬網卡

目前主機還是 Mandriva ,其他 Linux 系統或有不同。

首先,在 /etc/sysconfig/networking/devices 建立一個 ifcfg-eth0:2 的檔案如下:


 
ifcfg-eth0:2
BOOTPROTO=none
DEVICE=eth0:2
NETMASK= 255.255 .255 .0
MTU= ""
BROADCAST= 192.168 .5 .255
ONPARENT=yes
IPADDR= 192.168 .5 .23
NETWORK= 192.168 .5 .0
ONBOOT=yes

因為這已經是網卡 bind 第三個 IP 了,所以是 ifcfg-eth0:2 。

然後,複製一份到 /etc/sysconfig/network-scripts 目錄:


 
cp ifcfg-eth0:2 /etc/sysconfig/network-scripts/

重新開機,然後用 ifconfig 確認一下 eth0:2 是否有跑起來。

建立 apache 虛擬主機

這裡使用 IP-base Virtual host 。因為 moodle 的身份認證要使用 https ,要簽一個專用的憑證給他,所以才會需要一個獨立的 IP 。

在 /etc/httpd/conf/vhosts.d/ 目錄加入 moodle.conf 設定檔:


 
moodle.conf
<VirtualHost 192.168 .5 .23:80>
DocumentRoot "/home/moodle/html"
ServerName moodle.nlhs.tyc.edu.tw
<Directory "/home/moodle/html">
allow from all
AllowOverride All
DirectoryIndex index.php index.htm
SetEnvIf User-Agent ^Baidu baidu
Deny from env=baidu
SetEnvIf User-Agent ^Sogou sogou
Deny from env=sogou
</Directory>
ErrorLog /home/moodle/logs/error_log
TransferLog /home/moodle/logs/access_log
</VirtualHost>

<VirtualHost 192.168 .5 .23:443>
DocumentRoot "/home/moodle/html"
ServerName moodle.nlhs.tyc.edu.tw
SSLEngine on
SSLCertificateFile /etc/ssl/apache/moodle.nlhs.tyc.edu.tw_NLHSCA.crt
SSLCertificateKeyFile /etc/ssl/apache/moodle.nlhs.tyc.edu.tw_NLHSCA.key
<Directory "/home/moodle/html">
allow from all
AllowOverride All
DirectoryIndex index.php index.htm
SetEnvIf User-Agent ^Baidu baidu
Deny from env=baidu
SetEnvIf User-Agent ^Sogou sogou
Deny from env=sogou
</Directory>
ErrorLog /home/moodle/logs/ssl_error_log
TransferLog /home/moodle/logs/ssl_access_log
</VirtualHost>

先用 /etc/rc.d/init.d/httpd configtest_vhosts 檢查一下設定檔有沒有問題,然後重新啟動 apache 。

複製資料庫

為免生意外,將原來的 moodle 資料庫複製一份,並讓原來使用 moodle 資料庫的 dbuser 有對新資料庫有相同的存取權限。這部份我是用 phpMyAdmin 處理,可以輕鬆完成,略過不表。

搬移 moodle 目錄及更改設定檔

新的虛擬主機是放在 /home/moodle 下,要搬移的目錄有兩個:

/var/www/moodledata 搬到 /home/moodle/moodledata , /var/www/html/moodle 搬到 /home/moodle/html 下。這裡要配合前面的虛擬主機設定檔。

然後,修改 /home/moodle/html/config.php 裡的設定:


 
修改 moodle 的 config.php
<?php
// 前略
// 修改下面這三行
$CFG->wwwroot = 'http://moodle.nlhs.tyc.edu.tw';
$CFG->dirroot = '/home/moodle/html';
$CFG->dataroot = '/home/moodle/moodledata';
// 後略
?>

這時應該可以用新網址連至 moodle 了。

moodle 改用 ldap 認證

huihui 已經建好了 ldap ,所以改用 ldap 認證。這裡要改兩個地方:

moodle 部份: 系統管理 > 帳號名稱 > 身份驗證選項 ,改用「使用一個LDAP伺服器」並填入相關參數。

資料庫部份: 要把之前使用 imap 驗證的使用者全改用 ldap 驗證,下面一個 SQL 就可以搞定:


 
改用 ldap 認證
UPDATE `mdl_user` SET `auth`='ldap' WHERE `auth`='imap';

以上,收工。

沒有留言:

張貼留言