Installation

Manual Installation

  1. Download the latest releases of Pressbooks, Aldine (the default root site theme for Pressbooks), McLuhan (the default book theme for Pressbooks) and any other plugins or book themes you wish to install. Check the latest release of Pressbooks for the required versions of PHP and WordPress. Lower versions are not supported.

Follow the instructions provided by WordPress to install WordPress and create a WordPress multisite network

  1. Copy the Pressbooks plugin folder to: /path/to/your/site/wp-content/plugins/*.
  2. Copy Pressbooks' autoloader file from /path/to/your/site/wp-content/plugins/pressbooks/hm-autoloader.php to /path/to/your/site/wp-content/mu-plugins/hm-autoloader.php. You may need to create the wp-content/mu-plugins/ directory if it doesn't yet exist.
  3. Copy the Pressbooks Book, Pressbooks Aldine and other theme folders to: /path/to/your/site/wp-content/themes/* (NOTE: theme folders must not have version numbers on the end. GOOD: pressbooks-aldine. BAD: pressbooks-aldine-3.1.0. Make sure that you rename the folders appropriately.)

Activate Plugins & Themes

  1. Log out, log in, navigate to: My SitesNetwork AdminDashboard.
  2. Navigate to PluginsInstalled Plugins.
  3. Network Enable "Pressbooks" and any other plugins you want to you.
  4. Navigate to ThemesInstalled Themes.
  5. Network Enable "Aldine", "McLuhan", and any other Pressbooks theme you want to use.
  6. Navigate to Your Network TitleDashboardAppearance and activate "Aldine".

Server Dependencies

Pressbooks requires some third-party libraries to be installed on your server to enable export capabilities.

  1. Download and install [PrinceXML][prince] on your server. Note: Prince is not free software; see their license agreement. If you intend to use Prince for commercial purposes, you should purchase a license.
  2. Configure DocRaptor, a software as a service version of PrinceXML. To do this, obtain a DocRaptor API key and add it to your wp-config.php: define( 'DOCRAPTOR_API_KEY', 'YOUR_API_KEY_HERE' );

Note: Some GNU/Linux distributions do not ship with the php-xsl and/or php-exif libraries enabled by default. If you attempt to export an EPUB file and see a white screen with minimal text or an error, you may need install one or both of these libraries: (e.g. sudo apt install php-xsl or sudo apt install php-exif )

Note: GNU/Linux distributions do not include Microsoft fonts, which can be useful when producing PDF exports. See https://itsfoss.com/install-microsoft-fonts-ubuntu/ or similar for instructions on installing.

Once the desired dependencies have been installed on your server, define the following wp-config.php variables (make sure to update the paths to correspond to your specific installation). The defaults are:

define( 'PB_PRINCE_COMMAND', '/usr/bin/prince' ); // Only required if you are using Prince on your server
define( 'PB_EPUBCHECK_COMMAND', '/usr/bin/java -jar /opt/epubcheck/epubcheck.jar' );
define( 'PB_XMLLINT_COMMAND', '/usr/bin/xmllint' );
define( 'PB_MATHJAX_URL', 'http://localhost:3000/' ); 

Example config files for a dev site hosted at http://localhost/~example/ are provided below:

wp-config.php file [snippet]:

    /**
    * - For developers: WordPress debugging mode.
    * - Change this to true to enable the display of notices during development.
    * - We recommend plugin and theme developers use WP_DEBUG in dev environments.
     */

    define('WP_DEBUG', true);
    define('WP_DEBUG_LOG', true);

    // Multi-site support
    define('WP_ALLOW\MULTISITE', true);
    define('MULTISITE', true);
    define('SUBDOMAIN_INSTALL', false);
    $base = '/~example/';
    define('DOMAIN_CURRENT_SITE', 'localhost');
    define('PATH_CURRENT_SITE', '/~example/');
    define('SITE_ID_CURRENT_SITE', 1);
    define('BLOG_ID_CURRENT_SITE', 1);

    // Pressbooks
    define( 'PB_PRINCE_COMMAND', '/usr/bin/prince' );
    define( 'PB_EPUBCHECK_COMMAND', '/usr/bin/java -jar /home/example/bin/epubcheck/epubcheck.jar' );
    define( 'PB_XMLLINT_COMMAND', '/usr/bin/xmllint' );
    define( 'PB_MATHJAX_URL', 'http://localhost:3000/' );

    // Optional definitions
    // define( 'AUTOSAVE_INTERVAL', 60 ); // Autosave every N seconds
    // define( 'WP_POST_REVISIONS', 50 ); // Limit post revisions: int or false
    // define( 'EMPTY_TRASH_DAYS', 1 ); // Purge trash interval. PB default is after 30 days.
    /* That's all, stop editing! Happy blogging. */

Sample .htaccess file:

    RewriteEngine On
    RewriteBase /~example/
    RewriteRule ^index.php$ - [L]

    # add a trailing slash to /wp-admin
    RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]

    RewriteCond %{REQUEST_FILENAME} -f [OR]
    RewriteCond %{REQUEST_FILENAME} -d
    RewriteRule ^ - [L]
    RewriteRule  ^[_0-9a-zA-Z-]+/(wp-(content|admin|includes).\*) $1 [L]
    RewriteRule  ^[_0-9a-zA-Z-]+/(.\*.php)$ $1 [L]
    RewriteRule . index.php [L]

Configure Network Settings & Create Your First Book

  1. Navigate to Network AdminDashboardSettingsNetwork Settings and select the most appropriate Registration setting:
  1. Navigate to My BooksCreate a New Book
  2. Fill in the form and click 'Create Book' to create your first book

Consult our user guide for more details on how to use Pressbooks to create and publish books.