In January, we launched the beta of Per-Site CageFS Isolates as the first phase of our CloudLinux Isolates 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 Isolates and lets end users manage isolation for their own domains.
Note for beta users:
The activation model has changed significantly in this release. See the Changes for Phase 1 Beta Users section for more details.
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 When running as root, add –user to specify the account:
selectorctl --set-user-current 8.2 --domain --user
selectorctl --enable-user-extensions=, --version --domain selectorctl --disable-user-extensions=, --version --domain
CloudLinux Isolates now use 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 [,,...]cagefsctl-user site-isolation-disable --domain [,,...]
This means hosting providers can offer website isolation as a self-service feature, reducing support overhead.
Server administrators now control which users can access Isolates:
cagefsctl --site-isolation-allow-allAll
cagefsctl --site-isolation-allow
cagefsctl --site-isolation-deny
cagefsctl --site-isolation-deny-allallow / deny commands require root. They grant or revoke the right to use isolation, but they do not enable isolation on any domain.
This gives hosting providers the flexibility to include Isolates 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.
cagefsctl –site-isolation-allowcagefsctl –site-isolation-allow-allcagefsctl –site-isolation-denycagefsctl –site-isolation-deny-allThe –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
4. User enables needed extensions:
selectorctl --enable-user-extensions redis,imagick --domain Done. The domain now has its own PHP 8.2 with redis and imagick, independent from other domains on the same account.
Current Limitations
Update the required packages from the testing repository:
yum update lvemanager cagefs lve-stats lve-utils --enablerepo=cloudlinux-updates-testing
For compatible PHP handlers and the full command reference, visit the 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.
Comments