Installation Manual for 2.16 on Ubuntu

From WeBWorK_wiki
Revision as of 15:45, 14 May 2021 by Pstaabp (talk | contribs)
Jump to navigation Jump to search
Construction.png This article is under construction. Use the information herein with caution until this message is removed.

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.


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.

  1. apache2
  2. cpanminus
  3. curl
  4. dvipng
  5. gcc
  6. git
  7. libapache2-request-perl
  8. libarray-utils-perl
  9. libcrypt-ssleay-perl
  10. libdatetime-perl
  11. libdata-dump-perl
  12. libemail-address-xs-perl
  13. libemail-sender-perl
  14. libexception-class-perl
  15. libextutils-xsbuilder-perl
  16. libfile-find-rule-perl-perl
  17. libgd-perl
  18. libhtml-scrubber-perl
  19. libiterator-perl
  20. libiterator-util-perl
  21. libjson-perl
  22. liblocale-maketext-lexicon-perl
  23. libmime-tools-perl
  24. libmoox-options-perl
  25. libnet-ip-perl
  26. libnet-ldap-perl
  27. libnet-oauth-perl
  28. libossp-uuid-perl
  29. libpadwalker-perl
  30. libpath-class-perl
  31. libphp-serialization-perl
  32. libpod-wsdl-perl
  33. libsoap-lite-perl
  34. libsql-abstract-perl
  35. libstring-shellquote-perl
  36. libtemplate-perl
  37. libtext-csv-perl
  38. libtimedate-perl
  39. libuuid-tiny-perl
  40. libxml-parser-easytree-perl
  41. libxml-parser-perl
  42. libxml-writer-perl
  43. make
  44. netpbm
  45. preview-latex-style
  46. texlive
  47. texlive-latex-extra
  48. 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

and then replace by where of course you should edit 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

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>