15. Known 3rd-Party Issues
This document details known issues with 3rd-party plugins or services used in conjunction with our hosting, and provides solutions or workarounds where possible. It is an ongoing project and information about any additional 3rd-party issues will be added as needed.
15.1 Query Monitor
Copy chapter anchor to clipboardThe Query Monitor plugin adds a file named db.php which gets symlinked into your wp-content directory when the plugin is activated. The file provides extended functionality such as logging the query result and a full stack trace for all database queries.
In some site/server configurations, it may not be possible to directly create that file, so the plugin documentation on github provides WP-CLI and command-line options to manually create it if needed.
However, the command-line option as noted in that document will not work on WPMU DEV hosting as it uses an absolute file path.
If you do need to use the command line option to get that file created on your WPMU DEV hosted site, you’d want to adjust it to use a path relative to the wp-content directory instead, like so:
cd site/public_html/wp-content
ln -sr plugins/query-monitor/wp-content/db.php db.php
15.2 Oxygen Builder
Copy chapter anchor to clipboardIf you have enabled the Web Application Firewall (WAF) on your hosted site, and are using Oxygen Builder as your page builder, you should know that it can trigger known & blocked attack vectors when publishing updates.
A possible solution would be to disable the triggered rule IDs in your WAF configuration to allow these legitimate requests. However, that would render your site vulnerable to attack through those vectors.
A more secure solution is to add your IP address to the IP Allowlist in your WAF. This would allow all requests originating from your IP to proceed unimpeded.
15.3 MyISAM Database Storage Engine
Copy chapter anchor to clipboardDatabase tables for all sites we host use the InnoDB storage engine by default. This is a much more performant engine than the MyISAM engine still in use by many older sites, or sites that may have been converted to WordPress from pure HTML sites.
When migrating an older 3rd-party hosted site to WPMU DEV, any database tables still using MyISAM will be migrated with that older engine still specified in those tables.
While this is not strictly an issue on our hosting, we do strongly recommend converting those tables to use the InnoDB storage engine for better performance with your WordPress site.
If you have any very old or poorly coded plugins that actually query the database and specify MyISAM as the engine to use, changing the engine from MyISAM to InnoDB may break that plugin’s functionality. You may wish to consider looking for a more reliable and up-to-date alternative.
Here’s a quick look at the main differences between the two types of storage engines:
InnoDB
- Has row-level locking – When it searches or scans a table index, it sets shared or exclusive locks only on the index records it encounters. This allows for many concurrent operations on the same table.
- Has referential integrity – This supports foreign keys like primary keys shared among many tables, and allows for relationships and constraints among those tables (RDBMS).
- Supports transactions – Meaning you can make commits & changes and roll back if needed.
- Uses transactional logs – This makes the engine much more reliable as all actions can be traced and recovered.
- Supports multiple cores – This allows the database to run on as many CPUs as it has available, meaning it can leverage all the CPUs included in your hosting plan.
MyISAM
- Only has table-level locking – When it searches or scans a table index, the entire table is locked, which allows for only a single operation at any time on the whole table.
- Does not support referential integrity at all.
- Does not support transactions.
- No transactional logs.
- Single core support only.
- No data integrity – Hardware failures and canceled operations can cause data to become corrupt.
15.3.1 Converting to InnoDB
Link to chapter 3Please note that this operation is out of scope for our support teams as it is impossible to predict the impact it may have on your site. So if you do need to perform this conversion, do ensure you make a full backup of your site and database before proceeding so you can restore it if needed.
In your Hub, click the Manage link next to Database on the site Overview screen for your site to launch phpMyAdmin.
Convert With Manual Operations
In phpMyAdmin, click on your database name in the left-hand navigation, then look through or sort the Types column to locate any tables using the MyISAM engine.
Click on the name of the table on the far-left of its row, then click on the Operations tab in the top navigation. Then, in the dropdown next to Storage Engine, select InnoDB and click the Go button.
Repeat for each table you find still using MyISAM.
Convert With SQL Queries
Alternatively, you can run an SQL query to locate all tables still using MyISAM.
Click on your database name in the left-hand navigation, then click on the Query tab in the top navigation.
Enter the following in the query field, changing database to the actual name of your database as seen at the top of the phpMyAdmin screen. Then click the Submit Query button.
SELECT TABLE_NAME,
ENGINE
FROM information_schema.TABLES
WHERE TABLE_SCHEMA = 'database' and ENGINE = 'myISAM'
That will generate a list of all tables still using the MyISAM engine.
Next, for each table you see in that list, you’ll want to run the following query to convert it to InnoDB, changing tablename to the actual name of the table you want to convert.
ALTER TABLE tablename ENGINE=InnoDB;
Convert With Plugin
Alternatively, install and activate the Simple MyISAM to InnoDB plugin on your site. Click Simple MyISAM to InnoDB menu option in the WP admin dashboard.
You will find a list of all tables in the Table Name column and their respective engine types in the Status column. In the Upgrade column, select the tables currently using the MyISAM engine and click Submit to convert them to the InnoDB engine.
Note that it is recommended to take a backup of your MySQL database before using this plugin
Convert With WP-CLI
If you prefer using a command-line option to convert your database table engine, enter the following CLI command.
wp hosting convert-myisam-to-innodb
All the tables with the MyISAM engine that will be converted to InnoDB will be listed, and you will be asked for a confirmation to proceed with the conversion.
Enter y to start the conversion.
We recommend reviewing the listed tables and also taking a backup before starting the conversion process.
15.4 Get Support
Copy chapter anchor to clipboardIf you still have questions or need assistance after reading this document, please don’t hesitate to contact our support superheroes using the available options under the Support tab in your Hub or via the Support tab in your WPMU DEV Dashboard.