Self hosting - can't open books' dashboards

Hi
I’ve been experimenting with PressBooks - looking to see what it can do. (It’s entirely possible after this testing, we get a hosted version …) I’ve tried twice to get it done, first in a subdirectory of a site & then in a subdomain. I’ve used the latest version of everything as of today.
The site has php. 8.0 enabled.

  • I can see the main network dashboard.
  • I’ve only got McLuhan & Aldine themes network enabled.
  • The only plugin I’ve got activated & networked enabled is Pressbooks
  • I can see the Pressbooks Dashboard & the press book website works fine.
  • I’ve been able to create books & attach users to them

BUT
If I try to open a book’s dashboard I get an error message telling me there’s been a critical error on the website.
I can open the book once it’s been created - but clicking the ‘edit’ button on the page brings the same error.
I’ve tried various options to get to the book’s dashboard page, but can’t get to it.
[The critical error crops up a few other times, but a page refresh gets rid of it]

I’m getting somewhat baffled.

hi @Emmadw sounds frustrating! There are two things that would be helpful for anyone who wanted to help you debug this. First, can you share the output of your diagnostics page (available at https://YOURNETWORKURL/wp-admin/options.php?page=pressbooks_diagnostics). Second, can you turn debugging on (Debugging in WordPress – WordPress.org Documentation) and provide the output of any error logs or stack traces that you see, either on the screen or in the error log file?

Will do - and, just to add, I"ve tested a second multiuser network - without Pressbooks - works as expected.

The diagnostics page just repeated the fact I’d had a critical error.

The log file is below - I’ve tried to open a couple of books’ dashboards a couple of times.

[02-Feb-2023 20:25:31 UTC] PHP Fatal error: Uncaught Error: Call to undefined function Pressbooks\Utility\exec() in /home/emmadw/pressbooks.emmadukewilliams.co.uk/wp-content/plugins/pressbooks/inc/utility/namespace.php:322
Stack trace:
#0 /home/emmadw/pressbooks.emmadukewilliams.co.uk/wp-content/plugins/pressbooks/inc/modules/export/prince/class-filters.php(107): Pressbooks\Utility\check_xmllint_install()
#1 /home/emmadw/pressbooks.emmadukewilliams.co.uk/wp-content/plugins/pressbooks/inc/modules/themeoptions/class-admin.php(67): Pressbooks\Modules\Export\Prince\Filters::hasDependencies()
#2 /home/emmadw/pressbooks.emmadukewilliams.co.uk/wp-content/plugins/pressbooks/inc/modules/themeoptions/class-admin.php(198): Pressbooks\Modules\ThemeOptions\Admin->getTabs()
#3 /home/emmadw/pressbooks.emmadukewilliams.co.uk/wp-content/plugins/pressbooks/inc/class-styles.php(637): Pressbooks\Modules\ThemeOptions\Admin->clearCache()
#4 /home/emmadw/pressbooks.emmadukewilliams.co.uk/wp-content/plugins/pressbooks/hooks.php(260): Pressbooks\Styles->maybeUpdateStylesheets()
#5 /home/emmadw/pressbooks.emmadukewilliams.co.uk/wp-includes/class-wp-hook.php(308): {closure}()
#6 /home/emmadw/pressbooks.emmadukewilliams.co.uk/wp-includes/class-wp-hook.php(332): WP_Hook->apply_filters()
#7 /home/emmadw/pressbooks.emmadukewilliams.co.uk/wp-includes/plugin.php(517): WP_Hook->do_action()
#8 /home/emmadw/pressbooks.emmadukewilliams.co.uk/wp-settings.php(617): do_action()
#9 /home/emmadw/pressbooks.emmadukewilliams.co.uk/wp-config.php(115): require_once(‘/home/emmadw/pr…’)
#10 /home/emmadw/pressbooks.emmadukewilliams.co.uk/wp-load.php(50): require_once(‘/home/emmadw/pr…’)
#11 /home/emmadw/pressbooks.emmadukewilliams.co.uk/wp-admin/admin.php(34): require_once(‘/home/emmadw/pr…’)
#12 /home/emmadw/pressbooks.emmadukewilliams.co.uk/wp-admin/index.php(10): require_once(‘/home/emmadw/pr…’)
#13 {main}
thrown in /home/emmadw/pressbooks.emmadukewilliams.co.uk/wp-content/plugins/pressbooks/inc/utility/namespace.php on line 322
[02-Feb-2023 20:25:39 UTC] PHP Fatal error: Uncaught Error: Call to undefined function Pressbooks\Utility\exec() in /home/emmadw/pressbooks.emmadukewilliams.co.uk/wp-content/plugins/pressbooks/inc/utility/namespace.php:322
Stack trace:
#0 /home/emmadw/pressbooks.emmadukewilliams.co.uk/wp-content/plugins/pressbooks/inc/modules/export/prince/class-filters.php(107): Pressbooks\Utility\check_xmllint_install()
#1 /home/emmadw/pressbooks.emmadukewilliams.co.uk/wp-content/plugins/pressbooks/inc/modules/themeoptions/class-admin.php(67): Pressbooks\Modules\Export\Prince\Filters::hasDependencies()
#2 /home/emmadw/pressbooks.emmadukewilliams.co.uk/wp-content/plugins/pressbooks/inc/modules/themeoptions/class-admin.php(110): Pressbooks\Modules\ThemeOptions\Admin->getTabs()
#3 /home/emmadw/pressbooks.emmadukewilliams.co.uk/wp-includes/class-wp-hook.php(308): Pressbooks\Modules\ThemeOptions\Admin->loadTabs()
#4 /home/emmadw/pressbooks.emmadukewilliams.co.uk/wp-includes/class-wp-hook.php(332): WP_Hook->apply_filters()
#5 /home/emmadw/pressbooks.emmadukewilliams.co.uk/wp-includes/plugin.php(517): WP_Hook->do_action()
#6 /home/emmadw/pressbooks.emmadukewilliams.co.uk/wp-admin/admin.php(175): do_action()
#7 /home/emmadw/pressbooks.emmadukewilliams.co.uk/wp-admin/index.php(10): require_once(‘/home/emmadw/pr…’)
#8 {main}
thrown in /home/emmadw/pressbooks.emmadukewilliams.co.uk/wp-content/plugins/pressbooks/inc/utility/namespace.php on line 322
[02-Feb-2023 20:25:42 UTC] PHP Fatal error: Uncaught Error: Call to undefined function Pressbooks\Utility\exec() in /home/emmadw/pressbooks.emmadukewilliams.co.uk/wp-content/plugins/pressbooks/inc/utility/namespace.php:322
Stack trace:
#0 /home/emmadw/pressbooks.emmadukewilliams.co.uk/wp-content/plugins/pressbooks/inc/modules/export/prince/class-filters.php(107): Pressbooks\Utility\check_xmllint_install()
#1 /home/emmadw/pressbooks.emmadukewilliams.co.uk/wp-content/plugins/pressbooks/inc/modules/themeoptions/class-admin.php(67): Pressbooks\Modules\Export\Prince\Filters::hasDependencies()
#2 /home/emmadw/pressbooks.emmadukewilliams.co.uk/wp-content/plugins/pressbooks/inc/modules/themeoptions/class-admin.php(110): Pressbooks\Modules\ThemeOptions\Admin->getTabs()
#3 /home/emmadw/pressbooks.emmadukewilliams.co.uk/wp-includes/class-wp-hook.php(308): Pressbooks\Modules\ThemeOptions\Admin->loadTabs()
#4 /home/emmadw/pressbooks.emmadukewilliams.co.uk/wp-includes/class-wp-hook.php(332): WP_Hook->apply_filters()
#5 /home/emmadw/pressbooks.emmadukewilliams.co.uk/wp-includes/plugin.php(517): WP_Hook->do_action()
#6 /home/emmadw/pressbooks.emmadukewilliams.co.uk/wp-admin/admin.php(175): do_action()
#7 /home/emmadw/pressbooks.emmadukewilliams.co.uk/wp-admin/index.php(10): require_once(‘/home/emmadw/pr…’)
#8 {main}
thrown in /home/emmadw/pressbooks.emmadukewilliams.co.uk/wp-content/plugins/pressbooks/inc/utility/namespace.php on line 322

Ah, having read that log, did I need to have installed the export tools - have I tried to run before I can walk properly?
I thought that without them it’d just not let me export things, rather than not let me edit books initially.

Good question – it does look like some of the server dependencies are in fact dependencies. The one that’s crashing here looks like XMLLint. See the server dependencies section here: Installation - Pressbooks. The good news is that XMLlint can be installed with a single sudo command. If it turns out we need to update our docs for clarity, please do let us know. It’s been a long while since I’ve used them to install manually on a server from stratch. We use different methods for our enterprise clients (with scripting and automation via infrastructure as code).