In this tutorial we are going to provide you with step-by-step instructions on how to enable HTTP2 on a CentOS 7 VPS with WHM/cPanel and EasyApache 4 installed on it. HTTP2 is a major revision of the HTTP network protocol and its goal is to reduce the latency as well as to make the web applications faster by allowing multiple concurrent requests between the web browser and the server across a single TCP connection.
Table of Contents
Log in to WHM
Log in to WHM at https://your_server_IP:2087 and go to Home >> Software >> EasyApache 4 >> Customize >> PHP versions and install php 7.x version (php70, php71 or php72). Also, it is a good idea to install the following PHP extensions:
php7x-php-bz2 php7x-php-curl php7x-php-gd php7x-php-mbstring php7x-php-mcrypt php7x-php-mysqlnd php7x-php-zip
Click on ‘Next’, review the changes and click on ‘Provision’.
Then, go to Home >> Software >> MultiPHP Manager and set PHP 7 as the default PHP version for your websites.
Enable HTTP2 via WHM:
Log in to WHM and go to Home >> Software >> EasyApache 4 >> Customize >> Apache modules, disable the mod_mpm_prefork if it is enabled, click on ‘review’ to review the changes and click on ‘Provision’.
Then, go to Home >> Software >> EasyApache 4 >> Customize >> Apache modules , search for ‘mod_http2’ module, and enable it:
Do you want to proceed with this selection? Yes
Click on ‘Next’ , and click on ‘Provision’ to install and enable the ‘mod_http2’ Apache module.
Enable HTTP2 via command line:
You can also install mod_http2 Apache module on the command line using the following commands:
# yum clean all # yum shell Loaded plugins: universal-hooks > remove ea-apache24-mod_mpm_prefork > install ea-apache24-mod_mpm_worker > install ea-apache24-mod_http2 > run --> Running transaction check ---> Package ea-apache24-mod_http2.x86_64 0:2.4.27-6.6.1.cpanel will be installed ---> Package ea-apache24-mod_mpm_prefork.x86_64 0:2.4.27-6.6.1.cpanel will be erased --> Processing Dependency: ea-apache24-mpm = forked for package: ea-apache24-mod_cgi-2.4.27-6.6.1.cpanel.x86_64 ---> Package ea-apache24-mod_mpm_worker.x86_64 0:2.4.27-6.6.1.cpanel will be installed --> Processing Dependency: ea-apache24-mod_cgid for package: ea-apache24-mod_mpm_worker-2.4.27-6.6.1.cpanel.x86_64 --> Running transaction check ---> Package ea-apache24-mod_cgi.x86_64 0:2.4.27-6.6.1.cpanel will be erased ---> Package ea-apache24-mod_cgid.x86_64 0:2.4.27-6.6.1.cpanel will be installed --> Finished Dependency Resolution ============================================================================================================================================================================================================================================= Package Arch Version Repository Size ============================================================================================================================================================================================================================================= Installing: ea-apache24-mod_http2 x86_64 2.4.27-6.6.1.cpanel EA4 190 k ea-apache24-mod_mpm_worker x86_64 2.4.27-6.6.1.cpanel EA4 42 k Removing: ea-apache24-mod_mpm_prefork x86_64 2.4.27-6.6.1.cpanel @EA4 31 k Installing for dependencies: ea-apache24-mod_cgid x86_64 2.4.27-6.6.1.cpanel EA4 39 k Removing for dependencies: ea-apache24-mod_cgi x86_64 2.4.27-6.6.1.cpanel @EA4 27 k Transaction Summary ============================================================================================================================================================================================================================================= Install 2 Packages (+1 Dependent package) Remove 1 Package (+1 Dependent package) Total download size: 271 k Is this ok [y/d/N]: y
You should see something like this:
httpd started successfully. Setting /home permissions to 0711......Done Setting permissions for.....virtualthings … laravelvirtualth … ...Done Verifying : ea-apache24-mod_http2-2.4.27-6.6.1.cpanel.x86_64 1/5 Verifying : ea-apache24-mod_cgid-2.4.27-6.6.1.cpanel.x86_64 2/5 Verifying : ea-apache24-mod_mpm_worker-2.4.27-6.6.1.cpanel.x86_64 3/5 Verifying : ea-apache24-mod_mpm_prefork-2.4.27-6.6.1.cpanel.x86_64 4/5 Verifying : ea-apache24-mod_cgi-2.4.27-6.6.1.cpanel.x86_64 5/5 Removed: ea-apache24-mod_mpm_prefork.x86_64 0:2.4.27-6.6.1.cpanel Dependency Removed: ea-apache24-mod_cgi.x86_64 0:2.4.27-6.6.1.cpanel Installed: ea-apache24-mod_http2.x86_64 0:2.4.27-6.6.1.cpanel ea-apache24-mod_mpm_worker.x86_64 0:2.4.27-6.6.1.cpanel Dependency Installed: ea-apache24-mod_cgid.x86_64 0:2.4.27-6.6.1.cpanel Finished Transaction
Enter quit to exit the yum shell:
quit Leaving Shell
Please make sure that there is a /etc/apache2/conf.d/http2.conf Apache configuration file with the following lines:
cat /etc/apache2/conf.d/http2.conf
<IfModule http2_module> LogLevel http2:info Protocols h2 h2c http/1.1 </IfModule>
If there is no such file, create it, add the lines above and restart Apache for the changes to take effect:
service httpd restart
Please note, most browsers only support HTTP/2 via encrypted (https) connections, so you need to have a valid SSL certificate installed on your website to see the benefits of the HTTP2 protocol.
That is it. HTTP2 is enabled on your cPanel server.
If you have a managed VPS with us, there is no need to enable HTTP2 on WHM/cPanel with EasyApache 4 yourself. Instead, you can ask our Linux Administrators to install these for you. They are available 24/7 and can help you out with any issues or requests that you have.
P.S. If you like our blog posts, on how to enable HTTP2 on WHM/cPanel with EasyApache 4, we’d appreciate you sharing this post on social networks by using the shortcuts below, or you can post a comment under the share shortcuts. Thanks.
Very helpful