Installing WHMCS on virtualmin

40 posts / 0 new
Last post
#1 Fri, 03/05/2010 - 01:12

Installing WHMCS on virtualmin

Hi I have been trying to find a solution to be able to install whmcs on one of my vmin site, and wondering if anyone can help me, where i keep failing...

I am currently using a trial of whmcs and want it to work with virtualmin, even though I have found a lot of posts discussing, whmcs and virtualmin, nothing shows you how to install, well not the way I want.

apparently I can install virtualmin via whmcs but that's not what I'm after, and after so many failed attempts I thought I would ask around :)

Im using debian 5.0464bit and I have done the basic install with ioncube and curl etc, and all seems to work fine, but when I attempt to run crons for say monitoring the admin directory or for support tickets etc, I get the error,

Output from command php -q /home/hostmewebz/public_html/smclients/seedmin/cron.php ..
Site error: the file <b>/home/hostmewebz/public_html/smclients/includes/hookfunctions.php</b> requires the ionCube PHP Loader to be installed by the site administrator.

and no matter what I try or were I try it wont work. I have tried moving ioncube to the public_html directory and pointed the zend_extention to the public_html dir, but that failed because php.ini would not pick up that ioncube was installed, so I then tried in the var directory and a few others, but failed each time, so I then thought maybe it would be easier with ubuntu (dnt ask me why lol) but anyways same thing, whmcs wont pickup on ioncube even tho it shows in php info.. Can anyone please help me get over this hurdle...


Fri, 03/05/2010 - 02:24
ronald's picture

Which version of virtualmin? GPL or Pro?
Is the domain where you have WHMCS installed running in mod_php, CGI or mod_fcgid?

Did you install Zend according to their instructions? Which version of Zend?
Did you install Ioncube according to their instructions?
Do you have the correct lines in the php.ini?

It would look like this with Zend 3.3.3:

zend_extension = /usr/local/ioncube/


Did you restart Apache after installation?

Fri, 03/05/2010 - 16:37

In the instructions it doesnt say to install zend, what I did on my debian LAMP, before I used virtualmin GPL, was download and unpack ioncube, then ftp it to the server, which I then would use the

mv /home/husskii/ioncube /usr/local/

command, the restart apache and find ioncube in my php info under addon modules. Then I would ftp whmcs to the internet root dirtectory and install via my browser..

after Im done I would create the crons in webmin and all was done... I got no errors and it worked like a charm.

this time with virtualmin GPL I uploaded ioncube via the site user, then use root to move it to the /usr/local/ directory, then upload whmcs again with the site user and go to my browser and install whmcs, but this time it woulodnt allow me to create crons, thus giving me the errors I mentioned in my first post..

I havent seen anything in the instructions to actually install zend, the max I installed was

apt-get install curl php5-curl libcurl4-openssl-dev..

this is wat it looks like in my php info file

zend_extension = /usr/local/ioncube/

this is the instructions I follow when installing whmcs


I must say that, I have never seen this..



