Jump to content

Invision Community Blog


Managing successful online communities


PHP7 Compatibility

There is a lot to be excited about with PHP7 - the performance gains are significant and we are eagerly awaiting mainstream adoption. With that said, IPS4 utilizes several third party libraries to provide functionality across the suite -- one of these libraries is HTMLPurifier. The developers of that library are not yet supporting PHP7 and are specifically recommending PHP5. While we have resolved any known IPS specific issues within the suite for the next release, we too must recommend that you remain with PHP 5.4, 5.5 or PHP 5.6 until which time third party library developers update their libraries with full PHP7 compatibility. We will provide an update as soon as full support for PHP7 is given. 

Please note that IP.Board 3.x does not work at all on PHP7. There are no plans to release a PHP7 compatible update to IP.Board 3.x at this time.

 

Comments

Recommended Comments



 

On 23. detsember 2015 at 3:14 AM, TheSonic said:

Does this only affect usergroups who are allowed to post HTML? I disabled HTML for the most usergroups.... If Usergroups, which are not allowed to post HTML are not affected, my sites are not affected, too

Would like to know that as well?!

One of the hosts I know stated on their FB page that they will not offer PHP7 anytime soon because they have their own control panel and upgrading it would be too much work ? It's some cheap (and unreliable for me) host anyway. My own host has made a rule that they will make PHP versions upgrade on first monday of every month if any of them have come out.

Link to comment
Share on other sites
On 12/22/2015 at 8:54 AM, Ahmad E. said:

While you do not notice any issues, there might be security holes due to using PHP7 (it changed the behaviour of some functions that HTMLPurifier makes use of).

Highly unlikely to be the case though, like, extremely unlikely. For HTMLPurifier to introduce bugs in it's output by using php7 over php5, and you don't notice (ie, screwy display), it would be a miracle.

On 12/30/2015 at 0:33 AM, hmikko said:

Would like to know that as well?!

No. HTMLPurifier is a php class for outputting "safe" markup. It's used everywhere. Have a read at http://htmlpurifier.org/.

On 12/30/2015 at 6:19 AM, Renegate said:

It's stupid that it is intended for the 3.4.xx not plan to make run for php7.
It still operate many users a 3.4.xx I do not believe that they therefore equal to update.

Sorry for my english

It's not stupid. 3.4 is old. Version 4 was a huge rewrite. No one is stopping you taking the source code and editing it to make it compatible with php7 if you wish to stay on 3.4.

Like @RevengeFNF, I've been running 4.X on php7 for some time, zero issues presented, and a noticeable speed increase.

Edited by jpg
Link to comment
Share on other sites

PHP 7.0.1 works okay, since recently (did not work around October). However, with PHP 7.1.0 (dev version), I cannot login or do anything except see cryptic messages. So unfortunately I have to use PHP 5.6 for IPS parts of my site.

Link to comment
Share on other sites
48 minutes ago, vaultwiki said:

PHP 7.0.1 works okay, since recently (did not work around October). However, with PHP 7.1.0 (dev version), I cannot login or do anything except see cryptic messages. So unfortunately I have to use PHP 5.6 for IPS parts of my site.

The error might be php7-dev related, shouldn't be using it on a production server. Also 7.0.2 is the latest version at the moment. With that being said, you shouldn't be using php7 for ips at all right now as it's unsupported.

Link to comment
Share on other sites
3 minutes ago, Ahmad E. said:

The error might be php7-dev related, shouldn't be using it on a production server. Also 7.0.2 is the latest version at the moment. With that being said, you shouldn't be using php7 for ips at all right now as it's unsupported.

I don't appreciate the lecture. My post was not meant to encourage anyone to use PHP 7, but rather to discourage. There were a lot of experiences posted here that painted an irresponsibly safe picture of IPS4+PHP7.

There are certain times where it pays to be ahead of the curve on technology. When I installed IPS4 last summer, I was hoping that Invision, having released version 4 at the same time that PHP 7 was getting close to RC, would have tested internally against the emerging technology already. In fact, as a developer myself, that's exactly what I had done in my projects.

