CloudLinux supports all the hardware supported by RHEL/CentOS, with few exceptions. Exceptions are usually hardware that require binary drivers, and that doesn't have any open source alternatives.
Note
CloudLinux OS does not support ARM-based CPUs (e.g. Graviton)
There are some incompatible devices with CL 6:
Device | Binary Driver | Source |
B110i Smart Array RAID controller | hpahcisr | https://h10032.www1.hp.com/ctg/Manual/c01754456 |
B120i/B320i Smart Array SATA RAID Controller | hpvsa | https://www8.hp.com/h20195/v2/GetPDF.aspx/c04168333.pdf |
SanDisk DAS Cache | https://www.dell.com/en-us/work/learn/server-technology-components-caching |
With RHEL 8 (CloudLinux 8/CloudLinux 7 Hybrid), some devices are no longer supported. You can check the entire list here: https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html/considerations_in_adopting_rhel_8/hardware-enablement_considerations-in-adopting-rhel-8#removed-hardware-support_hardware-enablement
It is easy to convert your existing CentOS server to CloudLinux. The process takes a few minutes and replaces just a handful of RPMs.
Get <activation_key>
either by getting trial subscription or by purchasing subscription.
Download the conversion script: cldeploy.
If you have an activation key, run the following commands:
$ wget https://repo.cloudlinux.com/cloudlinux/sources/cln/cldeploy
$ sh cldeploy -k <activation_key>
$ sh cldeploy -i
$ reboot
Once you reboot, you are running CloudLinux kernel with LVE enabled.
The script automatically detects and supports the following control panels:
It will install CloudLinux kernel, Apache module, PAM module, command line tools as well as LVE Manager.
Note
* For InterWorx cldeploy script installs mod_hostinglimits, lve-utils, lve-stats packages. Find more about LVE Manager installation here
WARNING
CloudLinux 8 supports cPanel 11.94 and newer, Plesk Obsidian 18.0.33.0 and newer and DirectAdmin out of the box.
ISPmanager 5 has native support for CloudLinux. To deploy CloudLinux on a server with ISPmanager 5, you would need to purchase CloudLinux license directly from ISPSystems and follow ISPmanager's deployment guide.
Starting from version 1.61, at the end of conversion from CentOS 7.x to CloudLinux 7, the cldeploy script converts CloudLinux 7 to CloudLinux 7 Hybrid.
Automatic hybridization will be performed for the AMD processors with the following CPU families:
See also advanced options for cldeploy
Note
We normally recommend to install lvemanager
, lve-utils
, lve-stats
, and cagefs
packages after installing a control panel.
But when you deploy CloudLinux from the ISO image, these packages will be preinstalled. You can reinstall them after installing the control panel.
By its design, CloudLinux OS is very close to the upstream operating system, CentOS. This makes the conversion process relatively straightforward, requiring just one reboot. Here's what the cldeploy script does when you run it:
/etc/cl-convert-saved
./etc/cl-convert-saved
(RHEL systems only)./etc/fstab
has correct /dev/root
Here's what the cldeploy script does, if one runs it to revert the system back to CentOS:
Note that cldeploy doesn't remove the kernel to prevent condition when server has no kernels and wouldn't boot. Instead, we provie the instructions on how you could remove it manually later, when it is safe to do so.
On cPanel servers, rebuild of Apache with EasyApache will complete the conversion back, but doesn't have to be performed immediately. *
On DirectAdmin servers, rebuild of Apache with custombuild will complete the conversion back, but doesn't have to be performed immediately.
If you receive any troubles during the conversion process, most likely it is because of some licensing CLN (CloudLinux Network)-related issues. Check our troubleshooting guides here to resolve them: https://cloudlinux.zendesk.com/hc/en-us/sections/360004626919
You will need a trial activation key to be able to convert your CentOS server to CloudLinux. The trial license subscription will work for 30 days.
If you have any issues getting activation key or if you have any questions regarding using your trial subscription – contact sales@cloudlinux.com and we will help.
To get the activation key:
Get Trial Activation Key
You will get a key that looks like: 12314-d34463a182fede4f4d7e140f1841bcf2
Use it to register your system or to convert CentOS server to CloudLinux server.
To register your server with CloudLinux Network using activation key run:
$ yum install rhn-setup --enablerepo=cloudlinux-base
$ /usr/sbin/rhnreg_ks --activationkey=<activation key>
Where activation key is like 1231-2b48feedf5b5a0e0609ae028d9275c93
If you have IP based license, use clnreg_ks
command:
$ yum install rhn-setup --enablerepo=cloudlinux-base
$ /usr/sbin/clnreg_ks --force
You can download the latest CloudLinux ISO and use it to install CloudLinux on your server:
Latest stable CloudLinux 8 ISO:
https://www.repo.cloudlinux.com/cloudlinux/8/iso/x86_64/ - network/DVD installation ISOs
Latest stable CloudLinux 7 ISO:
Latest stable CloudLinux 6 ISO:
Note
Once you install server from the ISO, make sure you register your system and then run yum update
.
Note
We recommend to reinstall lvemanager
, lve-utils
, lve-stats
, and cagefs
packages after installing a control panel.
Mount and boot the image, then follow the steps.
Configure a network connection as shown below.
Configure installation sources:
https://repo.cloudlinux.com/cloudlinux/6/os/x86_64/Packages/
for CloudLinux 6 https://repo.cloudlinux.com/cloudlinux/7/os/x86_64/Packages/
for CloudLinux 7 https://repo.cloudlinux.com/cloudlinux/8/BaseOS/x86_64/os
for CloudLinux 8.https://repo.cloudlinux.com/cloudlinux/6/updates/x86_64/Packages/
for CloudLinux 6 https://repo.cloudlinux.com/cloudlinux/7/updates/x86_64/Packages/
for CloudLinux 7 and
https://repo.cloudlinux.com/cloudlinux/8/AppStream/x86_64/os/
for CloudLinux 8.Select software: select the Minimal install environment.
Note
We do not provide Xen images of CloudLinux OS anymore, use ISO images instead
To install CloudLinux over network:
For CloudLinux 8: https://repo.cloudlinux.com/cloudlinux/8/iso/x86_64/CloudLinux-8.3-x86_64-boot.iso.
Alternatively, you can configure your PXE server using following folder as reference: https://repo.cloudlinux.com/cloudlinux/8/install/x86_64/os/images/pxeboot/
For CloudLinux 7: https://repo.cloudlinux.com/cloudlinux/7/iso/x86_64/CloudLinux-netinst-x86_64-7.9.iso. It will boot into CloudLinux installer.
Alternatively, you can configure your PXE server using following folder as reference: https://repo.cloudlinux.com/cloudlinux/7/install/x86_64/images/pxeboot/
For CloudLinux 8: https://repo.cloudlinux.com/cloudlinux/8/install/x86_64/os/ and continue with installation.
For CloudLinux 7: https://repo.cloudlinux.com/cloudlinux/7/install/x86_64/ and continue with installation.
To install CloudLinux 6 instead, use the following URL: https://repo.cloudlinux.com/cloudlinux/6/install/x86_64/
Same URLs can be used to install para-virtualized Xen using either command-line or virt manager.
CloudLinux OS image list can be found here
If you are going to use Cloudlinux OS with cPanel image, you may find useful the following article
Note
For H-Sphere 3.5+
Please note, that CageFS and PHP Selector are not supported for H-Sphere
To achieve optimal performance, we recommend to convert from mod_fastcgi to mod_fcgid.
There is no need to install mod_hostinglimits – it comes built in with H-Sphere. Once you load kernel from CloudLinux with liblve 0.8 or later – it will get enabled.
You can check if LVE is enabled by running:
$ ps aux | grep httpd | grep DLIBLVE
If you see no output, it means that Apache didn't pick up LVE. Try checking file /hsphere/shared/scripts/apache-get-env.sh
The following lines should be there:
if [ -e /usr/lib64/liblve.so.0 -o -e /usr/lib/liblve.so.0 ]; then
APENV_DSSL="$APENV_DSSL -DLIBLVE"
fi
If those strings are absent, you should add it, after:
else
APENV_DSSL='-DSSL'
fi
###
and before:
# this is used by apacheGetEnv.pm perl module
if [ "$1" = 'show' ] ; then
set | egrep "^APENV_"
fi
strings.
Restart Apache afterward.
Note
Don't forget to convert from mod_fastcgi to mod_fcgid.
To achieve the best results in productivity and stability we recommend converting from mod_fastcgi
to mod_fcgid
.
Note
H-Sphere 3.6.3+
$ wget -O /hsphere/local/config/httpd2/fcgi.conf https://repo.cloudlinux.com/cloudlinux/sources/mod_fcgid-hsphere/fcgi.conf
~httpd2/conf/extra/httpd-hostinglimits.conf
to the following state:######
LoadModule hostinglimits_module /hsphere/shared/apache2/modules/mod_hostinglimits.so
<IfModule mod_hostinglimits.c>
SkipErrors Off
AllowedHandlers cgi-script %php% fcgid-script application/x-miva-compiled
DenyHandlers hs-php5-script hs-php53-script hs-php54-script
Include /hsphere/local/config/httpd2/fcgi.conf
</IfModule>
#######
P.Servers > web server [Config]
and be sure to have enabled:
apache_version=2
apache_mpm=prefork
apache_fastcgi
apache_fcgid
PHP version/mode: php_fastcgi
*Note
*No changes needed to httpd.conf.tmpl.custom
or usermodule.phpmode
as this version provides its own mod_fcgid.
$ yum install gcc liblve-devel zlib-devel openssl-devel
$ wget https://apache.osuosl.org//httpd/mod_fcgid/mod_fcgid-2.3.9.tar.gz
$ tar zxvf mod_fcgid-2.3.9.tar.gz
$ cd mod_fcgid-2.3.9/
$ APXS=/hsphere/shared/apache2/bin/apxs ./configure.apxs
$ make
$ mv modules/fcgid/.libs/mod_fcgid.so /hsphere/shared/apache2/modules
/hsphere/local/config/scripts/usemodule.phpmode
:$ wget https://repo.cloudlinux.com/cloudlinux/sources/mod_fcgid-hsphere/usemodule.phpmode.patch
$ patch /hsphere/local/config/scripts/usemodule.phpmode usemodule.phpmode.patch
/hsphere/local/config/httpd2/httpd.conf.tmpl.custom
does not exists – create it:$ cp -rp /hsphere/local/config/httpd2/httpd.conf.tmpl /hsphere/local/config/httpd2/httpd.conf.tmpl.custom
Download and apply patch https://repo.cloudlinux.com/cloudlinux/sources/mod_fcgid-hsphere/httpd.conf.tmpl.patch to the /hsphere/local/config/httpd2/httpd.conf.tmpl.custom
:
$ wget https://repo.cloudlinux.com/cloudlinux/sources/mod_fcgid-hsphere/httpd.conf.tmpl.patch
$ patch --fuzz=3 /hsphere/local/config/httpd2/httpd.conf.tmpl.cusom httpd.conf.tmpl.patch
/hsphere/local/config/httpd2
:$ wget -O /hsphere/local/config/httpd2/fcgi.conf https://repo.cloudlinux.com/cloudlinux/sources/mod_fcgid-hsphere/fcgi.conf
/hsphere/shared/php5/bin/
and make it executable:$ wget -O /hsphere/shared/php5/bin/php-wrapper https://repo.cloudlinux.com/cloudlinux/sources/mod_fcgid-hsphere/php-wrapper
$ chmod 755 /hsphere/shared/php5/bin/php-wrapper
/hsphere/local/home
to 755:$ chmod 755 /hsphere/local/home
~httpd2/conf/extra/httpd-hostinglimits.conf
and add DenyHandlers, so section will look like:<IfModule mod_hostinglimits.c>
SkipErrors Off
AllowedHandlers cgi-script %php% fcgid-script application/x-miva-compiled
DenyHandlers hs-php5-script hs-php53-script hs-php54-script
</IfModule>
apache_version = 2
apacha_fastcgi = yes
apache_status = yes
php_libphp5 enabled but not default
php_fastcgi5 enabled and is default
Other options could be configured according to personal needs.
When done - click SUBMIT to apply changes.
Note
After updating H-Sphere software on web server with CloudLinux you need to re-apply step 2 (patch usemodule.phpmode) and restart apache with /hsphere/shared/scripts/apache-restart
script.
How to make CloudLinux work on DigitalOcean:
DigitalOcean doesn't support custom kernels. The droplet (VM) always runs DigitalOcean's kernel. CloudLinux requires its own kernel. To enable CloudLinux work on DigitalOcean droplets, we provide ability to boot into CloudLinux kernel using kexec
functionality.
How does this work:
/etc/digitalocean
. If the file detected, we assume that this is DigitalOcean droplet;kexec-tools
are installed;kexec
script will be created in /etc/rc.d/init.d/
and set to run right after rc.sysinit
.When executed, script /etc/rc.d/init.d/kexec
detects the latest installed CloudLinux kernel, and loads that kernel.
If the system cannot boot into CloudLinux kernel (due to any reason), subsequent reboot will skip kexec
, allow droplet to boot into DigitalOceans' kernel.
To disable booting into Cloudlinux kernel, run:
chkconfig --del kexec
To re-enable booting into CloudLinux kernel, run:
chkconfig --add kexec
Custom images are Linux distributions that have been modified to fit the specific needs of DigitalOcean users. You can find some basics of importing a custom CloudLinux OS image below.
Importing custom images to DigitalOcean is free, as you are only charged for the storage of your image. To save money, you can easily import your image, start a Droplet from your image, and delete the image, so you don’t incur any storage costs.
Below, we will describe how to add a qcow2 (QEMU/KVM) CloudLinux OS image as a custom image. You can find more information on image options at https://www.digitalocean.com/docs/images/custom-images/overview/
Click Images on the left of the screen and then choose Custom Images. Click the Import via URL button and paste the CloudLinux OS image link.
There are several options here, but the most important is Choose a datacenter region, i.e. which datacenter region your Droplets should be created in for this image.
Click the Upload Image button and wait until the image is successfully uploaded.
You can find more information about creating/adding SSH keys in this article.
You will then be able to start a CloudLinux OS Droplet using the image.
Note
Your Droplet will be created in the same datacenter that your custom image resides in.
Warning
If you are installing CloudLinux 8, please make sure you’ve read https://www.linode.com/community/questions/19397/i-just-upgraded-my-centos-8-linode-and-now-it-wont-boot-how-do-i-fix-this-proble
To install CloudLinux 7 on Linode KVM server you should perform the following steps:
Deploy CL to your Linode following the steps from this section
Install grub on your system:
yum install grub2
/etc/default/grub
the following parameters:GRUB_TIMEOUT=10
GRUB_CMDLINE_LINUX="console=ttyS0,19200n8"
GRUB_DISABLE_LINUX_UUID=true
GRUB_SERIAL_COMMAND="serial --speed=19200 --unit=0 --word=8 --parity=no --stop=1"
grub2-mkconfig -o /boot/grub/grub.cfg
Edit your Linode profile, change the boot settings to GRUB 2
.
Reboot your Linode.
After reboot you will have fully operational CloudLinux 7 system and can proceed with other configuration you need.
To install CloudLinux 7 on Linode Xen please perform the following steps:
Deploy CL to your Linode following the steps from this section.
Create the file /boot/grub/menu.lst
with the following content:
timeout 5
title CloudLinux 7.1, $KVERSION
root (hd0)
kernel /boot/vmlinuz-$KVERSION root=/dev/xvda1 ro quiet
initrd /boot/initramfs-$KVERSION.img
where $KVERSION
is the version of the installed CloudLinux 7 kernel.
Note
You will need to update /boot/grub/menu.lst
manually after every kernel update.
Switch boot settings to pv-grub-x86_64
and switch off Auto-configure networking
in Linode settings.
Reboot your Linode.
In case if you will migrate to KVM later you will need only switch the boot settings to GRUB 2
.
Note
Starting from November 1st, 2019, we do not support Virtuozzo and OpenVZ containers. However, you can run CloudLinux OS on OpenVZ 6 and Virtuozzo 6 hypervisors. The hypervisor virtualization is the same as for Xen/KVM/VMware. Check how to run hypervisors here.
Note
Note
Kernel 2.6.32-042stab088.4 or later required
CloudLinux provides limited support for OpenVZ and Virtuozzo. At this stage only the following functionality works:
VZ Node (needs to be done once for the server):
Note
Make sure all containers are stopped prior to doing this operation. Or reboot the server after the install.
Note
Please make sure you have vzkernel-headers
and vzkernel-devel
packages installed. If no - install them with yum
yum install vzkernel-headers vzkernel-devel
$ wget -P /etc/yum.repos.d/ https://repo.cloudlinux.com/vzlve/vzlve.repo
$ yum install lve-kernel-module
This will setup LVE module for VZ kernel, as well as DKMS to update that module each time VZ kernel is updated.
After this is done, you can add LVE support for any container on a node, at any time.
To make CloudLinux work inside VZ container, VZ node has to be enabled. This should be done for any container where LVE support needs to be added:
$ vzctl set CT_ID --devnodes lve:rw --save
To disable LVE support for Container:
$ vzctl set CT_ID --devnodes lve:none --save
Inside container, follow standard CloudLinux installation procedures.
CloudLinux license is required for each VZ container.
Note
Some servers require increasing fs.ve-mount-nr
on host node, otherwise CageFS will throw errors.
To increase fs.ve-mount-nr
, on a host node:
add fs.ve-mount-nr = 15000
to /etc/sysctl.conf
;
apply it with sysctl -p
command.
In very rare cases the value should be increased higher, up to 50000.
CloudLinux can be deployed on servers that don't have grub installed, by installing хороgrub
first.
To do that:
Make sure grub and kernel packages are not excluded. Edit file /etc/yum.conf
and check exclude=
line for presence of kernel* grub*
.
Backup lilo config file:
mv /etc/lilo.conf /etc/lilo.conf.bak
Convert to CloudLinux using deploy2cl utility.
Check grub.conf
– it should be configured automatically:
# cat /boot/grub/grub.conf
default=0
timeout=5
title CloudLinux Server (2.6.18-294.8.1.el5.lve0.7.33)
kernel /boot/vmlinuz-2.6.18-294.8.1.el5.lve0.7.33 root=/dev/sda1 ro
root (hd0,0)
initrd /boot/initrd-2.6.18-294.8.1.el5.lve0.7.33.img
title linux centos5_64
kernel /boot/bzImage-2.6.33.5-xxxx-grs-ipv4-64 root=/dev/sda1 ro
root (hd0,0)
/sbin/grub-install /dev/sda
uname -r
should show something like: 2.6.18-294.8.1.el5.lve0.7.33
.You can always uninstall CloudLinux OS. In this case, the system will be converted back to CentOS (even if the original system was RHEL)
The following actions will be taken:
In the end, the script will provide instructions on how to finish the conversion back to CentOS. That will require removal of CloudLinux kernel (manual step), and installation of CentOS kernel (if needed).
WARNING
Do not forget to free up a CloudLinux OS license by removing the server from the Servers section of your CLN account. After that, if you don't intend to use the license anymore, you can remove it to avoid being billed for it.
To uninstall CloudLinux OS, run:
$ wget -O cldeploy https://repo.cloudlinux.com/cloudlinux/sources/cln/cldeploy
$ sh cldeploy -c
Now you have converted back to CentOS and it is the time to install kernel.
To delete CloudLinux kernel, run (change the kernel package name to the one you've been using):
rpm -e --nodeps kernel-2.6.32-673.26.1.lve1.4.27.el6.x86_64
To install new CentOS kernel once you deleted CloudLinux kernel, type yum install kernel
.
If yum
says that the latest kernel is already installed, it is OK.
Please check your bootloader configuration before rebooting the system.
To remove unused kmods and lve libs run:
yum remove lve kmod*lve*
Kernel package and related LVE packages should be deleted and the required kernel will be installed.
Before the reboot, the following command should be executed for restoring Apache and httpd.conf without mod_hostinglimits:
For EasyApache 3:
/scripts/easyapache --build
For EasyApache 4:
/usr/local/bin/ea_install_profile --install /etc/cpanel/ea4/profiles/cpanel/default.json
Note
Some of the packages from CloudLinux repo will still be present. They are the same as CentOS packages, and don't have to be removed. They will be updated in the future from CentOS repositories, as new versions come out.
Follow the instructions here to install and configure mod_lsapi.
If EasyApache 4 was installed earlier on your CentOS server and you would like to migrate to CloudLinux:
Convert server from CentOS to CloudLinux (see these instructions).
Restart Apache service.
If EasyApache 4 was not installed earlier on your CentOS server and you would like to migrate to CloudLinux:
Convert server from CentOS to CloudLinux (see these instructions).
Run:
cd ~; wget https://repo.cloudlinux.com/cloudlinux/sources/cloudlinux_ea3_to_ea4; sh cloudlinux_ea3_to_ea4 --convert
(Find examples of cloudlinux_ea3_to_ea4
script usage below).
Install EasyApache4 on clean CloudLinux from ISO image or migrate to EasyApache4 on existings CloudLinux servers:
cd ~; wget https://repo.cloudlinux.com/cloudlinux/sources/cloudlinux_ea3_to_ea4; sh cloudlinux_ea3_to_ea4 --convert
(Find examples of cloudlinux_ea3_to_ea4
script usage below).
About cloudlinux_ea3_to_ea4
migration script parameters:
cloudlinux_ea3_to_ea4 [ADDITIONS] ACTIONS
Usage:
-h, --help | Print this message |
Actions
(required parameter, shows what should script do):
-c, --convert | Convert EA3 to EA4 |
-r, --revert | Revert to EA3 |
Additions
(optional parameter, adds to action installation of extra components):
-m, --mod_lsapi | Install mod_lsapi |
-p, --mod_passenger | Install alt-mod-passenger |
-a, --altphp | Install/Update alt-php |
Examples:
sh cloudlinux_ea3_to_ea4 --convert --mod_lsapi --altphp
sh cloudlinux_ea3_to_ea4 --convert --mod_lsapi --altphp --mod_passenger
sh cloudlinux_ea3_to_ea4 --revert --mod_lsapi
See also: FAQ