In January, we launched the beta of Per-Site CageFS Isolation as the first phase of our Website Isolation project, introducing file system isolation between websites within the same hosting account.
Today, we're delivering Phase 2 with two significant additions: Per-Site PHP Selector, which lets each isolated website run its own PHP version and extensions, and a new self-service activation model that gives hosting providers granular control over who can use Website Isolation and lets end users manage isolation for their own domains.
Until now, all websites under a single hosting account shared the same PHP version and extension configuration set through CloudLinux PHP Selector. If one site required PHP 8.2 with imagick and another needed PHP 8.3 with redis, the only option was to choose a single configuration for the entire account, or move one site to a separate account.
This is a common friction point in various environments:
Per-Site PHP Selector removes this constraint. Each isolated website gets its own independent PHP configuration:
Per-Site PHP Selector is automatically initialized when isolation is enabled for a domain. No separate activation step is needed. The selectorctl --domain commands become available once a domain is isolated.
Use selectorctl with the new --domain option:
selectorctl --set-user-current 8.2 --domain <DOMAIN>When running as root, add --user <USERNAME> to specify the account:
selectorctl --set-user-current 8.2 --domain <DOMAIN> --user <USERNAME>
selectorctl --enable-user-extensions redis,imagick --domain <DOMAIN>selectorctl --disable-user-extensions imagick --domain <DOMAIN>
Website Isolation now uses a two-step activation model:
This model introduces two capabilities that were not available in Phase 1: user self-service and per-user access control.
In Phase 1, only server administrators could enable or disable isolation. End users can now manage their own domains directly:
cagefsctl-user site-isolation-enable --domain <domain>[,<domain2>,...]cagefsctl-user site-isolation-disable --domain <domain>[,<domain2>,...]
This means hosting providers can offer Website Isolation as a self-service feature, reducing support overhead.
Server administrators now control which users can access Website Isolation:
cagefsctl --site-isolation-allow-allAll allow / deny commands require root. They grant or revoke the right to use isolation, but they do not enable isolation on any domain.
cagefsctl --site-isolation-allow <USERNAME>
cagefsctl --site-isolation-deny <USERNAME>
cagefsctl --site-isolation-deny-all
This gives hosting providers the flexibility to include Website Isolation in specific hosting plans or offer it as a premium add-on, controlling exactly which customers have access.
In Phase 1, --site-isolation-enable only activated CageFS file system isolation for a domain. Starting with this release, it is an atomic action that enables both components at once:
The same applies to --site-isolation-disable. It removes all components in a single step, and the domain returns to shared per-user settings.
| Previous Command (Phase 1) |
New Command |
| cagefsctl --site-isolation-allow | cagefsctl --site-isolation-allow-all |
| cagefsctl --site-isolation-deny | cagefsctl --site-isolation-deny-all |
The --site-isolation-allow and --site-isolation-deny commands now operate at the per-user level.
1. Root allows the feature (one-time):
cagefsctl --site-isolation-allow-all
2. User enables isolation for the domain:
cagefsctl-user site-isolation-enable --domain shop.example.com
The domain is now isolated. CageFS and PHP Selector are active. PHP version and extensions are inherited from the user's account-level settings.
3. User sets the desired PHP version:
selectorctl --set-user-current 8.2 --domain <shop.example.com>
4. User enables needed extensions:
selectorctl --enable-user-extensions redis,imagick --domain <shop.example.com>Done. The domain now has its own PHP 8.2 with redis and imagick, independent from other domains on the same account.
Update the required packages from the testing repository:
yum update lvemanager cagefs lve-stats lve-utils --enablerepo=cloudlinux-updates-testing
| Package | Minimum Version |
| cagefs | 7.6.30-1 |
| lve-utils | 6.6.27-1 |
| lve-stats | 4.2.14-2 |
| lvemanager | 7.11.33-1 |
For compatible PHP handlers and the full command reference, visit the Website Isolation documentation.
We invite you to start testing and share your feedback, helping us refine this feature. If you run into any technical issues, please open a ticket with our support team.
Next up: Phase 3 will introduce per-site LVE resource limits, giving each isolated website its own CPU, memory, and I/O allocation.