Free tools Windows power users keep installed
One-click scans. No signup required.
Enable mbstring in the PHP runtime that actually serves your WordPress site, then reload that runtime and verify it from both PHP and WordPress. The exact procedure depends on whether you manage a Linux server, WHM/cPanel, Plesk/CloudLinux, or only a shared-hosting account.
Antihost offers managed WordPress hosting with free migration, one-click staging and a 14-day free trial.
What mbstring does and why WordPress may require it
mbstring is PHP’s multibyte-string extension. It provides functions for handling multibyte character sets, including UTF-8 text used by WordPress and multilingual content. WordPress’s Hosting Handbook says the extension is used to handle UTF-8 correctly and may need to be installed or enabled depending on how PHP was packaged by the server provider. See the WordPress Hosting Handbook server-environment guidance.
As an Amazon Associate I earn from qualifying purchases.
PHP does not enable mbstring in every build. The PHP manual classifies it as a non-default extension: it must be explicitly enabled when PHP is built, using the --enable-mbstring configure option. Installing a package named for one PHP version does not enable the extension in every other version installed on the server.
The most common reason an administrator sees “mbstring is missing” after apparently enabling it is that the check and the website are using different PHP runtimes. Command-line PHP, Apache’s PHP module, and PHP-FPM can use different binaries, versions, and php.ini directories. Always verify the runtime assigned to the WordPress domain, not just the PHP executable returned by an SSH shell.
#1 Best Overall
Check the site’s PHP runtime before changing anything
Start by recording the PHP version and handler used by the affected site. In WordPress, open Tools → Site Health → Info and inspect the server and PHP sections. On a managed panel, check the domain’s assigned PHP version and whether it uses Apache’s module, PHP-FPM, or another handler. On a self-managed server, identify the PHP-FPM pool or Apache configuration serving the virtual host.
Write down the exact version, such as PHP 8.2 or PHP 8.3, before installing a package. A command such as php -v reports the CLI binary, which may not be the binary used by the web service. Treat it as a clue rather than proof until the web runtime has also been checked.
Recommended Free Tools
Use a current supported WordPress stack
WordPress.org currently recommends PHP 8.3 or newer, MariaDB 10.11 or newer or MySQL 8.0 or newer, and HTTPS. PHP 7.4 and newer is retained as a legacy compatibility floor, but the requirements page notes that those older PHP versions are end-of-life. Review the current requirements at WordPress.org’s requirements page before spending time repairing an obsolete stack.
| Component | Current WordPress guidance | Why it matters when enabling mbstring |
|---|---|---|
| PHP | 8.3 or greater recommended | Install the mbstring package for the PHP version assigned to the site; each version has its own module set. |
| Database | MariaDB 10.11 or greater, or MySQL 8.0 or greater | Text encoding problems can also originate in an outdated database or collation, so mbstring is not the only compatibility consideration. |
| Transport | HTTPS | HTTPS is part of the current hosting baseline even though it does not load PHP extensions. |
Choose the procedure that matches your access
| Your access | Where to enable mbstring | Scope to check |
|---|---|---|
| Root or SSH on a self-managed Linux server | Operating-system PHP package, or rebuild PHP with --enable-mbstring |
The PHP version and service used by the WordPress virtual host |
| WHM/cPanel administrator | WHM → EasyApache 4 → PHP Extensions | Every PHP version assigned to hosted domains |
| Plesk with CloudLinux Selector | CloudLinux Manager → Selector | The PHP version assigned to the affected domain |
| Shared hosting without extension controls | Host support request | The provider’s web or PHP-FPM runtime, not CLI PHP alone |
Use the least invasive route available. A panel administrator should normally use EasyApache or Selector rather than manually editing system files. A self-managed administrator can use the distribution package when it matches the installed PHP build, while a source-built installation may require a rebuild. A shared-hosting customer cannot safely substitute a WordPress plugin for a server extension.
Enable mbstring on a self-managed Linux server
Use this route when you control the operating system, package repositories, PHP build, and service restart. Package names vary by distribution, repository, and PHP version, so select the package that corresponds exactly to the runtime identified in the previous section.
- Confirm the active version and handler. Record the domain’s PHP version from Site Health or the web-server configuration. Determine whether Apache or PHP-FPM launches PHP for that site.
- Install the matching extension package. Use your distribution’s package manager to install the mbstring module for that exact PHP version. Do not install a module for a different major or minor version and assume PHP will load it.
- Rebuild PHP when packages are not available. If PHP was compiled from source or your repository does not provide mbstring, rebuild it with the configure option
--enable-mbstring, then install the resulting build using your normal deployment process. The PHP installation manual documents this requirement at php.net/manual/en/mbstring.installation.php. - Reload the serving service. Reload or restart the PHP-FPM service or Apache service that serves the site when your distribution requires it. A newly installed shared object is not necessarily loaded into already-running worker processes.
- Check the CLI runtime. Run
php -m | grep mbstring. You can also runphp -r 'var_dump(extension_loaded("mbstring"));'; a successful result isbool(true). These commands are useful only if the CLI binary matches the website’s PHP version and configuration. - Check the web runtime. Create a short-lived, access-restricted diagnostic endpoint in the site’s document root containing
<?php var_dump(PHP_VERSION, extension_loaded('mbstring')); ?>. Open it through the same HTTPS hostname as WordPress, confirm the expected version andbool(true), and delete the file immediately. If the endpoint is reachable by anyone, protect it with temporary authentication or an IP restriction while it exists.
If the CLI check succeeds but the web check fails, inspect the PHP-FPM pool or Apache configuration for a different binary or php.ini path. Correct that web configuration and reload the service; installing another CLI package will not fix a web-runtime mismatch.
Crashes, No Sound, or Screen Glitches?
Random freezes, missing sound and display glitches usually trace back to one bad driver. Find and replace yours safely.Free scan · under a minuteWindows Errors? Fix Them Before They Spread
Repair common Windows errors and clear accumulated junk for a smoother, more stable PC - no reinstall needed.Free scan · no reinstallEnable mbstring in WHM and cPanel
cPanel’s documented EasyApache workflow was updated September 27, 2026. It requires WHM root access and must be repeated for each PHP version used by hosted domains. Follow the current procedure in cPanel’s PHP-extension guide.
Rank #2
- Sign in to WHM as root.
- Go to Home → Software → EasyApache 4.
- Under the installed profile, click Customize.
- Open PHP Extensions and search for
mbstring. - Select the mbstring extension, review the proposed changes, and click Provision.
- Repeat the process for every PHP version assigned to a WordPress domain. Enabling mbstring for PHP 8.2 does not enable it for PHP 8.3 or PHP 7.4.
cPanel also documents command-line installation examples using versioned package names such as ea-php74-php-mbstring. Replace 74 with the actual PHP version required by the domain; copying that example unchanged can install the module for the wrong runtime. After provisioning, allow the panel to reload the relevant PHP service, then verify through Site Health and, if necessary, a protected web diagnostic.
On a server hosting several domains, make an inventory of each domain’s PHP assignment before provisioning. This prevents a site moved to a newer PHP version from losing mbstring even though the older version remains configured correctly. If domains use multiple handlers, verify one domain per handler rather than assuming a single successful test covers all pools.
Enable mbstring in Plesk with CloudLinux
For the CloudLinux/Plesk configuration documented by Plesk, the control is the CloudLinux PHP Selector rather than a generic WordPress setting. Plesk’s troubleshooting article, updated October 12, 2025, is available at Plesk’s mysqli and PHP-module troubleshooting guide.
- Open CloudLinux Manager → Selector in the Plesk interface.
- Select the PHP version assigned to the affected domain.
- Enable
mbstring. - Check the module set required by the domain. The documented case requires
jsonandmysqlias well. - Save the selector settings, then revisit WordPress Site Health.
When the Plesk interface reports a mysqli startup error
The Plesk workaround edits the version-specific file /opt/alt/phpXX/link/conf/default.ini, where XX represents the selected PHP version. In that file, follow Plesk’s documented module arrangement:
- Uncomment
extension=mbstring.so. - Enable
extension=json.so. - Disable
extension=nd_mysqli.sowhen it is present. - Add
extension=mysqli.soas shown in the Plesk article.
Use the file belonging to the domain’s actual PHP version, not a different phpXX directory. Back up the configuration before editing, apply the change through the panel or the provider’s supported method, and reload the relevant PHP handler if Plesk requires it. Then verify from the web runtime.
What to do on shared hosting
Many shared accounts do not expose WHM, EasyApache, Plesk Selector, package management, or PHP build controls. In that case, you cannot reliably enable mbstring from WordPress itself. Contact the host and send a precise request:
Please enable the mbstring extension for the PHP version serving my WordPress domain. Please confirm the active PHP version and that mbstring is enabled in the web/PHP-FPM runtime, not only in CLI PHP.
Ask support which PHP version is active, whether the domain uses PHP-FPM or Apache’s module, and how you can verify the loaded extensions. If the provider cannot enable mbstring or cannot offer a currently supported PHP and database stack over HTTPS, compare its capabilities with the WordPress requirements and consider upgrading the plan or moving the site. WordPress’s administration guidance explains the host’s role in supplying the server environment at Before You Install, whose displayed update date is October 14, 2026.
The Tool Desk
Outbyte Driver Updater FREEFix the driver behind crashes, sound loss and screen glitchesFind Drivers →Outbyte PC Repair FREERepair Windows errors before they cause bigger problemsFix Now →Verify that WordPress is using the enabled extension
Do not stop after a package manager reports success. Use all applicable checks below:
- Runtime check: In the PHP runtime serving the domain,
extension_loaded('mbstring')returnstrue. - Module-list check: The matching PHP binary’s
php -moutput containsmbstring. - WordPress check: Open Tools → Site Health → Info and confirm the missing-extension warning has disappeared.
- Version check: Confirm that the PHP version shown by the web diagnostic is the same version for which you installed the module.
- Lifecycle check: Repeat the verification after changing PHP versions. cPanel’s extension installation is per PHP version.
- Cleanup check: Delete every temporary
phpinfo()or diagnostic file and remove any temporary access rule after testing.
A minimal diagnostic file can expose PHP version and loaded extensions, so never leave it publicly accessible. If you use phpinfo(), protect the endpoint and remove it as soon as the check is complete.
Compare remediation paths before making a change
| Path | Access required | Primary trade-off | Best verification |
|---|---|---|---|
| OS package | Root or sudo access | Fast and maintainable, but package naming and repositories differ | Matching CLI and web-runtime checks |
| Source rebuild | Build and deployment control | Maximum configuration control, with more maintenance responsibility | Build configuration plus web-runtime test |
| EasyApache | WHM root access | Simple interface, but provisioning is separate for each PHP version | Site Health and a protected endpoint |
| CloudLinux Selector | Plesk or CloudLinux administrator access | Domain-level control, with related module conflicts to manage | Selector settings and web-runtime test |
| Host request | Customer support access only | Least technical effort, but dependent on the provider’s capabilities | Written confirmation of the web/FPM runtime |
Choose based on access, scope, control, verification, and lifecycle. A technically successful change on an end-of-life PHP stack still leaves the site exposed to compatibility and maintenance problems. Conversely, a host-side change is appropriate when the customer does not control the server and should not edit system configuration.
Troubleshoot a missing-extension warning
The warning remains after installation
The module may have been installed for another PHP version. Compare the domain’s configured version with the package or EasyApache module name, then install and enable mbstring for the matching version. In cPanel, return to EasyApache for each version used by the account.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
CLI reports enabled, but WordPress reports missing
This is usually a binary or configuration mismatch. Compare php -v and php -m with the version and modules shown by a protected web diagnostic or Site Health. Inspect the PHP-FPM pool or Apache handler’s executable and ini directory, correct the web configuration, and reload that service.
Plesk shows a mysqli startup error
Use the module combination in Plesk’s documented case: mbstring, json, and mysqli enabled, with the conflicting nd_mysqli module disabled when present. Apply the change to the correct /opt/alt/phpXX/link/conf/default.ini file and verify from the domain’s web runtime.
The host refuses to enable mbstring
Ask whether the account can be moved to a PHP version and plan that support mbstring. If the provider cannot meet WordPress’s current PHP, database, and HTTPS requirements, upgrading or migrating is safer than trying to patch an unsupported environment.
Rank #4
Text or encoding problems continue
mbstring supports proper UTF-8 handling, but enabling it does not prove that every encoding problem is solved. Database collation, application code, imported data, or another PHP extension can also cause malformed or truncated text. Once mbstring is confirmed in the web runtime, inspect those other layers rather than repeatedly reinstalling the same module.
The site changed PHP versions during an upgrade
Recheck mbstring immediately after the switch. A module enabled for the old version is not automatically present in the destination version, particularly on cPanel systems where EasyApache provisioning is version-specific. Confirm the new version in Site Health, install its matching module, reload the handler, and test again.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Prevent the problem during future PHP changes
- Record the PHP version and handler before every hosting-panel or server upgrade.
- Install mbstring for the destination PHP version before switching the domain.
- After the switch, check both the web runtime and WordPress Site Health.
- On multi-version servers, keep a small inventory of which domains use each PHP version so a module is not enabled for only one account.
- Remove diagnostic scripts immediately and avoid leaving
phpinfo()publicly reachable. - Keep a rollback plan for the PHP handler and configuration, but do not roll back to an end-of-life version as a permanent solution.
The reliable sequence is therefore: identify the web runtime, enable mbstring for that exact PHP version, reload its handler, verify through the site, and clean up diagnostics. That sequence works whether the extension is installed by a Linux package manager, EasyApache, CloudLinux Selector, or a hosting provider.
Frequently Asked Questions
How do I enable mbstring in PHP for WordPress?
First identify the PHP version and handler serving the domain. Then install or enable the matching mbstring package through your Linux package manager, WHM/EasyApache, or CloudLinux Selector. Reload PHP-FPM or Apache when required, verify extension_loaded('mbstring') in the web runtime, and confirm that WordPress Site Health no longer reports the extension as missing.
Why does WordPress still say mbstring is missing after I installed it?
The extension is often installed for a different PHP version or only for CLI PHP. Compare the domain’s assigned version with the package or panel module name, then test through a protected web diagnostic or Site Health. Correct the PHP-FPM or Apache configuration if the web service loads a different binary or php.ini directory.
Do these 3 things before closing this tab:
1Repair Windows errors before they cause bigger problems2Scan for outdated or missing drivers - takes under a minute3Clear out junk files and repair common Windows errorsCan I enable mbstring from the WordPress dashboard?
No. mbstring belongs to the PHP runtime, so it must be enabled by the server package, PHP build, hosting panel, or provider. WordPress can report the missing module but cannot install a server extension from its dashboard.
How do I enable mbstring in cPanel?
A WHM administrator should open Home → Software → EasyApache 4, choose Customize, open PHP Extensions, select mbstring, review the changes, and click Provision. Repeat the process for every PHP version used by hosted domains; enabling it for one version does not cover another.
How do I enable mbstring in Plesk?
In the documented CloudLinux setup, open CloudLinux Manager → Selector, choose the PHP version assigned to the domain, enable mbstring, check the required json and mysqli modules, and save. If Plesk reports a mysqli startup conflict, follow its module arrangement by disabling nd_mysqli.so when present and enabling mysqli.so in the version-specific configuration.
What should I ask my shared host to do?
Send this request: “Please enable the mbstring extension for the PHP version serving my WordPress domain. Please confirm the active PHP version and that mbstring is enabled in the web/PHP-FPM runtime, not only in CLI PHP.” Also ask how to verify the loaded modules and whether the account supports PHP 8.3 or newer, a current database version, and HTTPS.
Is PHP 7.4 sufficient for WordPress mbstring?
PHP 7.4 and newer remains a legacy compatibility floor on the WordPress requirements page, but those versions are end-of-life. WordPress currently recommends PHP 8.3 or newer. Enabling mbstring on an old version may remove one warning without providing a supported hosting stack.
Will mbstring fix every UTF-8 or character-encoding problem?
No. mbstring helps PHP handle multibyte UTF-8 text, but malformed or truncated text can also result from database collation, imported data, application code, or another extension. Confirm mbstring first, then investigate those other layers if symptoms continue.
Should I leave a phpinfo() file on the site for future checks?
No. A diagnostic or phpinfo() endpoint can disclose PHP versions, paths, and loaded modules. Restrict access while testing and delete the file and any temporary access rule immediately afterward.
The Bottom Line
Enable mbstring for the exact PHP version and web handler serving WordPress, not merely for the CLI binary. Use the matching server package, EasyApache, CloudLinux Selector, or host request; reload the handler, verify with extension_loaded('mbstring') and Site Health, and remove diagnostic files when finished.
Quick wins for a faster PC:
Scan for outdated or missing drivers - takes under a minuteDriver Scan →Clear out junk files and repair common Windows errorsFree Scan →Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