Fri, 03/12/2010 - 13:05 (Reply to #3)

I've been using WHMCS on VMin Pro for close to a year now. Did you get this resolved? If not maybe I can help you a bit.


Fri, 03/05/2010 - 05:39
ronald's picture

the line needed is in your used php.ini
what says phpinfo() ?
Create a info.php in the whmcs domain, put below code in and call it in a browser.
Is the Ioncube module actually loaded?

<div class="codeblock"><pre><code><span style="color: #000000"><span style="color: #0000BB"><?php<br /></span><span style="color: #007700">&</span><span style="color: #FF8000">#10;&#10;// Show all information, defaults to INFO_ALL&#10;phpinfo();&#10;&#10;// Show just the module information.&#10;// phpinfo(8) yields identical results.&#10;phpinfo(INFO_MODULES);&#10;&#10;<br /></span><span style="color: #0000BB">?></span></span></code></pre></div>
Fri, 03/05/2010 - 16:34

Hi I created the php info, and ioncube is still loaded, I haven't had any trouble getting the ioncube to show in php info, its just after I install whmcs and try to create the crons needed I would get the error, that

hookfunctions.php requires the ionCube PHP Loader to be installed by the site administrator

which makes me confused because it is actually loaded, the only thing i guess is that whmcs or something isnt picking up on it..

Ive added a screen shot of my php info additional moduals, this time I also created the info page with the code you gave me, instead of

<div class="codeblock"><pre><code><span style="color: #000000"><span style="color: #0000BB"><?php<br /> phpinfo</span><span style="color: #007700">(); <br /></span><span style="color: #0000BB">?></span></span></code></pre></div>

which i normaly use..

also with the lines you showed me regarding zend, if I have to manually put them somewhere, I haven't done that before... The most Ive done regarding zend is just that one line

zend_extension = /usr/local/ioncube/

in the php.ini


Fri, 03/05/2010 - 17:56
ronald's picture

Get ZendOptimiser 3.3.3, install it over a shell and put the code I posted earlier at the bottom of php.ini.
That is how i got my WHMCS working.
I couldn't get it to work with only Ioncube either.

Fri, 03/05/2010 - 18:01
ronald's picture

in a shell, do:
Decompress it.
tar xvfz ZendOptimizer-3.3.3-linux-glibc23-i386.tar.gz
cd ZendOptimizer-3.3.3-linux-glibc23-i386
then run and follow instructions

You may need to get the 64bit version from zends website, not sure if it exists though

Fri, 03/05/2010 - 18:07
ronald's picture

my phpinfo looks like:
This program makes use of the Zend Scripting Language Engine:
Zend Engine v2.2.0, Copyright (c) 1998-2009 Zend Technologies
with the ionCube PHP Loader v3.3.7, Copyright (c) 2002-2009, by ionCube Ltd., and
with Zend Extension Manager v1.2.2, Copyright (c) 2003-2007, by Zend Technologies
with Zend Optimizer v3.3.3, Copyright (c) 1998-2007, by Zend Technologies

Fri, 03/05/2010 - 19:10

HI I have just downloaded the ZendOptimizer-3.3.9-linux-glibc23-x86_64.tar.gz via the site, then ftp'd across to the tmp directory on my server, after that I followed the instructions you posted, by unpacking

vs2:/tmp# tar xvfz ZendOptimizer-3.3.9-linux-glibc23-x86_64.tar.gz

then attempted to run the command and got the error

-bash: command not found

so I ran ls -l to see if it was maybe ./ like vmin but all I found were these files..

vs2:/tmp/ZendOptimizer-3.3.9-linux-glibc23-x86_64# ls -l
total 44
drwxr-xr-x 9 root root  4096 2009-08-24 21:58 data
-rw-r--r-- 1 root root 10342 2006-05-19 03:21 EULA-ZendOptimizer
-rw-r--r-- 1 root root  7716 2009-08-24 21:58 Inventory.xml
-rw-r--r-- 1 root root 10342 2006-05-19 03:21 LICENSE
-rw-r--r-- 1 root root   469 2009-08-24 21:58 md5
-rw-r--r-- 1 root root  1264 2009-08-24 21:54 README-ZendOptimizer

so I attempted ./ just in case but encountered the same error as i got with

after unpacking the tar.gz on my local pc and having a look in its folders I noticed that the data folder that there has more directories such as 4_2_0_comp, 4_2_x_comp etc all the way upto 5_2_x_comp and inside 5_2_x_comp the is a file called

just a theroy lol, but is it possible that I may have to upload that to a directory such as /usr/local/ and then maybe add the path to the php.ini as I did with ioncube...

EDITED**** Very strange I just had a look at the pdf install instructions that came with the download and it shows the same install method you gave me ronald but as mentioned there is no option to actually use ./ or

[ONCE AGAIN IM STUCK LOL] oh by the way I'm just downloading the optimizer, I dnt need anything else do I, such as the ZEND GAURD or ZEND SERVER...


Fri, 03/05/2010 - 20:07

Ok I think its installed or at least loaded now, I found a read me in the download folder and it said to do the same as what I mentioned earlier, which was the same method as ioncube loader by putting the data folder in the /usr/local/ directory, then opened php,ini and sent the path to it the same way as ioncube, which was

zend_extension= /usr/local/data/5_2_x_comp/

now I have the following in my php info page... [ATTACHED]

also I dnt have any of these to add to my php.ini


other then I have no other files, except a few read me files...

is there anything else I need to do, am I missing anything...

OK hopefully it will all work as planed, so ill try go ahead with the install of whmcs again and see if it help...

if there is anything else I need to do, please let me know..


**EDIT*** Damn I just reinstalled and again I still get the same error when I try run crons,

Output from command php -q /home/hostmeweb/public_html/whmcs/admin/cron.php ..
Site error: the file <b>/home/hostmeweb/public_html/whmcs/includes/hookfunctions.php</b> requires the ionCube PHP Loader to be installed by the site administrator.

I guess I need


But I dnt have them and they didnt come with the download?

Sat, 03/06/2010 - 15:38
ronald's picture

i gave you the download link as a wget a few posts it again..

in a shell, do: wget Decompress it. tar xvfz ZendOptimizer-3.3.3-linux-glibc23-i386.tar.gz cd ZendOptimizer-3.3.3-linux-glibc23-i386 then run and follow instructions

You may need to get the 64bit version from zends website, not sure if it exists though

Sat, 03/06/2010 - 15:41
ronald's picture

the zendoptimiser 3.3.9 has no installer and need to be placed on the server, but i didnt get that to work either. so version 3.3.3 is what's working on my server. try that one too, may get the 64bit version off their site though.

Sat, 03/06/2010 - 16:05
ronald's picture

actually I just tried ioncube on another server which is 64bits and I got whmcs running there without ZendOptimiser.
I uploaded the iocube folder to /usr/local/ioncube I downloaded the 64bit version

this is in the php.ini: zend_extension = /usr/local/ioncube/

Sat, 03/06/2010 - 18:20

HI ronald Actually getting whmcs to work, like the site will load and I can login and use the features, add products etc, but when i try run the cron jobs, like

php -q /home/hostmeweb/public_html/whmcs/admin/cron.php

in virtualmin/webmin I get the following error

Output from command php -q /home/hostmeweb/public_html/whmcs/admin/cron.php ..
Site error: the file <b>/home/hostmeweb/public_html/whmcs/includes/hookfunctions.php</b> requires the ionCube PHP Loader to be installed by the site administrator.

which basically means I cant run many tasks because there is a few sections like the support ticket systems, which need to be automated, and need crons to run... also I cant monitor certain folders, such as wen someone tries to login incorrectly I wont be notified, which is needed for security..

Where you able to run cron jobs, on your setup...


Sat, 03/06/2010 - 18:57
ronald's picture

On my 64bit server I can not run the cron as it needs ioncube, just as with your system. However Zend is not installed on that system.

On the 32bit server I can run that cron job. Here I have ZendOptimiser installed.

So although WHMCS will run with only Ioncube, for all functionality it seems to need ZendOptimiser as well.

Do install ZendOptimiser and see how it goes. You dont need the server nor guard.

Sat, 03/06/2010 - 19:19

I thought I would try the 32bit link you gave me and see if it would work with 64bit, but the link dead, as were a few others on the net..

Not Found
The requested URL /optimizer/3.3.3/ZendOptimizer-3.3.3-linux-glib was not found on this server.

and the zend site doesn't have the 3.3.3 version, only the 3.3.9 which i tried earlier and it had no install candidate, just the same method as ioncube which was move the .so file to usr/local/ and add it to the php.ini..

so i googled ZendOptimizer 3.3.3 64bit, and found one which is like the one in your previous post and it has all the directory's and installs needed.

I'm testing it now on my test server to see how it works.. Only thing its from a source I found on the net but I dnt know if its a trusted source... (it looks like its off someone server...)

I'm still searching the net hoping to find a recognized source, but will test this in the meantime, to make sure it will work...

The link to where I found zend is [url]

btw I noticed that zend.ze1_compatibility_mode = off

should this be turned on, since Im trying to use zend.....


Sat, 03/06/2010 - 19:21
ronald's picture

okay so after installing zendoptimiser 3.3.9 the cron did not proceed. so there must be something else that Im missing. Odd as it works fine on the 32bit server.
Per haps ask Matt of WHMCS per ticket too.

Sat, 03/06/2010 - 19:47

3.3.9 didn't have an install candidate like the 3.3.3, with 3.3.9 all I could do was move the .so file to usr/local and add it to php (that was the install instructions..

with the 3.3.3 I managed to find it and this time it had the ./install .sh but again it would not help with the cron problem,, still that same error about ioncube...

I will test 1more time this time installing all that is needed first b4 I install whmcs and then see if it works, if not I will ask in the forums at whmcs...

I would of sent a support ticket but because Im only testing the product at the moment, I dnt have that feature...

I thought before I go ahead and pay for it, I might as well make sure it will work the way I want..

Thanks heaps for all your help, its been great :)

