> ## Documentation Index
> Fetch the complete documentation index at: https://help.noxity.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Extensions

> Toggle PHP extensions on or off. Common ones (gd, intl, mysqli) are pre-checked; less common ones (redis, imagick) are off by default.

The Extensions tab shows every PHP extension available for the active version, as a long checkbox list. Tick a box to load the extension on the next PHP request; untick to unload.

<Frame caption="Select PHP Version → Extensions">
  <img src="https://mintlify.s3.us-west-1.amazonaws.com/noxity/images/cpanel/software/select-php-version/extensions-light.png" alt="Extensions tab with the full extension list" className="block dark:hidden" />

  <img src="https://mintlify.s3.us-west-1.amazonaws.com/noxity/images/cpanel/software/select-php-version/extensions-dark.png" alt="Extensions tab with the full extension list" className="hidden dark:block" />
</Frame>

## Common extensions, what they're for

| Extension                 | Used by                                                                  |
| ------------------------- | ------------------------------------------------------------------------ |
| `mysqli` / `pdo_mysql`    | Any MySQL connection from PHP. WordPress, Laravel, anything.             |
| `gd`                      | Image manipulation. WordPress media uploads, thumbnail generation.       |
| `imagick`                 | Higher-quality image manipulation than `gd`. Some plugins prefer it.     |
| `intl`                    | Internationalization functions. Composer packages frequently require it. |
| `mbstring`                | Multibyte string handling. Required by most modern PHP frameworks.       |
| `xml`, `dom`, `simplexml` | XML parsing. Often required by Composer itself, plus any RSS/SOAP code.  |
| `curl`                    | Outbound HTTP from PHP. Required by anything fetching APIs.              |
| `zip`                     | ZIP archive support. WordPress plugin/theme installs use it.             |
| `bcmath` / `gmp`          | Arbitrary precision math. Crypto, finance, some Magento components.      |
| `redis`                   | Redis client. Object cache plugins, queue workers.                       |
| `opcache`                 | PHP bytecode cache. Always on. Don't turn it off.                        |
| `soap`                    | SOAP/WSDL clients. A handful of payment gateways still need it.          |
| `ldap`                    | LDAP authentication. Rare on shared hosting.                             |

## Apply changes

After ticking or unticking, click **Save**. The next PHP request loads the new extension list. There's no service restart needed.

<Tip>
  If you're unsure whether a plugin needs an extension, check its requirements page. Most plugins list "PHP 8.0+ with mbstring, intl, gd". Match the list and move on.
</Tip>

## How this differs from `pecl install`

The selector loads extensions that are pre-built for each PHP version. PECL lets you compile arbitrary extensions from source. The selector is faster, safer, and the right tool for 99% of cases. PECL only matters when:

* You need a specific patched build that the cPanel selector doesn't expose.
* You're testing a beta extension (e.g., `apcu` betas, custom builds of `imagick`).

For PECL workflows you need SSH and a writable build environment. We can't always grant the build privileges on shared plans. Check with support first.

## Common issues

<AccordionGroup>
  <Accordion title="A required extension isn't in the list">
    Either it's not packaged for our PHP build (rare for mainstream extensions; common for experimental ones), or it's been deprecated. The most common surprise: `mcrypt` was removed from PHP 7.2 onwards and is no longer in the list. Switch to `openssl` or `sodium` for modern crypto.
  </Accordion>

  <Accordion title="I enabled an extension but PHP says it's missing">
    Likely you ticked the box but didn't click Save. The page accepts ticks without saving until you hit the button. Reload the page to confirm; ticked-and-saved extensions stay ticked across reloads.
  </Accordion>

  <Accordion title="Two extensions conflict (e.g., apc and apcu)">
    Some extensions are mutually exclusive. The selector usually warns when you try to enable a conflicting pair. If your PHP suddenly errors on a function from one of them, untick the other.
  </Accordion>

  <Accordion title="Toggling an extension didn't take effect">
    Persistent processes like long-lived queue workers don't pick up extension changes until they restart. The HTTP-handler PHP picks up changes on the next request; CLI cron jobs pick up changes on the next invocation. If you have a daemon, you need to restart it.
  </Accordion>
</AccordionGroup>

## Need a hand?

<CardGroup cols={2}>
  <Card title="Open a ticket" icon="life-ring" href="https://members.noxity.io/submitticket.php">
    Best for anything that needs an account check or a config change on our end.
  </Card>

  <Card title="Live chat" icon="messages" href="https://noxity.io/contact">
    Faster for quick questions during business hours.
  </Card>
</CardGroup>
