DNS Manager For WHMCS

From ModulesGarden Wiki
Revision as of 14:19, 18 September 2015 by Albert (Talk | contribs)

Jump to: navigation, search



About DNS Manager For WHMCS

DNS Manager For WHMCS is fully featured addon module that allows your customers to manage their DNS zones.

Owing to great choice of submodules and unprecedented functionality DNS Manager for WHMCS easily adapts to your specific needs.
As an administrator you have full control over DNS zones and also access to broad range of options.

  • DNS Manager Supports The Following Modules:
✔ cPanel & cPanel DNSOnly
✔ Rage4 DNS
✔ 4PSA
✔ Storm On Demand
✔ Zonomi
✔ PowerDNS & PowerDNS Hosted
✔ OpenSRS
✔ Rackspace
✔ DNS.com
✔ SimpleDNS
✔ DirectAdmin
✔ RRPProxy Module
✔ EuroDNS
✔ Nettica
✔ DNS Made Easy
✔ Parallels Plesk
✔ AtomiaDNS
✔ Freenom
✔ DynDNS
  • DNS Manager Functionality:
✔ Multiservers Functionality
✔ Reverse DNS: cPanel, DNSMadeEasy, PowerDNS, Rage4DNS, SimpleDNS and Storm On Demand
✔ Adding Multiple IPs For Reverse DNS Zone
✔ Import Tool: cPanel, 4PSA, HostBill, PowerDNS, SimpleDNS, DirectAdmin, DNS Made Easy
✔ Email Notifications For Admin
✔ Integration Codes + Default Template Examples
✔ IDN Zones Supported
✔ Add/Delete Zones
✔ Add/Edit/Delete Zone Records
✔ Managing DNS And rDNS Records Per Product In The Client Area
✔ Two Client Area Templates: 'One Page' And 'Subpages'
✔ Switching Template In The Client Area: 'Simple' Or 'Advanced'
✔ Allow Users To Create Zones
✔ Zones Synchronization With Cron + Whitelist (Deactivate Domains With Wrong Nameservers)
✔ Filtering And Paging In Client Area
✔ Disable Records Functionality
✔ Removal Of Unused PTR Records (Cron Synchronization)
✔ History Logs
✔ Providing DNS Management Only Together With The Order Of Specific Domain/Product/Addon
✔ Security Zone Management
✔ Default Records Configuration
✔ NameServers Configuration
✔ Zones List Management in Admin Area
  • General Info:
✔ Balloon Descriptions Implemented To Facilitate Understanding of DNS Manager
✔ Multi-Language Support
✔ Supports WHMCS Templates Five and Six
✔ Supports WHMCS V5 and V6


In this short tutorial we will show you how to successfully install DNS Manager For WHMCS.

We will guide you step by step through the whole installation process.

1. Log in to your client area and download DNS Manager.
2. Upload and extract the module into the main WHMCS directory.
Files in your WHMCS directory should look like this.
3. When you install DNS Manager for the first time you have to rename 'license_RENAME.php' file.

File is located in 'modules/addons/dns_manager/license_RENAME.php.' Rename it from 'license_RENAME.php' to 'license.php'.

4. In order to configure your license key you have to edit a previously renamed 'license.php' file.

Enter your licence key between quotation marks as presented on the following screen. You can find your license key in your client area → 'My Products'.

5. After correct configuration of your license key, you have to configure 'clientareahome.tpl' file located in your currently used templates directory.

The screen below shows how a properly configured 'clientareahome.tpl' file for WHMCS V5 should look like:

WHMCS v5.x.x, template default integration

Copy and paste the following code at the beginning of your 'clientareahome.tpl' file:

if(isset($_GET['managedns'])) {
require_once substr($this->template_dir, 0 , strpos($this->template_dir, '/templates'))."/templates/dns_templates/dns_controller.php";
{if !$dnsmanagement}

WHMCS v6.0.x, templates FIVE or SIX integration
Copy and paste these codes at the beginning of your 'clientareahome.tpl' file:

if(isset($_GET['managedns'])) {
require_once substr($template->smarty->template_dir[0], 0 , strpos($template->smarty->template_dir[0], '/templates'))."/templates/dns_templates/dns_controller.php";
{if !$dnsmanagement}

Now copy and paste the below code as the last line in the 'clientareahome.tpl' file:
Note: required in case of both WHMCS system versions 5 and 6.


Open the below examples to see how properly inserted codes for each template should look like:

6. Now you have to activate the module in your WHMCS system.

Login to your WHMCS admin area. Click 'Setup' then choose 'Addon Modules'.
Afterwards find 'DNS Manager' and press 'Activate' button.

7. In next step you need to permit access to this module. To do so click on 'Configure' button, choose 'Full Administrator' and press 'Save Changes'.
8*. If you are using WHMCS V4, you have to rename (ex. dns_hooks.php) and copy 'modules/addons/dns_manager/hooks.php' to the 'includes/hooks/' directory.
9*. If you are using WHMCS V6, you must allow Smarty PHP Tags.

To do so, proceed to Setup → General Settings → Security, find 'Allow Smarty PHP Tags' and enable this function. Save changes afterwards.

10. Good job! You have just successfully installed DNS Manager For WHMCS! Now in your WHMCS system press 'Addons' then press 'DNS Manager'.

You should see a following screen.

11. It is time to add integration codes, you can find them at 'Addons' 'DNS Manager' 'Configuration' 'Integration Code' .
12. To provide DNS management in the client area, simply enter client area and choose 'Domains' 'Manage DNS'.
DNS9 1.png
You will see a screen as shown below. That's the proof that the entire installation process was successfully completed.

Configuration and Management

Connection and Basic Configuration

In the beginning let's connect DNS Manager with your module. We will show you this process by connecting DNS Manager with cPanel.

In your WHMCS click on 'Addons', then choose 'DNS Manager'. Go to 'Configuration' 'Connection' section.
Choose Cpanel from a dropdown menu. Enter your username, user password, Hostname/IP and press 'Test Connection'.
After a green notification 'Connect Successful' appears, you can press 'Save'.
Here you can also allow to create DNS zones when already in cPanel as account.

Now press 'Name Servers' and enter the nameservers that will be visible for your customers in their client area.

Configuration of Processing

In configuration section press 'Processing'. You will see a following screen.

Note: 'Manage DNS Link' option supports only a default template.

There are several configuration options. We will present you each one of them.

Firstly decide whether to use 'One Page' or 'Subpages' template and simply choose it from a dropdown menu.
You can allow DNS zones to create automatically with certain domains, products or product addons. You can also enable Reverse DNS here.
You can also enable Reverse DNS and template switching here. Features will be discussed in detail in other sections.
Beneath 'Automatically create zones:' mark for example 'With Product Addons' and select previously created addon/s. We chose 'Great Addon'.
That's it, press 'Save Changes' button. From now on, DNS zones will be automatically created with a product addon 'Great Addon'.
It is advised to check 'Security Zones Management' in order to prevent incorrect actions (e.g. creating subdomain while a domain does not belong to the client).

You can allow your customers to create their own DNS zones from client area for free.

For this purpose tick 'Allow To Create Own Zones' 'Free for all registered customers' and press 'Save'.
Afterwards all your registered clients will be allowed to create their own DNS zones regardless of registered domains or chosen products.

There is also an option to allow your customers to create their own DNS zones with for example certain product.

Tick 'Allow To Create Own Zones' 'WithProducts' and select previously created product/s. We chose 'DNS Management Product'.
That's all, press 'Save Changes' button. Afterwards, your customers will be allowed to create their own DNS zones only together with the order of this product.

Please note that while using 'Allow To Create Own Zones' option client's product should have a Dedicated IP to permit to create its own zones.

If client's product doesn't have a Dedicated IP then the client will see a following screen and won't be allowed to create a new zone.

In order to add a Dedicated IP go to 'Clients Profile' 'Products/Services' and enter the IP in the marked field. Afterwards press 'Save Changes'.
As you can see on the following screen our previously added IP appeared so we can proceed with adding our zone.

Management of Multiservers

Multiservers functionality allows you to use many different servers not necessarily using the same module.

For example you can have 3 different servers to manage your DNS zones with cPanel, Rackspace and PowerDNS.
Using Multiservers in DNS Manager is very simple. To start, tick 'Multiservers functionality' in 'Configuration' section.
Choose the template, enter your new server name and press 'Add Server'.

Now you can customize your new server according to your needs.

Management of Records

'Disable Editing Records' as the name indicates allows you to forbid editing certain record types.

In order to use this feature simply tick record type you want to disable and press 'Save Changes'.


Adding Default Records

DNS Manager allows you to add your own default records to each DNS zone. In order to add a new default record press 'Default Records' and 'Add New Record'.
Afterwards choose your record type from a dropdown menu, enter address, proper TTL, value and press 'Save Changes'.
Now we will create a new DNS zone to present you our new default record. Press the 'Edit' button next to our new DNS zone.

Keep in mind that new default records will be added only to DNS zones created after adding a new record. Operation will not affect the already existing DNS zones.

On the following screen you can see new default record successfully added to our DNS zone.

Management of Reverse DNS

In order to enable Reverse DNS log in to your WHMCS. Press 'Addons' 'DNS Manager' 'Processing' and tick 'Enable Reverse DNS' , marking 'Manage DNS Link' will be also needed.

Modules that currently support Reverse DNS are cPanel, Storm On Demand, SimpleDNS and Rage4DNS.
Note that multiple PTR and deletion of empty rDNS zones are disabled by default when you enable Reverse DNS.
You can enable these functionalities through selecting marked fields as shown on the following screen.

Now in your client area go to 'Domain' 'Manage DNS', afterwards click on 'Manage Reverse DNS'.
Next, press 'Add' button.
Afterwards enter zone name, IP address, value and press 'Add' button once again.
Your rDNS zone and record have been successfully created. Now you can also edit your rDNS zones.

Management of Zones List

Zones List allows you to monitor and manage your DNS zones. You can synchronize, create or delete zones from here.

Let's for example synchronize one of our DNS zones with the WHMCS system. For that purpose simply press 'Synchronize'.

As shown on the screen below our synchronization was successful and our zone exists.

Use 'Manage Zone' button on zones list to manage them.

As you can see DNS Management for our zone appeared. Very convenient, isn't it?

Management of Import Tool

Import Tool lets you quickly import your zones from chosen cPanel, 4PSA, HostBill, PowerDNS, SimpleDNS, DirectAdmin or DNS Made Easy server.

As an example we will show you how to import your zones from cPanel server.
First in your main menu click 'Import Tool'. Then enter your server details and press 'Show Zones'.

If you would like to import zones from same cPanel server that you set in 'Connection' section, you can do this in a more convenient way.

In such a case you can avoid entering server details. To do so, simply tick 'Use your current cPanel module connection settings:' as shown on the screen below.

As you can see the entire list of zones has been successfully displayed. Let's import several zones.

For this purpose choose your zones and assign a client to each of them through using dropdown menu. Afterwards press 'Import Zones'.

The following message will appear as a confirmation of the successful accomplishment of the operation.
Now let's check your new zones in the Zones List. As you can see on the screen, they have been properly imported.

Management of Synchronization

Here you can set up automatic termination of unused zones and unused PTR records.

Unused zone is a zone which doesn't contain all the nameservers set up in 'Configuration' → ' Nameservers '.
For this purpose simply set up new Cron task provided by DNS Manager.
In 'Synchronization' section you can also whitelist your domains. To perform this action click at 'Select' button.

Whitelist is used to avoid accidental deletion of domains.

Management of Email Notifications

With this functionality enabled you will receive emails each time the domain is created, modified or deleted.

To receive notifications click on 'Email Notifications' located in 'Configuration' and tick 'Enable Email Notification' as shown on the screen below.

Afterwards the 'Reported actions' section will show up. Choose notifications that suit you best and press 'Save Changes'.

Integration Codes

With these codes you can easily change templates of your client area. You will find them in 'Configuration' 'Integration Codes' section.

You can download files you have to alter and check where to paste code.


Client Area

Find out more about dns management in your client area.

Management of DNS Zones

Adding new DNS zone is very simple. First you need to go to your product details and open 'Manage DNS' tab. Afterwards press 'Add Zone'.
In next step enter your zone name, IP address and press 'Add Zone'.
If the operation was successful, you will see a following screen.

In order to check your new DNS zone details press Edit button.

You will see a screen similar to the one shown below. Here you can view and edit your zone's details.

Management of DNS Records

At product view, customers can manage their DNS and rDNS records.

To view DNS records simply go to 'Manage DNS' tab as presented on the following screen.

Here you can view all DNS records assigned to a certain domain.

To add new record, simply enter values to record with empty textbox fields at the bottom of page as shown on the screen below.
You can also add multiple records at once. To do so, add new empty record by pressing 'More Records' (1) button. When you are finished, save changes by pressing 'Save Changes' .

You can also edit records from the list. To do so, enter changes into textboxes you want to alter and press 'Save Changes' .

Management of rDNS Records

In order to manage rDNS go to 'Domain' 'Manage DNS', afterwards click on 'Manage Reverse DNS'.
To add new rDNS zone, press 'Add' button.
Afterwards enter zone name, IP address, value and press 'Add' button once again.
You can also edit your rDNS zones. To do so, press edit button.
Afterwards enter desired values into textbox and press 'Save'.

Template Switching In The Client Area

Your customers can choose the complexity of zones management through switching between two templates: 'Simple' and 'Advanced'.

To enable this functionality, go to your DNS Manager → 'Configuration' 'Processing' and tick 'Allow to switch template' as presented on the following screen.

From this moment, new field 'Change Template' will show up in DNS Manager client area during zones management.

Default template is 'Simple' and it allows your customers to edit records separately. To change template, choose 'Edit All Records (Advanced)' from a dropdown menu.

'Advanced' template allows your customers to edit all records. Records are grouped by type.
A screen below presents edit of CNAME records in Advanced template.

Custom cPanel Zone Templates

You can allow your customers to create zones without cPanel Default Records. To do so you need to create your own Zone Template in the WHM.

If you don't know how to create your own Zone Template you can follow this short guide made by cPanel: Edit Zone Templates Guide
To apply your newly created zone template simply log in to your WHMCS and go to 'Addons' 'Cpanel Extended Functions' 'Configuration'.
As a module choose 'Cpanel' and enter the name of your zone template in 'Template' field as shown on the screen below. Remember to save the changes.


DNS Manager Logs

Logs help you keep track of all the activities carried out in DNS Manager.


1. To provide a DNS management in client area simply enter 'Domains' 'DNS Manager'.
2. When you set up processing to create zones with domains, the zones will be automatically created while ordering a new domain.

If you would like to add zone to your already existing domain you can do it manually.

3. We recommend to run Cron once per hour.
4. Cron checks up to 100 zones. If you have for example 200 zones, Cron will check zones from 1 to 100 first, then it will check zones from 101 to 200.
5. If the zone is inactive or mis-configured for longer than 24 hours, Cron will automatically delete it. Single Cron run removes up to 5 such zones.
6. 'Default IP' as the name suggests is default IP address of the zone. If you don't specify an IP address when you create a new zone, default IP will be used.

In case you don't provide default IP neither zone IP, you won't be able to create new zone.

7. 'Name' in PowerDNS module 'Connection' tab is the field called 'name' in the SOA record. This record is added when the zone is created.

You can define SOA record format in the configuration of the module. Available variables are {$domain} and {$ip} in fields: 'Name', 'Primary', 'Hostmaster'.

8. To connect to the module using Rage4 DNS enter your API key instead of password.
9. Variable $dns_manager_is_active returns true if DNS Manager Add-On is active.

Variable $dns_manager_link returns a link when domain is available in DNS Manager (exists on the list in the 'Zones List' ).
If you can't access DNS Management from the client area then make sure that domain for which $dns_manager_link is empty, is located on the 'Zones List'.

10. The screen below shows an example configuration of PowerDNS connection.

Common Problems

1. When you have problems with connection, check whether your SELinux or firewall does not block ports.
2. If after successful installation in your client area you receive following or similar error:
Fatal error: main() [function.require]: Failed opening required '/var/www/html/client/templates/dns_templates//lang/english.php'
(include_path='.:/usr/share/pear:/usr/share/php') in /var/www/html/client/templates/dns_templates/dns_controller.php on line 0

That means that you have forgotten to configure and save processing of your addon. Tutorial on how to configure processing you can find here
This was fixed in DNS Manager 1.6

3. Access denied error on Test Connection it's a bug which might appear with dns only servers OR banned IP in cphulk.

If you are sure that details are correct, please ignore this error and try to create/terminate the zones to see whether the connection is working.

4. If you see a blank page right after installation process please make sure that you configured and saved processing options.
5. 4PSA platform is very specific therefore it can cause some problems with DNS Manager. You may encounter problem with file privileges.

When connecting 4PSA module requires to download .wsdl file to 'include/dns_modules/4psa/tmp/wsdl' . It might appear that after connecting, the DNS Manager won't work properly.
To fix it you can create this directory on your own and set chmod 777 privileges. Afterwards try to connect and check whether the directory was created.
If directory has been created and you still have problems, you will need to edit a following files:

- includes/dns_modules/4psa/tmp/wsdl/xxx.xxx.xxx.xxx_port/soap/schema/1.5/Client/Client.wsdl
- includes/dns_modules/4psa/tmp/wsdl/xxx.xxx.xxx.xxx_port/soap/schema/1.5/DNSZone/DNSZone.wsdl
- includes/dns_modules/4psa/tmp/wsdl/xxx.xxx.xxx.xxx_port/soap/schema/1.5/System/System.wsdl

Afterwards please change the content of the files below:
<soap:address location="https://some_hostname:port/soap/client_agent.php"/>
<soap:address location="https://YOUR_IP:port/soap/client_agent.php"/>

6. If you get an error: 'Unable to create zone:Sorry, you must enter an IP.' , please make sure that your default IP or zone IP is not missing.
7. If while adding ReverseDNS you get an error: 'Sorry, you must enter an ip. Please try again.' , please make sure that your 'Default IP' field in module 'Connection' settings is not empty.
8. If you get an error: 'Connection Error: Unable to connect to database.' , please make sure that your database server is not blocking connection with WHMCS.
9. If you have problems with connection make sure that port 2086 is open (for no SSL connections) or port 2087 is open (for SSL connections).
10. If after install, you will get an ionCube encoder problem (wrong version), please open a support ticket.

We will provide you with different version of the module encrypted with the older version of ionCube.

11. If you are receiving a message: 'Operation Timed Out After 30000 Milliseconds With 0 Bytes Received.' , make sure all the servers in the cluster are active.
12. If you are updating your module to 1.9.10 version (compatible with the latest WHMCS v6) then remember to alter integration codes!

If you skip this step in the upgrade process the module will not work! Look at point 5 for more precise information.

Personal tools

WHMCS Modules
cPanel Modules
Magento Extensions
Magento Themes