Installation Manual for 2.16 on Ubuntu
These instructions are a work in progress.
These instructions cover the installation of WeBWorK 2.16 for Ubuntu Server 20.04 LTS, XXX and XXX. Specific OS instruction are embedded within this document
If you are just upgrading WeBWorK, especially if you already have existing WeBWorK courses, see Upgrading_WeBWorK_with_Github.
Also, it is assumed that you have an operating system installed. You can visit for instructions on installing the operating system or google how to install your favorite linux flavor. Also make sure the OS is upgraded to all patches within the version you are running.
Contents
Notation
First some short comments on notation we will be using. We will use <key>
to indicate that you should press a specific key (e.g. <Enter>
, <Tab>
, <F12>
, etc.). Sometimes we will also use e.g. <wwadmin password>
to indicate you have to enter the wwadmin password.
^
will indicate the <Ctrl>
key so e.g. ^X
is really shorthand for <Ctrl> <X>
, i.e. press the Ctrl key and hit the X key.
Install Software Packages
Ubuntu Software Packages
On Ubuntu and other Debian linuxes, the following instructions will get needed software packages installed.
Here is the list of Ubuntu packages that need to be installed.
apache2
cpanminus
curl
dvipng
gcc
git
libapache2-request-perl
libarray-utils-perl
libcrypt-ssleay-perl
libdatetime-perl
libdata-dump-perl
libemail-address-xs-perl
libemail-sender-perl
libexception-class-perl
libextutils-xsbuilder-perl
libfile-find-rule-perl-perl
libgd-perl
libhtml-scrubber-perl
libiterator-perl
libiterator-util-perl
libjson-perl
liblocale-maketext-lexicon-perl
libmime-tools-perl
libmoox-options-perl
libnet-ip-perl
libnet-ldap-perl
libnet-oauth-perl
libossp-uuid-perl
libpadwalker-perl
libpath-class-perl
libphp-serialization-perl
libpod-wsdl-perl
libsoap-lite-perl
libsql-abstract-perl
libstring-shellquote-perl
libtemplate-perl
libtext-csv-perl
libtimedate-perl
libuuid-tiny-perl
libxml-parser-easytree-perl
libxml-parser-perl
libxml-writer-perl
make
netpbm
preview-latex-style
texlive
texlive-latex-extra
unzip
To install all of these packages in one fell swoop, first become root:
$ sudo su [sudo] password for wwadmin: <wwadmin password>
and then run the command (obviously you want to use cut and paste)
# apt install apache2 cpanminus curl dvipng gcc git libapache2-request-perl \ libarray-utils-perl libcrypt-ssleay-perl libdancer-perl libdancer-plugin-database-perl \ libdata-dump-perl libdatetime-perl libemail-address-xs-perl libemail-sender-perl \ libexception-class-perl libextutils-xsbuilder-perl libfile-find-rule-perl-perl \ libgd-perl libhtml-scrubber-perl libiterator-perl libiterator-util-perl libjson-perl \ liblocale-maketext-lexicon-perl libmime-tools-perl libmoox-options-perl libnet-ip-perl libnet-ldap-perl \ libnet-oauth-perl libossp-uuid-perl libpadwalker-perl libpath-class-perl \ libphp-serialization-perl libpod-wsdl-perl \ libsoap-lite-perl libsql-abstract-perl libstring-shellquote-perl libtemplate-perl \ libtext-csv-perl libtimedate-perl libuuid-tiny-perl libxml-parser-easytree-perl \ libxml-parser-perl libxml-writer-perl make netpbm \ preview-latex-style texlive texlive-latex-extra unzip
If prompted, you can always accept the default (hit <Enter>
). When the process finishes, enter
# exit
to return to a regular user.
Installation of Other Perl Modules with cpanm
We will use cpanm
to install other perl modules. For example, one module, Statistics::R::IO
that will be needed is not in a standard package. To install this
cpanm Statistics::R::IO
Below, we will determine other perl modules that will need to be installed with this method.
Apache2 Modules and mod perl
The following loads needed apache modules.
enabling info.conf and status.conf in Ubuntu
We enable the info module. Acting as root
in a terminal window enter
$ sudo su [sudo] password for wwadmin: <wwadmin password> # a2enmod info
Next we make a copy of the configuration files we will be editing for safekeeping.
# cd /etc/apache2/mods-available
# cp info.conf info.conf.bak1 # cp status.conf status.conf.bak1
# exit $
Now we will edit configuration files info.conf
and status.conf
to allow us to view information about the setup and performance of the web server. Note that this is not absolutely necessary but it can be very useful. You can use your favorite editor but we will give instructions assuming you are using nano
. Note that you have to be root to edit these files. First we edit info.conf
$ cd /etc/apache2/mods-available $ sudo nano info.conf [sudo] password for wwadmin: <wwadmin password>
I suggest you allow access to server information from e.g. your department domain. To do this uncomment (i.e. remove the #
from)
Require ip 192.0.2.0/24
and then replace 192.0.2.0/24
by .math.yourschool.edu
where of course you should edit .math.yourschool.edu
appropriately.
Then save the file and quit (press ^X
, Y
, <Enter>
).
Now we edit status.conf
$ cd /etc/apache2/mods-available $ sudo nano status.conf [sudo] password for wwadmin: <wwadmin password>
Edit the
#Require ip 192.0.2.0/24
line just as you did for info.conf
.
Then save the file and quit. And restart Apache so that the above changes take effect
$ sudo systemctl restart apache2 password:<wwadmin password>