Prerelease notes for WeBWorK 2.18

From WeBWorK_wiki
Revision as of 12:17, 24 November 2022 by Dglin (talk | contribs) (→‎Install the necessary packages: note about mojo version)
Jump to navigation Jump to search

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;
}

==

Using apache

Using hypnotoad directly