Guide d'installation de WeBWork 2.5 sur CentOS 5
This feature was deprecated in version 2.6. For up-to-date information view Github. 9
See also: History of WeBWorK version control
Contents
Préambule
Une administratrice veut installer WeBWorK pour la toute première fois. Les étapes décrites sont décrites par quelqu'un qui n'avait pas d'expérience avec WeBWorK. Si c'était à refaire, peut-être que certaines parties seraient effectuées autrement - mais bon, le résultat est fonctionnel. On prend pour acquis une certaine connaissance de l'administration de sites web avec apache et d'administration de Linux.
Installer WebWorK sur un serveur Linux/CentOS 5
Prérequis
- Réf : http://webwork.maa.org/wiki/Installation_Manual_for_2.3_on_CentOS_5
- http://webwork.maa.org/wiki/Installation_Manual_for_2.4#Configuring_WeBWorK
Les prérequis faciles!
yum install libapreq2 yum install perl-libapreq2 yum install perl-TimeDate yum install perl-Email-Address yum install perl-GD yum install perl-LDAP yum install perl-Mail-Sender yum install perl-String-ShellQuote yum install perl-XML-Parser yum install perl-XML-Writer yum install tetex yum install tetex-latex yum install tetex-preview yum install uuid-perl yum install ghostscript yum install perl-DateTime yum install perl-Exception-Class yum install perl-SOAP-Lite yum install perl-SQL-Abstract yum install perl-PHP-Serialization yum install netpbm-progs yum install preview-latex-common yum install perl-Apache2-SOAP yum install perl-Locale-Maketext-Simple
Rpm téléchargés chez Nogin
cd /var/src/webwork/rpm_complementaires wget http://rpmbin.nogin.org/WebWork/RHEL-5/tth-3.85-1.el5.an.x86_64.rpm wget http://rpmbin.nogin.org/WebWork/RHEL-5/tth-3.85-1.el5.i386.rpm wget http://rpmbin.nogin.org/WebWork/RHEL-5/perl-Iterator-0.03-1.el5.noarch.rpm wget http://rpmbin.nogin.org/WebWork/RHEL-5/perl-Iterator-Util-0.02-1.el5.noarch.rpm ### wget http://rpmbin.nogin.org/WebWork/RHEL-5/perl-PHP-Serialization-0.33-1.el5.noarch.rpm ## Non. Finalement, on l'installe par yum. rpm -ivh *.rpm
Le reste, avec cpan
unset LANG perl -MCPAN -e shell cpan> install XML::Parser::EasyTree cpan> install Pod::WSDL cpan> install Tie::IxHash cpan> install PadWalker cpan> install UUID::Tiny cpan> quit
Vérifier les prérequis
cd /opt/webwork/ perl webwork2/bin/check_modules.pl apache2
Installer WebWork
- svn. Les sources sont dans /var/src/webwork.
Récupérer les sources
mkdir -p /var/src/webwork/downloads/ cd /var/src/webwork/downloads/ svn co http://svn.webwork.maa.org/system/trunk/webwork2 webwork2 svn co http://svn.webwork.maa.org/system/trunk/pg pg svn co http://svn.webwork.maa.org/npl/trunk/NationalProblemLibrary librairies/NationalProblemLibrary svn co http://mathjax.svn.sourceforge.net/svnroot/mathjax/trunk/mathjax mathjax
Installer dans le bon répertoire
mkdir /opt/webwork cd /var/src/webwork/downloads/ cp -rp webwork2/ /opt/webwork/ cp -rp pg /opt/webwork/ cp -rp librairies /opt/webwork/ cp -pr mathjax /opt/webwork/webwork2/htdocs/ mkdir -p /opt/webwork/courses
Assigner les bonnes propriétés et permissions
cd opt/webwork/webwork2 chown -R root:root . chmod -R u=rwX,go=rX . chgrp -R apache DATA ../courses htdocs/tmp logs tmp chmod -R g+w DATA ../courses htdocs/tmp logs tmp find DATA/ ../courses/ htdocs/tmp/ logs/ tmp/ -type d -a ! -name CVS -exec chmod g+s {} \;
Modifier l'environnement
touch /etc/profile.d/webwork.sh
Son contenu :
PATH=$PATH:/opt/webwork/webwork2/bin WEBWORK_ROOT=/opt/webwork/webwork2 PG_ROOT=/opt/webwork/pg export PATH WEBWORK_ROOT PG_ROOT
Créer des liens symboliques
cd /opt/webwork/libraries/NationalProblemLibrary ln -s /opt/webwork/libraries/NationalProblemLibrary /opt/webwork/libraries/ProblemLibrary ln -s /opt/webwork/libraries/NationalProblemLibrary /opt/webwork/libraries/database_problems
Configurer
cd /opt/webwork/webwork2/conf cp -p global.conf.dist global.conf cp -p database.conf.dist database.conf
Je suis en train de configurer le fichier /opt/webwork/webwork2/conf/global.conf. À la section Databases. Voici les différence entre global.conf et celui de la distribution :
$server_root_url = "http://webwork.mon.univ.edu"; # e.g. http://webwork.yourschool.edu $server_userID = "apache"; # e.g. www-data $server_groupID = "apache"; # e.g. wwdata $mail{smtpServer} = 'mail.mon.univ.edu'; $mail{smtpSender} = 'admin-webwork@mon.univ.edu'; $database_password = "***********"; #$dbLayoutName = "sql_moodle"; $problemLibrary{root} = "/opt/webwork/libraries/NationalProblemLibrary"; $siteDefaults{timezone} = "America/Montreal";
Identifier les locales de temps perl disponibles
perl -MDateTime::TimeZone -e 'print join "\n", DateTime::TimeZone::all_names'
Base de données
Créer la base de données pour webwork
mysql -u root -p mysql mysql> create database webwork mysql> GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, ALTER, DROP, LOCK TABLES ON webwork.* TO webworkWrite@localhost IDENTIFIED BY '**********';
l'initialiser
(Attention! Je ne suis plus certaine si c'est vraiment ça que j'ai roulé, car j'ai fait quelques essais-erreurs. SL)
/opt/webwork/webwork2/bin/wwdb_upgrade
Ouais. C'est peut-être aussi bien ceci :
/opt/webwork/webwork2/bin/old_scripts/wwdb_upgrade
Serveur web
Fichier /opt/webwork/webwork2/conf/webwork.apache2-config
Voici la différences avec le fichier /webwork.apache2-config.dist.
#Options => "FollowSymLinks", #Options => "FollowSymLinks", # Include /opt/webwork/wwqs/conf/problemserver.apache-config
Fichier /etc/httpd/sites.d/webwork.conf
<Directory /opt/webwork> AllowOverride None Options MultiViews SymLinksIfOwnerMatch IncludesNoExec <Limit GET POST OPTIONS PROPFIND> Order allow,deny Allow from all </Limit> <LimitExcept GET POST OPTIONS PROPFIND> Order deny,allow Deny from all </LimitExcept> </Directory> <VirtualHost webwork.mon.univ.edu:80> DocumentRoot "/opt/webwork" ServerName webwork.mon.univ.edu ServerAdmin admin-webwork@mon-univ.edu ErrorLog logs/webwork_80-error_log CustomLog logs/webwork_80-access_log combined </VirtualHost> Include /opt/webwork/webwork2/conf/webwork.apache2-config
Redémarrer et voilà!
service httpd restart
L'URL d'accueil de WeBWorK est alors : http://webwork.mon.univ.edu/webwork2
Problème : absence du fichier preview.sty
Latex se plaint de l'absence du fichier preview.sty.
Comment le problème s'est présenté
Je ne m'en rappelle plus.
Comment on l'a identifié
En modifiant temporairement le fichier /opt/webwork/pg/lib/WeBWorK/PG/ImageGenerator.pm pour que les erreurs latex se retrouvent dans les fichiers /var/tmp/latex.err et /var/tmp/latex.out. On l'avait (le fichier ImageGenerator.pm) modifié ainsi :
my $latexCommand = "cd $wd && $latex equation > /var/tmp/latex.out 2> /var/tmp/latex.err";
Puis, dans le fichier /var/tmp/latex.out, on voyait clairement que preview.sty not found.
Comment on l'a corrigé
yum provides */preview.sty yum install xemacs-packages-extra-20090217 cp -p ls /usr/share/xemacs/xemacs-packages/etc/auctex/latex/preview.sty /usr/share/texmf/tex/latex/amsmath/ texhash