如今,把Moodle先進(jìn)的教育理念洋為中用,有效融入日常教學(xué),培養(yǎng)學(xué)生自主學(xué)習(xí)能力,已成為許多教師的共識(shí)和理想。那么,實(shí)現(xiàn)LAMP方式的自動(dòng)編譯安裝,降低Moodle應(yīng)用的技術(shù)門檻,就顯得尤為重要。在實(shí)踐中,我們發(fā)現(xiàn),困擾教師最大的問題依然是Moodle系統(tǒng)的安裝。筆者采用運(yùn)行腳本的方法,輕而易舉地架設(shè)了Moodle服務(wù)器,并且已經(jīng)在日常教學(xué)中使用了一個(gè)多學(xué)期,十分穩(wěn)定。本文提供清晰的腳本,解決基于Linux的Moodle支撐軟件的自動(dòng)編譯安裝問題。
一、Moodle服務(wù)器的架構(gòu)方式
目前,Moodle服務(wù)器最常用的架構(gòu)方式有以下兩種。
1.Windows2000(或2003)+EasyPHP方式。這種方式架設(shè)Moodle服務(wù)器比較容易,但存在兩個(gè)問題:一是上傳文件的文件名容易產(chǎn)生亂碼或者是無法上傳;二是并發(fā)請(qǐng)求反應(yīng)很慢[1]。這兩個(gè)問題嚴(yán)重影響了Moodle在日常教學(xué)中的實(shí)際應(yīng)用。
2.Linux+Apache+MySQL+PHP,即LAMP方式。這是架設(shè)Moodle服務(wù)器的理想方式,不但可以解決上述兩個(gè)問題,而且系統(tǒng)穩(wěn)定安全??墒?,LAMP方式的編譯安裝很繁瑣。
二、自動(dòng)編譯安裝的腳本代碼及簡(jiǎn)要注釋
Linux系統(tǒng)的標(biāo)準(zhǔn)程序集Shell允許運(yùn)行腳本?;谶@個(gè)原理,我們把LAMP方式下,架設(shè)Moodle服務(wù)器所需的各個(gè)軟件,包括各種配置的編譯安裝的腳本代碼,按照一定的順序,依據(jù)Shell腳本的格式要求,匯集在同一個(gè)腳本文件里,從而實(shí)現(xiàn)基于Linux的Moodle支撐軟件的自動(dòng)編譯安裝和配置。
1.聲明shell腳本。
#!/bin/sh
2.Web服務(wù)器Apache編譯安裝的代碼,配置其安裝路徑是/usr/local/apache。
tar -zxvf httpd-2.2.6.tar.gz;
cd httpd-2.2.6;
./configure
--prefix=/usr/local/apache
--enable-so;
make;make install;
cd ..;
rm -rf httpd-2.2.6;
3.數(shù)據(jù)庫服務(wù)器MySQL編譯安裝的代碼,其配置參數(shù)在相關(guān)的文獻(xiàn)[4][9]有詳細(xì)介紹。
tar xzvf mysql-5.0.22.tar.gz;
cd mysql-5.0.22;
./configure
--prefix=/usr/local/mysql
--localstatedir=/usr/local/mysql/data\\ --with-unix-socket-path=/usr/local/mysql/tmp/mysql.sock
--with-comment=Source
--with-server-suffix=-Comsenz
--with-mysqld-user=mysql
--without-debug
--with-big-tables
--with-charset=utf8
--with-collation=utf8_general_ci
--with-extra-charsets=all
--with-pthread
--enable-static
--enable-thread-safe-client
--with-client-ldflags=-all-static
--with-mysqld-ldflags=-all-static
--enable-assembler
--without-isam
--without-innodb
--without-ndb-debug;
make;make install;
cd ..;
rm -rf mysql-5.0.22;
cp /usr/local/mysql/share/mysql/my-huge.cnf
/etc/my.cnf;
cp /usr/local/mysql/share/mysql/mysql.server
/etc/rc.d/init.d/mysqld;
chmod 755 /etc/rc.d/init.d/mysqld;
4.創(chuàng)建MySQL用戶及目錄訪問權(quán)限。
groupadd mysql;
useradd -g mysql mysql;
chown -R root:mysql /usr/local/mysql;
5.初始化數(shù)據(jù)庫表。
/usr/local/mysql/bin/mysql_install_db --user=mysql;
6.設(shè)置數(shù)據(jù)庫目錄訪問權(quán)限。
chown -R mysql:mysql /usr/local/mysql/data;
7.啟動(dòng)MySQL。
/etc/rc.d/init.d/mysqld start;
8.設(shè)置MySQL隨操作系統(tǒng)啟動(dòng)。
echo "/etc/rc.d/init.d/mysqld start"
>>/etc/rc.d/rc.local;
9.修改數(shù)據(jù)庫超級(jí)用戶密碼的代碼,這里假設(shè)新密碼為“123456”,可自行修改。
/usr/local/mysql/bin/mysqladmin
-u root -p --password='' password 123456;
10.編譯安裝jpeg6庫,支持GD生成jpeg格式圖像。
mkdir /usr/local/jpeg6;
mkdir /usr/local/jpeg6/bin;
mkdir /usr/local/jpeg6/lib;
mkdir /usr/local/jpeg6/include;
mkdir /usr/local/jpeg6/man;
mkdir /usr/local/jpeg6/man/man1;
tar -zxvf jpegsrc.v6b.tar.gz;
cd jpeg-6b;
./configure
--prefix=/usr/local/jpeg6
--enable-shared --enable-static;
make;make install;
cd ..;
rm -rf jpeg-6b;
11.編譯安裝Libpng庫,支持程序訪問PNG格式圖像文件。
tar -jxvf libpng-1.2.10.tar.bz2;
cd libpng-1.2.10;
cp scripts/makefile.std makefile;
make;make install;
cd ..;
rm -rf libpng-1.2.10;
12.安裝FreeType字體引擎。
tar -zxvf freetype-2.3.2.tar.gz;
cd freetype-2.3.2;
./configure
--prefix=/usr/local/freetype;
make;make install;
cd ..;
rm -rf freetype-2.3.2;
13.編譯安裝GD2庫,支持Moodle處理圖片。
tar xzvf gd-2.0.33.tar.gz;
cd gd-2.0.33;
./configure
--prefix=/usr/local/gd2
--with-jpeg=/usr/local/jpeg6
--with-png
--with-zlib
--with-freetype=/usr/local/freetype;
make;make install;
cd ..;
rm -rf gd-2.0.33;
14.編譯安裝LibXM