Sun, 03/07/2010 - 04:51
ronald's picture

Ill make a ticket at whmcs. Since I can't get the cron to work on my 64bit version either. See if Matt has any ideas.
Im pretty sure it's server side though.

Sun, 03/07/2010 - 07:34

That would really be good, thanks :)

Im just test it on the 32bit for the 5trh time lol, and im having no luck.. I dnt know why but after i install zend and then add ioncube I get an apache error

vs3:~# /etc/init.d/apache2 restart
Restarting web server: apache2(98)Address already in use: make_sock: could not bind to address [::]:80
(98)Address already in use: make_sock: could not bind to address
no listening sockets available, shutting down
Unable to open logs

all I know is that it only happens after I try add ioncube...

I am able to add ioncube and have it show as loaded in php info page, if I add it the normal way like i do on the 64bit, but again when i try run crons, it fails the same way as it does on the 64bit...

Sun, 03/07/2010 - 08:05
ronald's picture

do you have the ioncube line before the zend lines, yes? ioncube needs to load before zend
also instead of restart do a full stop and then start..

Sun, 03/07/2010 - 08:07

lol I thought that might of been the case, because on the 64bit I had ioncube first and didnt have this problem..

Im attempting it now..


Sun, 03/07/2010 - 08:43
ronald's picture

