Prerelease notes for WeBWorK 2.18
Note: WeBWorK 2.18 is not released. This document is for developers and will be updated to release notes at the appropriate time.
WeBWorK 2.18 makes a huge change from previous versions in that it removes all code needed for mod_perl, a codebase that has grown stale and nearly all linux distributions have stopped supporting it. Instead, the server part of WeBWorK is now handled with Mojolicious and it is recommended to use hypnotoad, a full web server written in perl. There are instructions to deploying this in the installation and upgrade notes.
Installing/Upgrading to WeBWorK 2.18 in Ubuntu 2022.04 LTS
Install Ubuntu 2022.04 LTS or upgrade to it. (Some links for doing this)
Install the necessary packages
(update list from 2.17 instructions)
Need a new enough version of Mojolicious to support curfile (the package from yum in RHEL 7 is too old)
Install packages from cpan
There are now a few options to running the hypnotoad server
Using nginx
To install nginx use the package with
$ sudo apt update $ sudo apt install nginx
This should start nginx automatically. Check that it is with
$ sudo systemctl status nginx
and you should see something similar to
$ nginx.service - A high performance web server and a reverse proxy server $ Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled) $ Active: active (running) since Sat 2022-11-12 13:36:43 UTC; 1min 46s ago
If nginx is not running, start it with
$ sudo systemctl start nginx
To configure nginx for your webserver, you will need to create a configuration file for your server in /etc/nginx/conf.d/
If your servername is myschool.edu
, then this file must be called myschool.edu.conf
. The following is an example configuration file
server { listen 80 default_server; listen [::]:80 default_server; root /var/www/html; server_name myschool.edu; # If you have SSL set up listen 443 ssl; # managed by Certbot # RSA certificate that was created with Let's Encrypt ssl_certificate /etc/letsencrypt/live/peterstaab.me/fullchain.pem; # managed by Certbot ssl_certificate_key /etc/letsencrypt/live/peterstaab.me/privkey.pem; # managed by Certbot include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot # Redirect non-https traffic to https if ($scheme != "https") { return 301 https://$host$request_uri; } # managed by Certbot # Add index.php to the list if you are using PHP index index.html index.htm; location / { # First attempt to serve request as file, then # as directory, then fall back to displaying a 404. try_files $uri $uri/ =404; } # the following is the distribution file. If you have made changes # to this, remove the .dist from the filename. include /opt/webwork/webwork2/conf/webwork2.nginx.dist.conf; }