Difference between revisions of "Automatic Updater"
(→Checking for Updates) |
|||
Line 1: | Line 1: | ||
− | <div class="docs-alert-info"><i class="fa fa-question-circle"></i> | + | <div class="docs-alert-info"> |
+ | <i class="fa fa-question-circle"></i> We added this feature in WHMCS 7.0. | ||
+ | </div> | ||
− | The Automatic Update utility allows | + | The Automatic Update utility allows admins to update WHMCS quickly and easily from directly within the Admin Area. |
You can access this feature at '''Utilities > Update WHMCS'''. | You can access this feature at '''Utilities > Update WHMCS'''. | ||
Line 9: | Line 11: | ||
== System Requirements == | == System Requirements == | ||
− | + | WHMCS has several system requirements for automatic updates: | |
− | * A PHP | + | * A PHP memory limit of at least 128MB. |
− | * At least 250 MB of free disk space | + | * At least 250 MB of free disk space. |
− | * PHP setting | + | * The PHP <tt>allow_url_fopen</tt> setting is enabled. |
− | * PHP max_execution_time | + | * The PHP <tt>max_execution_time</tt> setting is 60 seconds or more. |
− | * PHP Zip Extension or the proc_open PHP function enabled | + | * The PHP Zip Extension or the <tt>proc_open</tt> PHP function are enabled. |
− | * PHP setting | + | * The PHP <tt>open_basedir</tt> setting includes the entire WHMCS document root. |
== Configuring Your Update Settings == | == Configuring Your Update Settings == | ||
Line 22: | Line 24: | ||
=== Choosing an Update Channel === | === Choosing an Update Channel === | ||
− | The | + | The Automatic Updater allows you to choose the update channel for the least stable version you are willing to update to: |
<table class="table table-striped"> | <table class="table table-striped"> | ||
Line 31: | Line 33: | ||
<tr> | <tr> | ||
<td>Stable</td> | <td>Stable</td> | ||
− | <td>'''Recommended''' | + | <td>'''Recommended'''<br/>Only receive Stable updates to your installation.</td> |
</tr> | </tr> | ||
<tr> | <tr> | ||
<td>Current Version</td> | <td>Current Version</td> | ||
− | <td> | + | <td>Only receive maintenance updates for the currently-installed major and minor version. For example, if you are on a version in [[Long Term Support]] and we release a patch for it, this channel applies the patch but will not upgrade you to a later WHMCS version.<div class="docs-alert-info">This is useful for applying minor updates and security releases (see below).</div></td> |
</tr> | </tr> | ||
<tr> | <tr> | ||
<td>Release Candidate</td> | <td>Release Candidate</td> | ||
− | <td> | + | <td>Receive releases after beta testing but before we release them to the Stable tier.</td> |
</tr> | </tr> | ||
<tr> | <tr> | ||
<td>Beta</td> | <td>Beta</td> | ||
− | <td> | + | <td>Receive the latest versions of WHMCS as we release them to the Beta tier. Only select this tier for development and testing installations.</td> |
</tr> | </tr> | ||
</table> | </table> | ||
Line 49: | Line 51: | ||
==== Patch and Maintenance Release Updates ==== | ==== Patch and Maintenance Release Updates ==== | ||
− | + | If you are on a WHMCS version that is in [[Long Term Support]] and we issue a patch for that version, you can use the Automatic Updater to apply the patch without moving to a newer WHMCS version. | |
− | + | ||
− | + | To do this: | |
+ | |||
+ | # Select the '''Current Version''' update channel (see above). | ||
+ | # Click '''Check for Updates''' to refresh the available version. | ||
+ | # Proceed with your update as usual. | ||
<div class="docs-alert-warning"> | <div class="docs-alert-warning"> | ||
− | You may wish to change this setting back to | + | You may wish to change this setting back to '''Stable''' after updating to ensure future checks display the latest Active Development version available to you. |
</div> | </div> | ||
=== Setting a Temporary Update Path === | === Setting a Temporary Update Path === | ||
− | + | The temporary path allows you to stage files during an update. For security reasons, ensure that this directory is outside of the public document root, like the <tt>attachments</tt>, <tt>downloads</tt>, and <tt>templates_c</tt> directories. | |
+ | |||
+ | * The path must be an absolute path (for example, <tt>/home/username/tmp</tt> instead of <tt>~/tmp</tt>). | ||
+ | * The path must be writable by the user that is running PHP. | ||
=== Setting a Maintenance Message === | === Setting a Maintenance Message === | ||
− | + | Use this option to set a message to display to other admins and users whenever an update is in progress. | |
− | <div class="docs-alert-info">Modifying the update configuration requires the '''Modify Update Configuration''' administrator role permission, which is separate from the | + | <div class="docs-alert-info"> |
+ | Modifying the update configuration requires the '''Modify Update Configuration''' [[Administrator Roles|administrator role permission]], which is separate from the '''Update WHMCS''' permission. | ||
+ | </div> | ||
[[File:Configureupdatesettings.png|center]] | [[File:Configureupdatesettings.png|center]] | ||
Line 75: | Line 86: | ||
===Manually checking for updates=== | ===Manually checking for updates=== | ||
− | You can check for updates on | + | You can check for updates on demand by clicking '''Check for Updates'''. You may need to do this to see recent releases prior to the next automated check. |
− | |||
− | You may need to do this to see recent releases prior to the next automated check. | ||
For Owned licenses, the version that this fetches will be the version of WHMCS that was available when your Support and Updates subscription was active. Downloading the latest version of WHMCS requires an active Support and Updates subscription. | For Owned licenses, the version that this fetches will be the version of WHMCS that was available when your Support and Updates subscription was active. Downloading the latest version of WHMCS requires an active Support and Updates subscription. | ||
Line 90: | Line 99: | ||
# Follow the prompts to complete the update process. The update process can take anywhere from 30 seconds to a few minutes to complete. | # Follow the prompts to complete the update process. The update process can take anywhere from 30 seconds to a few minutes to complete. | ||
− | If you have custom template files you will also need to review and make any necessary changes to your custom templates using the | + | If you have custom template files you will also need to review and make any necessary changes to your custom templates using the '''Template Changes''' section of the [[Release_Notes|Release Notes]]. |
− | <div class="docs-alert-success"><i class="fa fa-warning"></i> | + | <div class="docs-alert-success"> |
− | + | <i class="fa fa-warning"></i> | |
− | + | * The update will not alter your customizations if you follow our recommendations (for example, our guidelines for [https://developers.whmcs.com/themes/ templates], [[WHOIS_Servers|Whois servers]], [[Additional Domain Fields|additional domain fields]], and [[Customising Countries and Calling Codes|country and calling codes]]. | |
+ | * You '''must''' reapply any custom file permissions (for example, for <tt>/crons/pipe.php</tt>) after upgrading. | ||
+ | </div> | ||
== Troubleshooting == | == Troubleshooting == | ||
− | + | You can find the log of Automatic Updater actions in the <tt>tblupdatelog</tt> table in the WHMCS database. To troubleshoot upgrade problems, review this table for the most recent entries (the highest <tt>id</tt> values). You can use a tool like phpMyAdmin to browse the table's contents. | |
− | For | + | For more information on troubleshooting update issues, see [http://help.whmcs.com/m/updating Updating] and [[Upgrading New Installation Prompt]]. |
===Please ensure you have selected a valid Update Channel and then try again=== | ===Please ensure you have selected a valid Update Channel and then try again=== | ||
− | Receiving this error message in the cron job report email or activity log | + | Receiving this error message in the cron job report email or activity log indicates that you need to select an update channel. |
− | + | To fix this issue: | |
+ | |||
+ | # Click '''Configure Update Settings'''. | ||
+ | # Select one of the four available update channel options ([[#Choosing an Update Channel|see above]]). | ||
+ | # Click '''Save Changes'''. | ||
===Permission Errors=== | ===Permission Errors=== | ||
Line 117: | Line 132: | ||
* <tt>Apply update dry-run detected 1 permission issues</tt> | * <tt>Apply update dry-run detected 1 permission issues</tt> | ||
− | The exact file permission and ownership issues | + | The exact file permission and ownership issues depend on the individual server configuration. However, for a standard cPanel & WHM server using the suPHP PHP handler, the following configuration would be an appropriate POSIX file permissions: |
* <tt>configuration.php</tt> — <tt>400</tt> | * <tt>configuration.php</tt> — <tt>400</tt> | ||
Line 124: | Line 139: | ||
* All directories — <tt>755</tt> | * All directories — <tt>755</tt> | ||
− | The file ownership and group should be the same as the user directory name. For example, on a cPanel & WHM server with a web root at <tt>/home/username/public_html/</tt>, | + | The file ownership and group should be the same as the user directory name. For example, on a cPanel & WHM server with a web root at <tt>/home/username/public_html/</tt>, <tt>username</tt> would own the files and the group would also use the name <tt>username</tt>. |
Finally, the owner and group of the PHP process must be the same as the user directory name. For example, on a cPanel & WHM server with a web root at <tt>/home/username/public_html/</tt>, the PHP process owner and group would both be <tt>username</tt>. | Finally, the owner and group of the PHP process must be the same as the user directory name. For example, on a cPanel & WHM server with a web root at <tt>/home/username/public_html/</tt>, the PHP process owner and group would both be <tt>username</tt>. | ||
Line 132: | Line 147: | ||
===Unable to connect to the WHMCS Update Server=== | ===Unable to connect to the WHMCS Update Server=== | ||
− | You may see this error | + | You may see this error in two locations: |
+ | |||
+ | * While attempting an automatic update. | ||
+ | * In the '''Activity Log''' section at '''Configuration (<i class="fa fa-wrench" aria-hidden="true"></i>) > [[System Logs]]''' or, prior to WHMCS 8.0, '''Utilities > Activity Log'''. | ||
+ | |||
+ | It indicates that your server could not connect to the WHMCS update server. | ||
To resolve this, attempt the following cURL connections from your server's command line: | To resolve this, attempt the following cURL connections from your server's command line: | ||
Line 142: | Line 162: | ||
</nowiki></div> | </nowiki></div> | ||
− | If these commands | + | If these commands succeed, they will return <tt>StatusCode: 200</tt>. If they do not, ask your hosting provider or system administrator to investigate the connectivity problem between your server and the WHMCS update server. |
Revision as of 18:25, 17 August 2022
We added this feature in WHMCS 7.0.
The Automatic Update utility allows admins to update WHMCS quickly and easily from directly within the Admin Area.
You can access this feature at Utilities > Update WHMCS.
For more information on the way in which updates change files, see Updater File Changes.
Contents
System Requirements
WHMCS has several system requirements for automatic updates:
- A PHP memory limit of at least 128MB.
- At least 250 MB of free disk space.
- The PHP allow_url_fopen setting is enabled.
- The PHP max_execution_time setting is 60 seconds or more.
- The PHP Zip Extension or the proc_open PHP function are enabled.
- The PHP open_basedir setting includes the entire WHMCS document root.
Configuring Your Update Settings
Choosing an Update Channel
The Automatic Updater allows you to choose the update channel for the least stable version you are willing to update to:
Channel | Description |
Stable | Recommended Only receive Stable updates to your installation. |
Current Version | Only receive maintenance updates for the currently-installed major and minor version. For example, if you are on a version in Long Term Support and we release a patch for it, this channel applies the patch but will not upgrade you to a later WHMCS version. This is useful for applying minor updates and security releases (see below). |
Release Candidate | Receive releases after beta testing but before we release them to the Stable tier. |
Beta | Receive the latest versions of WHMCS as we release them to the Beta tier. Only select this tier for development and testing installations. |
Patch and Maintenance Release Updates
If you are on a WHMCS version that is in Long Term Support and we issue a patch for that version, you can use the Automatic Updater to apply the patch without moving to a newer WHMCS version.
To do this:
- Select the Current Version update channel (see above).
- Click Check for Updates to refresh the available version.
- Proceed with your update as usual.
You may wish to change this setting back to Stable after updating to ensure future checks display the latest Active Development version available to you.
Setting a Temporary Update Path
The temporary path allows you to stage files during an update. For security reasons, ensure that this directory is outside of the public document root, like the attachments, downloads, and templates_c directories.
- The path must be an absolute path (for example, /home/username/tmp instead of ~/tmp).
- The path must be writable by the user that is running PHP.
Setting a Maintenance Message
Use this option to set a message to display to other admins and users whenever an update is in progress.
Modifying the update configuration requires the Modify Update Configuration administrator role permission, which is separate from the Update WHMCS permission.
Checking for Updates
The system automatically checks for updates periodically. When an update becomes available, a notification will appear in the Admin Area.
Manually checking for updates
You can check for updates on demand by clicking Check for Updates. You may need to do this to see recent releases prior to the next automated check.
For Owned licenses, the version that this fetches will be the version of WHMCS that was available when your Support and Updates subscription was active. Downloading the latest version of WHMCS requires an active Support and Updates subscription.
Performing an Update
To perform an update:
- Make certain that your server meets the system requirements and review the Release Notes for any important notices and information.
- Make a full backup of your current installation.
- In WHMCS, click Update Now. This option only displays if an update is available for your current update channel.
- Follow the prompts to complete the update process. The update process can take anywhere from 30 seconds to a few minutes to complete.
If you have custom template files you will also need to review and make any necessary changes to your custom templates using the Template Changes section of the Release Notes.
- The update will not alter your customizations if you follow our recommendations (for example, our guidelines for templates, Whois servers, additional domain fields, and country and calling codes.
- You must reapply any custom file permissions (for example, for /crons/pipe.php) after upgrading.
Troubleshooting
You can find the log of Automatic Updater actions in the tblupdatelog table in the WHMCS database. To troubleshoot upgrade problems, review this table for the most recent entries (the highest id values). You can use a tool like phpMyAdmin to browse the table's contents.
For more information on troubleshooting update issues, see Updating and Upgrading New Installation Prompt.
Please ensure you have selected a valid Update Channel and then try again
Receiving this error message in the cron job report email or activity log indicates that you need to select an update channel.
To fix this issue:
- Click Configure Update Settings.
- Select one of the four available update channel options (see above).
- Click Save Changes.
Permission Errors
Permission errors in the update log may resemble the following examples:
- [WHMCS\Exception] Failed to perform early file copy during WHMCS file relocation: init.php
- [RuntimeException] /path/to/whmcs/whmcs does not exist and could not be created.
- failed to open stream: Permission denied
- Apply update dry-run detected 1 permission issues
The exact file permission and ownership issues depend on the individual server configuration. However, for a standard cPanel & WHM server using the suPHP PHP handler, the following configuration would be an appropriate POSIX file permissions:
- configuration.php — 400
- /crons/pipe.php — 755
- All other PHP files — 644
- All directories — 755
The file ownership and group should be the same as the user directory name. For example, on a cPanel & WHM server with a web root at /home/username/public_html/, username would own the files and the group would also use the name username.
Finally, the owner and group of the PHP process must be the same as the user directory name. For example, on a cPanel & WHM server with a web root at /home/username/public_html/, the PHP process owner and group would both be username.
Other types of server and PHP handlers may have different configuration requirements.
Unable to connect to the WHMCS Update Server
You may see this error in two locations:
- While attempting an automatic update.
- In the Activity Log section at Configuration () > System Logs or, prior to WHMCS 8.0, Utilities > Activity Log.
It indicates that your server could not connect to the WHMCS update server.
To resolve this, attempt the following cURL connections from your server's command line:
curl -v https://releases.whmcs.com/v2/packages.json
curl -v https://pki.whmcs.com/If these commands succeed, they will return StatusCode: 200. If they do not, ask your hosting provider or system administrator to investigate the connectivity problem between your server and the WHMCS update server.