another thing you can try is to call it with lynx.
yum install lynx
then in the cronjob replace php -q with lynx -dump

see if you receive the email a cron would send if you have set that in the admin part.

Sun, 03/07/2010 - 09:08

I believe yum is for centOS, Im using debian. would it work with apt-get install or aptitude install...

ill see if it does, oh and for the apache error, no I still get the error if I load ioncube first, i= think it either has something to do with ioncube or even my server, not sure.. But this time on the 32bit I tried running ioncube first, and then stop/started apache and it gave the same error... I didnt even get a chance to try instal zend lol...

But I dnt really think its my server...

my current setup is proxmox, and on that I have about 5KVM/ VPS servers, each one on its own (not part of a cloud or anything)..

and all other vps on it, work fine I can stop start restart apache2 with no errors, even the vmin on my 64bit, that also has ioncube and zend optimizer still works...

oh well Ill keep playing around till I can get either one to work with whmcs...

Hopefully Matt gets back to you, with a resolution :)


Sun, 03/07/2010 - 09:21
ronald's picture

you should be able to do apt-get install lynx

you can also try

GET http://domain/with/whmcs/admin/cron.php

This is also suggested in the Automation section of whmcs

Sun, 03/07/2010 - 12:24

Hi ronald, your a legand mate, that did the trick, and it worked, well sort off lol...

I tried the yum install lynx but ofc I used apt-get install lynx (debian) and I tested the cron in webmin and it completed successfully,

