Difference between revisions of "Prerelease notes for WeBWorK 2.18"

From WeBWorK_wiki
Jump to navigation Jump to search
(Created page with "'''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...")
 
(Redirect to 2.18 Release Notes)
Tag: New redirect
 
(2 intermediate revisions by 2 users not shown)
Line 1: Line 1:
  +
#REDIRECT [[Release_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.'''
 
'''Note: WeBWorK 2.18 is not released. This document is for developers and will be updated to release notes at the appropriate time.'''
   
Line 10: Line 11:
   
 
(update list from 2.17 instructions)
 
(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 ===
 
=== Install packages from cpan ===
Line 18: Line 21:
   
 
To install nginx use the package with
 
To install nginx use the package with
$ sudo apt update
+
$ sudo apt update
$ sudo apt install nginx
+
$ 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 <code>/etc/nginx/conf.d/</code>
  +
  +
If your servername is <code>myschool.edu</code>, then this file '''must''' be called <code>myschool.edu.conf</code>. 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 apache ====

Latest revision as of 17:16, 30 March 2023

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