Install On The Command Line
Contents
Installing from the command line
WHMCS 8.8 and later include configuration settings for encrypted MySQL connections. For more information, see System Environment Guide and Enabling Encrypted MySQL Connections.
In addition to our other methods, you can install and upgrade WHMCS on the command line. This is useful when you provision WHMCS for multiple installations. To use this method of installation, you must first download the .zip file for the desired version of WHMCS and unzip it.
For advanced users
- We only recommend this method for advanced users who are familiar with WHMCS, database management, and the command line.
- Configuration and database issues can prevent you from using this method. Always create file and database backups before you use this method.
- This installation method doesn't perform system requirement checks.
Input
The installation script uses the following syntax:
php -f bin/installer.php –- [options]
Options
The script enables non-interactive mode (-n or --non-interactive) and performs an upgrade (-u or --upgrade) by default.
You can use these options with the installation script:
Option | Description |
---|---|
-c or --config | Provide configuration data in the JSON format. Use this with the -n or --non-interactive option.
For more on how to use this, see Supplying configuration data below. Added in WHMCS 7.10 We added this option in WHMCS version 7.10. |
-h or --help | View help information. |
-i or --install | Perform a new installation. |
-n or --non-interactive | Don't require user input while the script runs. |
-s or --status | Provide status information about the installation's files and databases. |
-u or --upgrade | Upgrade an existing installation. |
-v or --verbose | Run the script with verbose output. |
Supplying configuration data
If you use the -c or --config option, you must supply configuration data to STDIN as a single line of input in the JSON format.
You can supply data for two elements:
Array | Description |
---|---|
admin | Provide information for the initial administrator account using the username and password parameters. If you don't supply these, the system generates and displays them at the end of installation. |
configuration | Provide variable data for the creation of a new configuration file. For a list of parameters to use, see our documentation on creating a new configuration file for WHMCS.
|
Warning
Exercise caution when you supply sensitive information on the command line.
Example installation with configuration data
When you use the configuration element, your JSON data could resemble this example:
#!/bin/env bash
# The following assumes the respective environment variables are populated
CONF='{
"admin":{
"username":"name",
"password":"'$ADMIN_PASS'"
},
"configuration":{
"license": "'$LICENSE_KEY'",
"db_host": "'$DB_HOST'",
"db_username": "'$DB_USER'",
"db_password": "'$DB_PASS'",
"db_name": "'$DB_NAME'",
"cc_encryption_hash": "'$ENCRYPT_HASH'",
"mysql_charset": "utf8"
}
}'
You would then supply this data via the following command:
echo $(echo $CONF | tr -d "\n") | php -f bin/installer.php – -i -n -c
Important
The encryption hash value must be 64 characters long and contain only a–z, A–Z, and 0–9 ASCII values.
Generate this value with a high-entropy random data source or a cryptographic password generation tool. For example:
# Example hash value generation with the OpenSSL utility
ENCRYPT_HASH=$(openssl rand -base64 128|tr -d "\n\/+="|cut -c 1-64)