BUT I use google apps for my mail, and havent setup mail on the server, to tell the truth I dnt really know how to setup mail on vmin...

and basically whmcs is having trouble connecting to the smtp host, Im thinking its because Im on a virtual site and need to somehow setup mail in virtualmin to work and forward mail to google apps, or I dnt really know lol..

But I need to somehow setup mail to work with my mail... Ive only ever done it on a LAMP server a few days ago, and setup the ticket system, via the tutorial ""Gears"" made on whmcs forums....

Thanks heaps for helping to get crons working :)

no my next task is to find a tutorial for mail... I found ""Configuring POP3 and IMAP Clients"" Just about to have a read and see if it helps :)

Sun, 03/07/2010 - 13:10
ronald's picture

to use google mail server you have to disable mail in virtualmin for the whmcs domain first.
then you add mx records to the whmcs domains zone file:
webmin - servers - bind dns servers - click the domain in question - click mail server and add to Name, your whmcsdomain.tld. and in Mail server the ASPMX.L.GOOGLE.COM. ALT1.ASPMX.L.GOOGLE.COM. etc..
dot forget to put dots behind the entries...

Sun, 03/07/2010 - 18:54

************2nd EDIT LOL*************** Ok my mistake, I should of read the error properly lol.. ok I just had to turn off virus filter.. which I did and now I managed to turn off mail...

BUT is this safe, is this just virus filter for emails, or for the server as well...

Thanks Again lol :)

***OK I read further on and yes the virus filter is for MAIL lol (well I hope thats all) damn its getting late, or should I say early.. its 6.45am in my end of the world....

Sun, 03/07/2010 - 18:53

Hi ronald I followed your instructions and it seemed to all go smoothly but when I attempt to send mail from whmcs i get the following error...

[code[Email Sending Failed - SMTP Error: Could not connect to SMTP host.[/code]

also I still cant seem to get setup Get mail from other accounts: (Download mail using POP3) in gmail...

Im thinking Ive missed something...

I have to have a closer look at both vmin and my whmcs setup.. Im sure its something simple, maybe Ill try disabling mail all together for now in vmin and see if it helps...

thanks again for the help :)

Sun, 03/07/2010 - 20:21

For the record I have whmcs running with the ioncube loader installed manually. I didn't use the zend optimiser to get it going either. Only thing I can suggest is to be sure you restart your httpd.

Sun, 03/07/2010 - 22:08

I basically have mail working but with a few hiccups..

at the moment, when someone signs up, they get an auto welcome response, and if i send mail from inside whmcs, the customer will receive the mail I sent..

also if a customer opens a support ticket, the users assigned to that department will recieve a notification, but the actual email for the support department, i.e will not receive one... (STRANGE)

Im not sure why the error is, but Im having a problem within google apps its self.. when I try

Add a mail account you own

I add the email account and the correct passwrd etc, but when I try add the POP Server, I get errors.. I have tried all 5 below on ports 995, 993 & 110, but each return an error... on ports 993.. on ports 995 & 993.. 993 & 995.. port 993 & 995.. on port 995 & 993 the error is There was a problem connecting to Show error details Server returned error: "Connection timed out: There may be a problem with the settings you added. Please contact your other email provider to verify the correct server name and port." on ports 995 & 110.. Show error details Server returned error: "Connection refused" on ports 110.. Show error details Server returned error: "We were unable to locate the other domain. Please contact your other provider." 110.. Server returned error: "Connection refused" port 110.. Show error details Server returned error: "Connection refused" port 110.. There was a problem connecting to Show error details Server returned error: "Connection refused"

have all the correct MX records and CNAME records setup, and they are working because I tested them on the LAMP server a few days ago, before I started using vmin..

I guess the main thing is the emails are working now, and I just need to find the cause of the above errors, ...

Thanks again for your help :)

And if Its not too much trouble, I wanted to ask, if its possible to use SSL on more then one site, when ever I try a get a warning, that its already used on my other site...

