PHP 7.2 upgrade


I’m on Plesk (not cPanel) and installed IP1 (1.5.9) on PHP 7.2 and it never throw any errors.
Not anything related to the mcrypt extension.

On which IP version are you running?

For me IP1 is even running (after the fix mentioned in this thread above) fine at PHP 7.3 for me there are no errors. I know the doc says it needs this extensions but I never was a problem for me.

You got 2 errors:

Required PHP extension not found : mcrypt
Required PHP extension not found : mysqli

Pls try to install mysqli first and tell us when happens then.

In Plesk mysqli is installed by default.

Where do you get this errors?
When trying to install IP or while running and debugging it?

I debugged IP1 when switching to PHP 7.3 and did not found a error after the fix.
As I’m on Plesk and you on cPanel I think this is maybe related to cPanel and not to PHP in general as I never had any errors related to mcrypt. But maybe I have to double check this.

Could you provide us some more informations about your system?

  • which cPanel version are you running on?
  • which PHP version exactly?
  • which Invoice Plane Version (1.5.9 or a older one)?
  • what OS (Server) and which version?
  • where have you seen this errors?

Hope we can help you after providing the additional infos.


Thanks for your reply,

It confirm what I was thinking but not sure since I’m pretty new to hosting/PHP but I work in IT so learn pretty fast in technology.

One solution that I see would be to develop a package in PHP PEAR package CPanel has a module to install those PEAR package easily for newbie like me :wink:

From my understanding PEAR Packages are derived from PECL packages and luckily there is already a Mcrypt PECL package that is maintained:

So it would be to convert this package in PEAR and submit it to the maintainer of PEAR project:

However for the long term it would be better to change InvoicePlane to use the OpenSSL library instead of Mcrypt.

But since I’m new I really don’t know is those suggestions are realist or helpful since I see that Version 2.0 is developed but I don’t know if the release will be soon or in a few years.

If I was using a VPS I could install Mcrypt directly from the PECL packages but I use “shared hosting” so I don’t have access to the linux “root”.

Since you will fix it in the next days I’ve found that I will downgrade to PHP 7.1 in meantime but could you tell me if there is some security issue I should an eye on with PHP 7.1 ?

Thanks for your quick reply :+1:


Thanks Martin for your help but @Severenth answered clearly to my question.

I don’t know why you don’t see this bug on your installation maybe because the extension was already installed previously.

The issue is very simple, since PHP 7.2 mcrypt is no longer integrated in the PHP language as an “official” extension and InvoicePlane V1.x need mcrypt to work fine.

So when user like me use the Softaculous installer to install InvoicePlane before beginning the installation the installer check that all the PHP extensions needed are available and in my case 2 extensions were not available.

One was “nd_mysqli” and it was easy to ad it just by the Cpanel:

The second was mcrypt which is no longer available in PHP 7.2 and higher so it need to be fixed and @Severenth will fix it in the next days when he will be less busy with his day job.

In meantime I will downgrade with 7.1 but it’s not every hosting that allow user to choose their PHP version so it need to be fixed and I’m pretty sure too PHP 7.3 is more secure than 7.1 :wink:

Regards :blush:


I cant say a lot about security related to PHP 7.1 vs PHP 7.3 but in terms of performance, but this is not the topic now.

To reproduce your Errors I would still like to know these things:

  • which cPanel version are you running on?
  • which PHP version exactly?
  • which Invoice Plane Version (1.5.9 or a older one)?
  • what OS (Server) and which version?
  • where have you seen this errors?

Regards, Martin


I’m sorry Martin, but I believe you left out the part where you concatenate/append the suffix to the class… in your suggested fix, you set the suffix, but you don’t do anything with it.