SERVERS AND SERVICES

Application role

Last updated: January 2023

Support documentation / Application role

About

During installation of Enhance the Application (Apache) role is automatically installed on your first server. You can choose a different web server type for each of your servers. The web server type being run can be changed at any point. Enhance supports Apache, LiteSpeed and OpenLiteSpeed web servers.

The Application role provides the following services:

  • HTTP Apache 2.4, LiteSpeed or OpenLiteSpeed
  • PHP FPM or LSPHP (one per website, where the website has PHP enabled)
  • Screenshotd (internal Enhance service responsible for maintaining a screenshot of website added to the platform)
  • FTP (pure-ftpd)
  • Filerd (internal service which powers the web based file manager)

Installing Application role

ℹ️ To run the Application role on a server allow port 80, 443, 22 and 21 on your firewall.

The Application role can be installed on an existing or new server.

To add a Application role to a new or existing server:

  1. Click 'Servers' in the left side bar
  2. Choose the server that you want to add the backup role to
  3. Click 'Add role' and select the 'Application' check box.
  4. Select your web server type (Apache, LiteSpeed or OpenLiteSpeed)
  5. Complete the form and hit 'Add role'

ℹ️ You can navigate away from the server page when a service is being installed and you will be notified when the installation is completed.

ℹ️ The Application role will not automatically be mapped to websites. If you are installing a role which did not previously exist on your Enhance estate and you want to map existing websites to it so they can use the new functionality, use the "Move server" option from the left hand menu.

Application settings

The Application role automatically inherits Enhance's global Service settings. php-fpm (Apache only) and php.ini settings can be overridden on a per server basis.

To configure global Application settings:


  1. Open 'Settings' in the left sidebar
  2. Select 'Service' settings in the menu
  3. Navigate to the 'Application' section.

To override global Application settings on a per server basis:

  1. Open ‘Servers’ in the left side bar
  2. Select ‘Manage’ on the server
  3. Navigate to the ‘Role’ you’d like to configure custom settings for
  4. Click ‘Settings’

Any settings that are inherited by the global Application settings will be tagged 'Default'.

php.ini custom

php.ini

The default file for running application that require PHP.

PHP-FPM

Directives for the FPM pool that websites run under.

Screenshot interval

The frequency at which a website's screenshot will be taken. The screenshot is used in the UI.

Screenshot driver pool

The number of screenshot worker processes per Application server.

Automatically provision Let's Encrypt

This will automatically request a certificate for website and server domains with no existing certificates or a certificate that is due to expire.

PHP containerisation

Unlike other Enhance services, PHP for websites is not containerised using Docker. Instead, the internal service "appcd" manages the creation, teardown and monitoring of PHP containers. This is vastly more efficient for mass hosting, reduces overheads and allows for easier administration of websites.


The PHP SAPI (FPM or LSPHP depending on web server type) will be process ID 1 within the container.


If the SAPI process is killed, the container will automatically be restarted by appcd. It is not currently possibly to force a restart of the PHP SAPI however changing PHP-FPM or php.ini settings via the UI will initiate a reload automatically.

Entering a website container

To impersonate a website's unix user you can "su" to that user as normal. A custom PAM module will enter the container before dropping privileges so the shell environment will be identical to the PHP runtime with access to the same binaries and the ability to see the relevant processes.

SSH to a website container

Customer SSH shares the system's primary SSH server. When logging in to SSH as a customer (configured via "developer tools") the session will automatically enter the PHP container.

Cron

Website cron jobs (configured via the UI) are executed within the PHP container.

PHP versions

Enhance currently supports the following PHP versions. More are being added.

  • PHP 8.2
  • PHP 8.1
  • PHP 8.0
  • PHP 7.4
  • PHP 7.3
  • PHP 7.2
  • PHP 7.1
  • PHP 7.0
  • PHP 5.6


Each website has control of its own PHP version
. By default, 7.4 is configured on all new websites. Additional domains mapped to a website (add-on domains) use the same PHP version as the primary (root) domain.

It is currently not supported to compile a custom PHP. If you require a module which is not included in our standard configuration please raise a support ticket.

Troubleshooting

Unable to connect to FTP

If you have a firewall (local or external), allow the FTP passive port range inbound, 30000:31000.


PHP websites cannot connect to the outside internet


Check you have not disabled the "ufw" firewall. This is required as it manages the outbound NAT which PHP containers use to connect to the tinernet. Run:


sudo ufw enable

Still need help?

Our support team are on hand to help 9am - 9pm GMT.