Page tree
Skip to end of metadata
Go to start of metadata

Overview

This document discusses the main improvements and benefits that EasyApache 4 provides for site owners, server owners, server administrators, and application developers.

What does EasyApache 4 offer?

EasyApache 4 represents a total overhaul of how cPanel & WHM ships and maintains our Apache and PHP distribution. EasyApache installs, configures, updates, and validates your web server, PHP, and other components of your web server. 

cPanel & WHM does not require that you use EasyApache, but it provides an easy and convenient method to modify your web server. Your cPanel & WHM license includes the EasyApache software.

cPanel & WHM installs EasyApache 4 by default on new installations of systems that run cPanel & WHM version 58 or higher. 

Important:

  • We strongly recommend that you update your cPanel & WHM version before you run EasyApache.
  • We only support EasyApache 4 on systems that run CentOS 6 or 7, CloudLinux™ 6 or 7, or Red Hat® Enterprise Linux 6 or 7, and run cPanel & WHM version 11.52 or higher.
  • For more information, read our cPanel & WHM Long-Term Support documentation.

EasyApache 4 offers the following improvements over EasyApache 3:

  • Binary packages
  • Software collections
  • Path reorganization
  • MultiPHP support
  • Post-update actions

Binary packages

Binaries are cost-efficient improvements that save time and monetary resources for site owners, server owners, and developers. Rather than compile binaries from source, we build RPM packages with binaries that you can easily install via yum. This allows for quicker, automatic updates of packages. The system forks any custom packages from the Red Hat® specification files, but contain the latest version. Binary packages also allow Apache and PHP to automatically update. 

Binary Packages allow for quicker updates, installations, and the ability to spin down and spin up different web stacks and configurations quickly. This reduces the cost for site owners and server owners. These binaries reduce the time it takes for updates and installs to a few minutes. This also allows developers to quickly spin up and spin down different configurations.

Software collections

EasyApache 4 uses the Software Collections Library (SCL) for PHP packages. The use of SCLs enables the installation of multiple, concurrent version of PHP on the file system.

An SCL is an alternate path inside the /opt file that contains the full file system that various software needs. When you enable an SCL, it adds the path within that environment to the system. Commands that do not specify a path and scripts that use the /usr/bin/env file to determine their path can then use this path to find the appropriate version of the software.

As of cPanel & WHM version 66, the MultiPHP system in EasyApache 4 recognizes SCL PHP packages with prefixes other than ea-. This allows you to use vendor-provided packages. 

How to execute a script with SCL

To execute a script with a software collection environment, you must run the scl command. For example, to run the php -v command on the ea-php56 collection, run the following command:

scl enable ea-php56 'php -v'

This command's output will resemble the following example:

PHP 5.6.6 (cli) (built: Jul 16 2015 12:28:49)
 
Copyright (c) 1997-2015 The PHP Group
 
Zend Engine v2.6.0, Copyright (c) 1998-2015 Zend Technologies

Path reorganization

The system originally stored Apache files in the /usr/local/apache directory. This directory no longer exists except for a few symlinks. 

EasyApache 4's path reorganization includes the following benefits:

  • The additional paths allow EasyApache 4 to function quicker and more efficiently.
  • The additional paths allow multiple directories to store data and symlink between files.
  • The additional paths allow more effective storage of data, especially with backups and recovery.

The following table lists the new file directories where EasyApache 4 now stores the Apache files:

 File or Directory locationDescription
/usr/bin/httpd/

This directory contains the actual Apache executable, binary file, and webserver.

/var/log/apache2/This directory contains all the logs for the apache2 file as well as all access logs.
/etc/apache2/

This directory contains the configuration directory for Apache and contains all directories for Apache includes, modules, and configuration files. This directory does not contain log files.

Note:

This directory uses the symlink to the usr/lib64/apache24/ directory.

/usr/lib64/apache2/modules/This directory contains all of the dynamic modules for Apache.
/opt/cpanel/ea-php*/

This SCL directory contains all of Apache's binary files.

/etc/apache2/logs/access_log/This file contains HTTP requests that the server received and that did not go to a domain.
/etc/apache2/logs/domlogs/This directory contains a log of HTTP requests that the system routed to a domain.
/etc/apache2/logs/error_log/This file contains error information.
/var/www/html/This directory contains the document root for the server. It contains default pages that users can see.
/etc/apache2/logs/This directory contains an alias to the /var/log/apache2/ directory.
/etc/apache2/modules/This directory contains an alias to the /usr/lib64/apache2/modules/ directory.

MultiPHP support

EasyApache 4 supports multiple versions of PHP. Multiple PHP versions allow you to assign different PHP versions to each of your domains. Coupled with automatic upgrades, this ensures that your PHP applications run on the most up-to-date, secured PHP versions. 

Post-update actions

EasyApache 4 removed OptMods and no longer supports them. However, in addition to the new RPM actions that EasyApache 4 can execute from its specification file, we created yum-plugin-universal hooks. These new hooks allow for executable actions based on the package name they operate in. For example, if you run a script on an ea-* package, if any updated packages exist in the ea4 namespace, the system executes these scripts.

Additional documentation