I am seeing error messages post-update from EE 5.x.x to EE 6.4.6 AND 6.4.7 on multiple sites running on a Dreamhost server. Specifically, the template download function fails and shows a series of error messages and certain front end pages yield a separate set of error messages. The problems go away if I revert back to PHP 7.4 from PHP 8.x. All add-ons are up to date.
WHEN TRYING TO DOWNLOAD TEMPLATES (OPERATION FAILS COMPLETELY):
Deprecated
ZipArchive::open(): Using empty file as ZipArchive is deprecated
ee/ExpressionEngine/Controller/Design/AbstractDesign.php, line 331
Severity: E_DEPRECATED
Warning
Cannot modify header information - headers already sent by (output started at ee/legacy/core/Exceptions.php:120)
ee/legacy/helpers/download_helper.php, line 54
Severity: E_WARNING
WHEN LOADING CERTAIN PAGES ON FRONT END:
Deprecated
ctype_digit(): Argument of type bool will be interpreted as string in the future
ee/ExpressionEngine/Addons/channel/mod.channel.php, line 4187
Severity: E_DEPRECATED
Warning
Cannot modify header information - headers already sent by (output started at ee/legacy/core/Exceptions.php:120)
ee/ExpressionEngine/Boot/boot.common.php, line 475
Severity: E_WARNING
I think the EE update is a coincidence. It looks like you’re hitting some php version issues.
> As of PHP 8.1.0, passing a non-string argument is deprecated.
https://www.php.net/manual/en/function.ctype-digit.php
For now, if you can stay on php 8.0 or lower, let’s see if you’re good. 7.x has already had a php 8.2 compatibility update and I know one for 6.x is slated for very soon.
Thanks Robin. I have several ExpressionEngine websites I’ve built for clients on Dreamhost. I have updated most of them to 6.4.6 or 6.4.7 and am seeing the same errors on all of them when trying to use the download templates function, even with PHP 8.0 (but NOT with PHP 7.4). I did just test the one site that is still running EE 5.3.2 with PHP 8.1 (can’t log in-string of errors, front end shows WSOD) and 8.0 (same issues) - probably no surprise there. The thing is, Dreamhost has been automatically updating customers’ accounts to PHP 8.1, due to PHP 7.4 being at end of life.
It sounds like your recommendation is to just stay with the older version of PHP for now (7.4) - does that mean EE 6.x is not yet compatible with PHP 8.x? All my client’s websites have two members with control panel access so updating to EE 7.x would incur extra cost for them right now.
As of right now, the latest 6.x should be compatible with php 8.1- I see Yuri caught a few straggling bugs in the 6.4.9 release. And 8.2 support is planned but still in progress. Plus third party add-ons may still be catching up as well.
So I’d make sure you’re on the very latest, but if you hit an issue, do report it in github. They’re getting fixed fast as they come in, but if anything is a deal breaker or you’re short on time, php 7.4 is a valid way to work around it.
Thanks Robin. I just updated another site from 5.x to 6.4.8 (also on Dreamhost) and saw the same set of error messages when attempting to use the download templates function - that site has no add-ons at all.
I submitted this to GitHub 3 weeks ago (https://github.com/ExpressionEngine/ExpressionEngine/issues/3147) - looks like they are claiming it has been resolved but that hasn’t been my experience. I’ll try 6.4.9 soon. Many thanks.
Packet Tide owns and develops ExpressionEngine. © Packet Tide, All Rights Reserved.