论文部分内容阅读
如今,把Moodle先进的教育理念洋为中用,有效融入日常教学,培养学生自主学习能力,已成为许多教师的共识和理想。那么,实现LAMP方式的自动编译安装,降低Moodle应用的技术门槛,就显得尤为重要。在实践中,我们发现,困扰教师最大的问题依然是Moodle系统的安装。笔者采用运行脚本的方法,轻而易举地架设了Moodle服务器,并且已经在日常教学中使用了一个多学期,十分稳定。本文提供清晰的脚本,解决基于Linux的Moodle支撑软件的自动编译安装问题。
一、Moodle服务器的架构方式
目前,Moodle服务器最常用的架构方式有以下两种。
1.Windows2000(或2003) EasyPHP方式。这种方式架设Moodle服务器比较容易,但存在两个问题:一是上传文件的文件名容易产生乱码或者是无法上传;二是并发请求反应很慢[1]。这两个问题严重影响了Moodle在日常教学中的实际应用。
2.Linux Apache MySQL PHP,即LAMP方式。这是架设Moodle服务器的理想方式,不但可以解决上述两个问题,而且系统稳定安全。可是,LAMP方式的编译安装很繁琐。
二、自动编译安装的脚本代码及简要注释
Linux系统的标准程序集Shell允许运行脚本。基于这个原理,我们把LAMP方式下,架设Moodle服务器所需的各个软件,包括各种配置的编译安装的脚本代码,按照一定的顺序,依据Shell脚本的格式要求,汇集在同一个脚本文件里,从而实现基于Linux的Moodle支撑软件的自动编译安装和配置。
1.声明shell脚本。
#!/bin/sh
2.Web服务器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.数据库服务器MySQL编译安装的代码,其配置参数在相关的文献[4][9]有详细介绍。
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.创建MySQL用户及目录访问权限。
groupadd mysql;
useradd -g mysql mysql;
chown -R root:mysql /usr/local/mysql;
5.初始化数据库表。
/usr/local/mysql/bin/mysql_install_db --user=mysql;
6.设置数据库目录访问权限。
chown -R mysql:mysql /usr/local/mysql/data;
7.启动MySQL。
/etc/rc.d/init.d/mysqld start;
8.设置MySQL随操作系统启动。
echo "/etc/rc.d/init.d/mysqld start"
>>/etc/rc.d/rc.local;
9.修改数据库超级用户密码的代码,这里假设新密码为“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.编译安装LibXML2库,即XML解析器。
tar xjvf libxml2-2.6.23.tar.bz2;
cd libxml2-2.6.23;
./configure
--prefix=/usr/local/libxml2;
make;make install;
cd ..;
rm -rf libxml2-2.6.23;
15.编译安装Zlib库,支持Moodle访问压缩文件。
tar zxvf Compress-Zlib-1.42.tar.gz;
cd Compress-Zlib-1.42;
perl Makefile.PL;
make;make install;
cd ..;
rm -rf Compress-Zlib-1.42;
16.编译安装PHP5。
tar zxvf php-5.2.1.tar.gz;
cd php-5.2.1;
./configure
--prefix=/usr/local/php
--with-apxs2=/usr/local/apache/bin/apxs
--with-mysql=/usr/local/mysql
--with-libxml-dir=/usr/local/libxml2
--with-gd=/usr/local/gd2
--with-jpeg-dir=/usr/local/jpeg6
--with-zlib-dir=/usr/lib/perl5/site_perl/5.8.5/
i386-linux-thread-multi/auto/Compress
--with-curl
--with-openssl
--with-libpng-dir=/usr/local/lib
--with-freetype-dir=/usr/local/freetype
--enable-mbstring;
make;make install;
cp ./php.ini-dist
/usr/local/php/lib/php.ini;
cd ..;
rm -rf php-5.2.1;
17.配置httpd.conf文件,让Apache支持PHP。
sed -i ’/^ *AddType application\/x-gzip.gz.tgz/ a
AddType application/x-httpd-php-source.phps\’
/usr/local/apache/conf/httpd.conf;
sed -i ’/^ *AddType application\/x-gzip.gz.tgz/ a
AddType application/x-httpd-php.php\’
/usr/local/apache/conf/httpd.conf;
18.设定支持PHP类型网页。
sed -i ’/^ *DirectoryIndex/s/index.html/index.php index.html/’
/usr/local/apache/conf/httpd.conf;
19.设置网站的起始位置。
sed -i ’/^DocumentRoot/s/htdocs/htdocs\/moodle/’
/usr/local/apache/conf/httpd.conf;
20.创建Moodle数据库的代码,这里Password的值要与前面设置的一致。
echo "create database moodle;"
>> create_database_file;
mysql -u root -p --password=’123456’ mysql
< create_database_file;
rm -f create_database_file;
21.修改上载文件大小的代码,根据需要修改,这里设置为20M。
sed -i ’/^post_max_size/c post_max_size = 20M’
/usr/local/php/lib/php.ini;
sed -i ’/^upload_max_filesize/c upload_max_filesize = 20M’
/usr/local/php/lib/php.ini;
22.解压缩Moodle系统文件的代码,解压缩的目标路径应与前面设置的网站的起始位置一致。
unzip moodle1.82.zip -d /usr/local/apache/htdocs/;
23.屏蔽文件名过滤,让Moodle支持中文文件名。
sed -i "/’,’_’, \$string/s/\$string =/\/\/\$string =/"
/usr/local/apache/htdocs/moodle/lib/moodlelib.php;
24.创建Moodledata目录并设置用户和权限。
mkdir /usr/local/apache/htdocs/moodledata;
chown nobody:nobody/usr/local/apache/htdocs/moodledata;
chmod 2777 /usr/local/apache/htdocs/moodledata;
25.启动Apache。
/usr/local/apache/bin/apachectl start;
26.设置Apache随Linux启动。
echo "/usr/local/apache/bin/apachectl start"
>>/etc/rc.d/rc.local;
三、实现环境和方法
1.Linux的安装选项
测试上述脚本的Linux平台是Red Hat Enterprise Linux 4.0。在Linux安装过程中,做如下配置选择:(1)防火墙的配置,选中“万维网服务”。(2)软件包安装的设置,选中“定制要安装的软件包”,在“应用程序”栏选中“图形化互联网”中的firefox;“服务器”栏的选项全都不选;“开发”栏选中“开发工具”。
2.自动编译安装方法
以root登录,进入Linux。在root目录下建一子目录,如moodle-install。下载以下软件保存在该目录。
①Compress-Zlib-1.42.tar.gz
②freetype-2.3.2.tar.gz
③gd-2.0.33.tar.gz
④httpd-2.2.6.tar.gz
⑤jpegsrc.v6b.tar.gz
⑥libpng-1.2.10.tar.bz2
⑦libxml2-2.6.23.tar.bz2
⑧moodle1.82.zip
即moodle1.82 (Chinese webquest project)
⑨mysql-5.0.22.tar.gz
⑩php-5.2.1.tar.gz
从“系统工具”运行“终端”,在终端里输入cd/root/moodle-install,进入moodle-install目录。在终端里输入gedit,打开文本编辑器编辑上述脚本代码(注意大小写和空格),并保存为install.sh。关闭文本编辑器后,再输入chmod xinstall.sh,赋予install.sh执行权限。最后,在终端里输入./install.sh,电脑开始自动编译安装和配置。
3.Moodle的运行和配置
编译完成后,在firefox浏览器里输入:http://IP地址,进入Moodle系统的配置过程。配置数据库时,服务器的主机栏应改为“127.0.0.1”,用户是“root”,密码根据脚本中的设定,本例为“123456”。配置config.php文件时,由于PHP对Moodle目录没有写权限,config.php文件无法创建,可以点击下载,保存至磁盘,再复制config.php文件到Moodle根目录下,本例为/usr/local/apache/htdocs/moodle。
2008年3月,在参加“全国首届基于Moodle的信息化课程设计与应用研讨会”上,我们深刻地感受到此方法和脚本对一线教师很有实用价值。当然,我们的脚本和方法依然不完善,希望与各位同仁在共享和交流中将其完善。
参考文献
[1]黎加厚.让开源软件走进学校教育.中小学信息技术教育,2007,6.
[2](美)Rich Bowen等著陈德华、周艳、王涛译.Apache管理员手册,2003,1.
[3]林晓飞、倪春胜、张军编著.Red Hat Enterprise Linux 4.0系统配置与管理,2007,1.
[4](美) MySQL AB著岳阳等译.MySQL 5 管理员标准指南及语言参考(第二版),2007,1.
[5]http://moodle.org.
[6]http://www.moodlechina.org.
[7]http://www.easyphp.org.
[8]http://www.php.net.
[9]http://www.mysql.com.
[10]http://www.apache.org.
[11]http://www.chinaitlab.com.
一、Moodle服务器的架构方式
目前,Moodle服务器最常用的架构方式有以下两种。
1.Windows2000(或2003) EasyPHP方式。这种方式架设Moodle服务器比较容易,但存在两个问题:一是上传文件的文件名容易产生乱码或者是无法上传;二是并发请求反应很慢[1]。这两个问题严重影响了Moodle在日常教学中的实际应用。
2.Linux Apache MySQL PHP,即LAMP方式。这是架设Moodle服务器的理想方式,不但可以解决上述两个问题,而且系统稳定安全。可是,LAMP方式的编译安装很繁琐。
二、自动编译安装的脚本代码及简要注释
Linux系统的标准程序集Shell允许运行脚本。基于这个原理,我们把LAMP方式下,架设Moodle服务器所需的各个软件,包括各种配置的编译安装的脚本代码,按照一定的顺序,依据Shell脚本的格式要求,汇集在同一个脚本文件里,从而实现基于Linux的Moodle支撑软件的自动编译安装和配置。
1.声明shell脚本。
#!/bin/sh
2.Web服务器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.数据库服务器MySQL编译安装的代码,其配置参数在相关的文献[4][9]有详细介绍。
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.创建MySQL用户及目录访问权限。
groupadd mysql;
useradd -g mysql mysql;
chown -R root:mysql /usr/local/mysql;
5.初始化数据库表。
/usr/local/mysql/bin/mysql_install_db --user=mysql;
6.设置数据库目录访问权限。
chown -R mysql:mysql /usr/local/mysql/data;
7.启动MySQL。
/etc/rc.d/init.d/mysqld start;
8.设置MySQL随操作系统启动。
echo "/etc/rc.d/init.d/mysqld start"
>>/etc/rc.d/rc.local;
9.修改数据库超级用户密码的代码,这里假设新密码为“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.编译安装LibXML2库,即XML解析器。
tar xjvf libxml2-2.6.23.tar.bz2;
cd libxml2-2.6.23;
./configure
--prefix=/usr/local/libxml2;
make;make install;
cd ..;
rm -rf libxml2-2.6.23;
15.编译安装Zlib库,支持Moodle访问压缩文件。
tar zxvf Compress-Zlib-1.42.tar.gz;
cd Compress-Zlib-1.42;
perl Makefile.PL;
make;make install;
cd ..;
rm -rf Compress-Zlib-1.42;
16.编译安装PHP5。
tar zxvf php-5.2.1.tar.gz;
cd php-5.2.1;
./configure
--prefix=/usr/local/php
--with-apxs2=/usr/local/apache/bin/apxs
--with-mysql=/usr/local/mysql
--with-libxml-dir=/usr/local/libxml2
--with-gd=/usr/local/gd2
--with-jpeg-dir=/usr/local/jpeg6
--with-zlib-dir=/usr/lib/perl5/site_perl/5.8.5/
i386-linux-thread-multi/auto/Compress
--with-curl
--with-openssl
--with-libpng-dir=/usr/local/lib
--with-freetype-dir=/usr/local/freetype
--enable-mbstring;
make;make install;
cp ./php.ini-dist
/usr/local/php/lib/php.ini;
cd ..;
rm -rf php-5.2.1;
17.配置httpd.conf文件,让Apache支持PHP。
sed -i ’/^ *AddType application\/x-gzip.gz.tgz/ a
AddType application/x-httpd-php-source.phps\’
/usr/local/apache/conf/httpd.conf;
sed -i ’/^ *AddType application\/x-gzip.gz.tgz/ a
AddType application/x-httpd-php.php\’
/usr/local/apache/conf/httpd.conf;
18.设定支持PHP类型网页。
sed -i ’/^ *DirectoryIndex/s/index.html/index.php index.html/’
/usr/local/apache/conf/httpd.conf;
19.设置网站的起始位置。
sed -i ’/^DocumentRoot/s/htdocs/htdocs\/moodle/’
/usr/local/apache/conf/httpd.conf;
20.创建Moodle数据库的代码,这里Password的值要与前面设置的一致。
echo "create database moodle;"
>> create_database_file;
mysql -u root -p --password=’123456’ mysql
< create_database_file;
rm -f create_database_file;
21.修改上载文件大小的代码,根据需要修改,这里设置为20M。
sed -i ’/^post_max_size/c post_max_size = 20M’
/usr/local/php/lib/php.ini;
sed -i ’/^upload_max_filesize/c upload_max_filesize = 20M’
/usr/local/php/lib/php.ini;
22.解压缩Moodle系统文件的代码,解压缩的目标路径应与前面设置的网站的起始位置一致。
unzip moodle1.82.zip -d /usr/local/apache/htdocs/;
23.屏蔽文件名过滤,让Moodle支持中文文件名。
sed -i "/’,’_’, \$string/s/\$string =/\/\/\$string =/"
/usr/local/apache/htdocs/moodle/lib/moodlelib.php;
24.创建Moodledata目录并设置用户和权限。
mkdir /usr/local/apache/htdocs/moodledata;
chown nobody:nobody/usr/local/apache/htdocs/moodledata;
chmod 2777 /usr/local/apache/htdocs/moodledata;
25.启动Apache。
/usr/local/apache/bin/apachectl start;
26.设置Apache随Linux启动。
echo "/usr/local/apache/bin/apachectl start"
>>/etc/rc.d/rc.local;
三、实现环境和方法
1.Linux的安装选项
测试上述脚本的Linux平台是Red Hat Enterprise Linux 4.0。在Linux安装过程中,做如下配置选择:(1)防火墙的配置,选中“万维网服务”。(2)软件包安装的设置,选中“定制要安装的软件包”,在“应用程序”栏选中“图形化互联网”中的firefox;“服务器”栏的选项全都不选;“开发”栏选中“开发工具”。
2.自动编译安装方法
以root登录,进入Linux。在root目录下建一子目录,如moodle-install。下载以下软件保存在该目录。
①Compress-Zlib-1.42.tar.gz
②freetype-2.3.2.tar.gz
③gd-2.0.33.tar.gz
④httpd-2.2.6.tar.gz
⑤jpegsrc.v6b.tar.gz
⑥libpng-1.2.10.tar.bz2
⑦libxml2-2.6.23.tar.bz2
⑧moodle1.82.zip
即moodle1.82 (Chinese webquest project)
⑨mysql-5.0.22.tar.gz
⑩php-5.2.1.tar.gz
从“系统工具”运行“终端”,在终端里输入cd/root/moodle-install,进入moodle-install目录。在终端里输入gedit,打开文本编辑器编辑上述脚本代码(注意大小写和空格),并保存为install.sh。关闭文本编辑器后,再输入chmod xinstall.sh,赋予install.sh执行权限。最后,在终端里输入./install.sh,电脑开始自动编译安装和配置。
3.Moodle的运行和配置
编译完成后,在firefox浏览器里输入:http://IP地址,进入Moodle系统的配置过程。配置数据库时,服务器的主机栏应改为“127.0.0.1”,用户是“root”,密码根据脚本中的设定,本例为“123456”。配置config.php文件时,由于PHP对Moodle目录没有写权限,config.php文件无法创建,可以点击下载,保存至磁盘,再复制config.php文件到Moodle根目录下,本例为/usr/local/apache/htdocs/moodle。
2008年3月,在参加“全国首届基于Moodle的信息化课程设计与应用研讨会”上,我们深刻地感受到此方法和脚本对一线教师很有实用价值。当然,我们的脚本和方法依然不完善,希望与各位同仁在共享和交流中将其完善。
参考文献
[1]黎加厚.让开源软件走进学校教育.中小学信息技术教育,2007,6.
[2](美)Rich Bowen等著陈德华、周艳、王涛译.Apache管理员手册,2003,1.
[3]林晓飞、倪春胜、张军编著.Red Hat Enterprise Linux 4.0系统配置与管理,2007,1.
[4](美) MySQL AB著岳阳等译.MySQL 5 管理员标准指南及语言参考(第二版),2007,1.
[5]http://moodle.org.
[6]http://www.moodlechina.org.
[7]http://www.easyphp.org.
[8]http://www.php.net.
[9]http://www.mysql.com.
[10]http://www.apache.org.
[11]http://www.chinaitlab.com.