Guide d'installation de WeBWork 2.5 sur CentOS 5

From WeBWorK_wiki
Jump to navigation Jump to search
This article has been retained as a historical document. It is not up-to-date and the formatting may be lacking. Use the information herein with caution.
This deprecated feature should no longer be used, but is still available for reasons of backwards compatibility.

This feature was deprecated in version 2.6. For up-to-date information view Github. 9


See also: History of WeBWorK version control


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

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