Problem - Getting display but with no wording/text in the Client front end

Solution

If you are not using the default English language. Make sure you had make a copy of the lang/english.php to the language you are using. For example, if you are using Chinese then copy lang/english.php → lang/chinese.php

Problem - WHMCS installation is behind CloudFlare

Solution

Since Cloudflare will mask your visitor's IP address, you will need to insert the following code into your WHMCS configuration.php


Cloudflare IP
if (isset($_SERVER["HTTP_CF_CONNECTING_IP"])) $_SERVER['REMOTE_ADDR'] = $_SERVER["HTTP_CF_CONNECTING_IP"];

Problem - Getting An error occurred while trying to connect to the hosting server. Please contact support. message on Client Area

Solution

This error occurs when there is no matching server in Module's Admin interface server listing (Figure 1) to the server that the hosting package it is using (WHMCS → Setup → Products/Services → Servers) Figure 1

Figure 1

Figure 2

To solve this issue, make sure the hosting servers that are going to be using this module have an Server Listing entry under the CSF Unblocker Admin interface

Problem - Remote server with system(), fileperms(), posix_getpwuid(), fileowner(), filegroup() disabled in PHP

Solution

These functions are only needed for the cronjob and with One Step Installer. If you had used the one step installer, then it should have copied your /usr/local/lib/php.ini into /var/www/

Therefore, you can simply removed them in the disable_functions in the /var/www/php.ini to allow the cronjob to have access to those functions without impacting your server's security.

Problem - Remote server passes the connection test but blank rules

Solution

If the remote server's Web Address is set to use https, try set it back to http.

Problem - Module stopped connecting to remote server

Solution

There are numerous factors on why the connection stop working. Here are a few things to check.

  • The module allows for a 15 minutes padding between server's time. So make sure the time between servers are in sync to the actual time

  • The remote server is blocking the IP of the WHMCS server, check /etc/csf/csf.deny

  • The module files on the remote server is not accessible. Check the httpd logs and see if CSFUnblockremote.php is being hit by your WHMCS

  • The ioncube loader updated during a update. Make sure the loader is able to decode the remote server files

Problem - Remote server passes the connection test but blank rules

Solution

If the remote server's Web Address is set to use https, try set it back to http.

Problem - Cronjob not running properly on the remote server

Solution

If the cronjob is running properly, the ownership for CSFUnblockRemote.php and CSFSettings.php in /var/www/html/ should be set to the $fileOwner and $fileGroup in CSFSettings.php.

You should also see the following files in /var/www/ generated by the cronjob

aa.cluster  aa.local  ar.cluster  ar.local csf.allow  csf.deny  csffilesize.txt  csf.tempban  daa.local  da.cluster  da.local  dr.cluster  dr.local tdr.cluster  tdr.local

If your cronjob isn't working, then check the following.

  1. The PHP binary the cronjob is running have the proper ioncube loader. If you are running multiple PHP environment then check the section below

  2. The php.ini in /var/www/ don't have the functions needed for this module. Removed them in disabled_functions if it is disabled. 

Note

Note that since only the module's cronjob is using the customized php.ini, therefore your system's security won't be compromised.

Problem - Dealing with Multiple PHP server environments

Solution

The module auto installer will install the cronjob using the native PHP (/usr/bin/php). There are few things you need to watch out for when you have multiple PHP installed on a system

  1. The PHP binary being use in the web root have ioncube10 enabled

  2. The cronjob being run have ioncube10 enabled

For the cronjob, you can make any necessary changes to the PHP binary you desire to run as long as ioncube10 is included.

Problem - IP isn't being removed from IPtables even though the IP removal was success via module

Solution

Try running the following command on the remote server's shell

perl /etc/csf/csf.pl -r

and if you get result similar to

Can't locate YAML/Tiny.pm in @INC (@INC contains: /usr/local/csf/lib /usr/local/cpanel /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at /usr/local/csf/lib/ConfigServer/CloudFlare.pm line 41.
Compilation failed in require at /etc/csf/csf.pl line 202.

then you just need to run the following command to fix the missing dependency.

cpan YAML::Tiny

If you don't get the error when running the first command, then make sure there is a cronjob installed and running properly on the remote server.

Things to check when the module is not connecting to the remote server

If your module is having trouble connecting to the remote server, here is a checklist for you to verify everything is setup correctly

  1. Click on the Connection Tester on the Server Listing in the Admin interface. This will reveal whether your WHMCS server can make a http/https connection to your remote server's Web Address. To test this on your browser, you should be able to goto http://yourhostname/CSFUnblockremote.php, if it display a white page. Then the remote files are installed properly. If you are getting a 404, then the files are missing in the document root. If you are getting 500 then the permission and ownership is most likely incorrect.

  2. Did you enable the $allowedIP variable in the CSFSettingsremote.php? If so, make sure the outgoing IP of your WHMCS matches one of the IP in the array.
  3. Make sure the remote server module files are in the document root for the Web Address of your remote server. For example, with cPanel/DA servers the default document root is /var/www/html. So perform the command ls -lah /var/www/html and see if the remote server module files had been installed to that path correctly if using the One Step installer.

  4. Check if there is any PHP error_log in the document root and the directory in Step 2. In a cPanel/DA server, it would be /var/www/ or /var/www/html

  5. Check if the remote server have the proper ioncube loader installed for the PHP. For servers with multiple PHP installed check which PHP binary is being run when the remote server file is being run and during the cronjob

  6. Check to see the cronjob is setup for on the remote server. The cronjob is essential for it to self heal any permission or ownership change. You also need to make sure the cronjob is running using root

Need Additional Support: Submitting Support Ticket

When submitting a support ticket regarding the module isn't connecting, please make sure to include the following information

  1. How did you install the remote server modules?

  2. Is the cronjob running?

  3. Perform the following two commands on your remote server's SSH
    ls -lah /var/www/

    and

    ls -lah /var/www/html

    and provide us the result

  4. Check /var/www/html and see if there is any error_log