WHASOLS is compatible with most web server environments. Installing WHASOLS in your web environment is usually straight forward. As well, WHASOLS is continually providing updates which can seamlessly support environment updates from the upstream providers. However, as new technologies emerge and your current system's environment has access to new updates, it's important that you are aware of how they might affect your WHASOLS deployment. This guide is designed help you and your system administrator prepare and manage your environment.

Overview

WHASOLS is designed for a traditional LAMP (Linux, Apache, MySQL, PHP) environment. The minimum requirements and basic version compatibility related to those sub-systems are provided in our System Requirements.

The development of WHASOLS is such that alternative technologies may be viable, however they are not tested and assistance from our Support Team will be limited. For example, if you wish to use NGINX instead of Apache, it may be technically possible. However, our Support will have limited knowledge about how to properly configure NGINX or debug behaviors that are specific to NGINX.

If you require the use of something other than Linux, Apache, or MySQL please consult with your system administrator to evaluate the immediate possibilities for (in)compatibility and long-term viability so that your environment management strategy accommodates for your specific requirements.

Operating System

WHASOLS is designed to run in a standard Linux operating/file system. WHASOLS relies on PHP for interaction with the file system. In some operating systems (such as Windows) or environments (such as jails or chroots) the file system may have restrictions or inherent behaviors which may be hard to detect or uncommon. When possible, WHASOLS provides notices that indicates incompatibility. If you require a different operating/file system, please discuss with your system administrator. Our Support Team is available to provide limited assistance to your system administrator for your custom environment.

Also of note, WHASOLS relies heavily on the Linux Cron sub-system to trigger background tasks and perform periodic automation tasks such as deferred provisioning, service synchronization, invoice generation, billing, and more. You may learn more at the crons documentation.

Note: the command line PHP used to invoke the cron will need to meet the same requirements as the PHP binary used by your web server. This includes ini settings and enabled extensions.

Web Server

WHASOLS is designed to work with the Apache web server version 2.x. While there are no special Apache configurations required for WHASOLS, there are some advantages available to you and your WHASOLS deployment that you may wish to consider.
Extensions
mod_rewrite
The Apache mod_rewrite module allows Apache to inspect and modify URLs and redirects through the use of .htaccess files within your web server docroot. WHASOLS can create and manage a .htaccess file, and thus generate and consume friendly URLs in various parts of the product. This feature is described in more detail at Friendly URLs.
Handler
The web server is responsible for all web applications on the server, and thus the Unix permissions granted to the php process (php handler) that operate with your web application are important. Some PHP handlers will execute all php code on the system as the same Unix user (server wide handlers like CGI & mod_php) while other handlers execute the PHP process as a specific user based on domain name (per vhost handlers like suphp, mod_ruid2). Both options are viable for WHASOLS. However, as a matter of security, you need to ensure that no other applications on the server, outside your control, executes as the same Unix user. Your system administrator should be able to configure the web server so that this minimum level of security is met, or more conservatively, that the WHASOLS web application process is executed by a user that is wholly unique amongst any other application on the server (even those within your control).

Directives
WHASOLS uses configuration directives to alter the web server configuration on a per-directory basis. As Apache is the recommended web server software platform to run WHASOLS on, these directives are included via the following .htaccess files.

~/.htaccess
This file contains the mod_rewrite directives responsible for sending routable paths through the index.php file. This in turn allows the internal routing system to function, and furnishes WHASOLS with the ability to create consumer friendly URLs. 
~/vendors/.htaccess
This file prevents access to the ~/vendors directory. This ensures that the web server is not serving file requests directly from this location, and that WHASOLS is still capable of accessing the libraries it needs to function. More information can be found on the Further Security Steps documentation page.
While other web server technologies are not officially supported, we understand that some users do wish to run WHASOLS in environments other than Apache. For those that do, you must ensure that the functionality offered by the aforementioned directives has been implemented by your web server configuration.

How this is achieved depends on the web server itself. If uncertain, then you should consult with your server administrator. As an example, you can find a guide detailing how to secure the vendor directory on the NGINX web server on the Nginx Directory Access Restriction documentation page.

Database
WHASOLS is designed to work with the MySQL database. Binary compatible alternatives (such as MariaDB) should be suitable, however their default configurations and optimizations are likely to be different and you should consult with your system administrator or database administrator.