Why? In mid-2014, I was already finding some web hosts that offered PHP 7 as the default option. People were buying these plans and using them for production sites and using software designed without it in mind. For my own clients, I didn't want to be behind when PHP 7 was finally released. So as of today, I've been using PHP 7 for production testing of web software for almost 2 years now. I have tested vBulletin 3.8, vBulletin 4.2, XenForo, IPS4, and other things less relevant to this community against PHP 7 in that time. While some needed minor changes (like changing 2 characters in 1 file), IPS4 was the only one that became completely unusable.

Yes, I found bugs in PHP 7 along the way, but the point was compatibility testing. And this thread discusses compatibility. Although results in 7.1.0 were worse than 7.0.1, the results of my tests reiterate what is stated by Lindy in the OP: IPS4 is not ready for PHP7 yet.

Link to comment
Share on other sites

@vaultwiki I respectfully disagree... Testing php7.1.0 now on an application the scale of IP.Board is not going to give you any good information. At this alpha stage things like compiling on different systems, specific test suites and maybe bench-marking should be the focus, it's only once software gets to a beta stage (or arguably with the way php releases are, RC) that you should be testing on full featured applications, as generally it's the software that needs updating with breaking changes in php, not the other way around.

Testing IP.Board now on php7.1.0 adds zero value to php or IP.Board. I'd also suggest that any webhost that was offering php7 in mid-2014, a full 18 months before the 7.0.0 final release, are idiots. >_<

Link to comment
Share on other sites

I have tested now with php7 - great speed, much better than php 5.617 - i was not thinking that php7 will bring so much additional  with same hardware  :thumbsup:

thanks ips for the great software ;) keep on with this way - i hope you will add time into php7 work & support it soon official

Edited by m@t
Link to comment
Share on other sites

ok i can also now confirm some others here and Lindy - IPS 4 is not really ready/usable for PHP7.

i found a big error with PHP 7.02 - it breaks the search - in advance search i get an EX error and in the pull down menu it shows theme is maybe out to date & is not doing anything .... also at default ips theme - the tip to restore theme & run support does not help too.
As well APC will be not recognized from ACP and sometimes at an refresh it shows at blocks specially carousels EX error. Also HTMLPurifier is an important point.

I hope in some months (i know we will see) we get offical support for PHP7, because the performance is amazing (!!!)

Edited by m@t
Link to comment
Share on other sites

to many mixed posts, ipb4 is officially unsupported with php7, but does it work or is there any preconditions to make it work un production? - yes i know its crazy, but since i try to keep my site very conservative on the modifications/addons i use, i could try to use it

Link to comment
Share on other sites
31 minutes ago, Adlago said:

Today shifted first test site and then live site to php7.0.2
Perfect work without issues.
Sites loaded with half a second faster.

Should have waited for 7.0.3, to be released today (at least in my timezone, it's today) :p

Link to comment
Share on other sites

In case someone is playing with this....runing in_dev found this:

 

Whoops\Exception\ErrorException thrown with message "Array to string conversion"

system/Helpers/Form/Editor.php

		/* Don't mimize if we have a value */
		if ( $args[1] or \IPS\Request::i()->$args[0] or ( isset( \IPS\Request::i()->cookie['vle_editor'] ) and \IPS\Request::i()->cookie['vle_editor'] ) )

PS: this is thew why its called "unsupported" :p

Link to comment
Share on other sites
39 minutes ago, Luis Manson said:

In case someone is playing with this....runing in_dev found this:

 


Whoops\Exception\ErrorException thrown with message "Array to string conversion"

system/Helpers/Form/Editor.php

		/* Don't mimize if we have a value */
		if ( $args[1] or \IPS\Request::i()->$args[0] or ( isset( \IPS\Request::i()->cookie['vle_editor'] ) and \IPS\Request::i()->cookie['vle_editor'] ) )

PS: this is thew why its called "unsupported" :p

You should report issues, as long as the issue is in the IPS framework itself (not a 3rd party) they will fix them.

I already have reportrd this specific error though:  

 

Link to comment
Share on other sites



Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Add a comment...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

Important Information

We use technologies, such as cookies, to customise content and advertising, to provide social media features and to analyse traffic to the site. We also share information about your use of our site with our trusted social media, advertising and analytics partners. See more about cookies and our Privacy Policy

×