Hi Daworm I also installed ioncube manually and whmcs worked but I count create crons for it.. But thats all sorted now, I installed lynx and changed the cron from php -p to lynx -dump at teh start and all workes normal I think.. (well im not getting any errors regarding ioncube wen trying to run crons,,

are u able to run crons.. what linux version are u using...

Sun, 03/07/2010 - 22:32 (Reply to #32)

Yeah, I can run crons fine. CentOs 5.4

Unless ZendOptimiser is on from a previous application install...

Sun, 03/07/2010 - 22:54

Interesting, I attempted CentOS 5.4 but encountered the same problems regarding crons...

But this was before I knew about ZendOptimiser.. I guess a good way to tell if you have Zend would be in your php info...

oh well the good thing is its working now and just need to get mail working properly, which I read that Imap-SSL/Pop3-SSL needs to be enabled within the web-server's php installation, or try install the php5-imap package, apparently Google Mail services will only accept secured connections.

and Im not sure if my vmin is or isn't..

On my LAMP I installed and configured SSL and it was different to vmin's SSL, like for example when I browsed to my url via https I would get the blue bar next to my favicon, were with virtualmin I don't get the blue bar.. (not sure) lol

but I would really like to enable ssl on more then one site, but have trouble since there all sharing the one IP...

when I tried to create separate virtual IP's using my local IP's I encountered an error..

Mon, 03/08/2010 - 02:59
ronald's picture

these are the google entries for your MX record:
Priority: 1 to: ASPMX.L.GOOGLE.COM
Priority: 2 to: ALT1.ASPMX.L.GOOGLE.COM
Priority: 3 to: ALT2.ASPMX.L.GOOGLE.COM
Priority: 7 to: ASPMX5.GOOGLEMAIL.COM becomes obsolete as mail on the virtualmin would be disabled

from a client as thunderbird use on port 995 and have ssl checked.
for outgoing mail use on port 465 and have ssl also checked

Mon, 03/08/2010 - 03:02

Hi guys mails is setup everything works and looks like ill be moving on from the trial and purchasing the license.. :)

the trick was (as mentioned before) to apt-egt install php5-imap

and then I was able to Get mail from other accounts:

now my last hurdle is trying to get ssl on all sites if possible lol

and will attempt sub-domains, which I think shouldn't be a prob....

Thanks Heaps Ronald, I wouldn't of got this far so quickly, if it wasn't for your help..

Much appreciated :)

Your mail account has been added.

Mon, 03/08/2010 - 04:13
ronald's picture

good to hear.

There are 3 ways to get ssl on all domains.
1) get a dedicated IP for each domain.
2) purchase a multi domain certificate (very expensive).
3) purchase a wildcard certificate (about 150 dollar) and make all domains a subserver, e.g. sub1.domain.tld, sub2.domain.tld etc

your best option is to get extra IP's for those websites that need it.

Tue, 03/09/2010 - 05:18

Hi mate When I purchased my domain I was given a ssl cert, which Im yet to use.. (have always installed my own lol) but I very much doubt its a wildcard cert of multi domain cert.. Ill have a talk to my isp and see if they offer a 2nd IP.

Thanks Again :)

Thu, 09/16/2010 - 05:41

I tried to install ioncube on my server for a shared hosting account, however, it is only accessible to the root. and the users can't access nor use it. what shall i do?

Business Essays

Mon, 10/17/2016 - 17:58

Hi just an update on the original problem as to why the ioncube loader errors were appearing.

I also use WHMCS and found that you have to have the ioncube loader entry in the /etc/php5/cli/php.ini file for any cron jobs to work. Just putting the ioncube entry at the top of the fcgi/apache php.ini files is good for the site to work but won't help the crons which need it also on the command line interface php.ini!

This fixed it for me.

The other thing I also had to do to get things working was put the full install path in /cones/config.php (which by default just had ../ in there. So replace that with /home/usernamehere/public_html/whmcs (or whatever your whmcs install path is) - then the cron jobs work a treat!

Topic locked