PHP 5.5.9 support dropped in 8.2.1?

Permalink 1 user found helpful
According to the System Requirements page -https://documentation.concrete5.org/developers/installation/system-r... 5.8 is still supposed to have support for PHP 5.5.9 however when I try to install it I get "Undefined class constant 'MYSQL_ATTR_MULTI_STATEMENTS'" this constant exists as of PHP 5.5.21 and PHP 5.6.5 according tohttp://php.net/manual/en/ref.pdo-mysql.php...

Does this mean that support for PHP 5.5.9 has been dropped without notice, or is this something that will be fixed in the next release of 5.8?

hutman
 
tallacman replied on at Permalink Reply
tallacman
Im running MAMP with php 5.6.30 on my local machine. Fresh install of 8.2.1.
JohntheFish replied on at Permalink Reply
JohntheFish
Installed OK php 5.6.29 on my dev system
hutman replied on at Permalink Reply
hutman
Yes PHP 5.5.21 and PHP 5.6.5 would be supported, however the docs say that PHP 5.5.9 is supported, but this doesn't seem to install using that version.
Justin1978 replied on at Permalink Reply
Justin1978
I can confirm the same error using MampPro for Windows 10. I set the php version to 7.0 and then it worked.
serot0nin replied on at Permalink Reply
serot0nin
I just encountered the same problem on a Linux box running PHP 5.5.9, upgrading from 8.1.0 (by replacing the concrete/ directory).

PHP 5.5.9-1ubuntu4.11 (cli) (built: Jul 2 2015 15:23:08)

Same upgrade method works fine on a local machine running PHP 7.0.15.
londongeezer replied on at Permalink Reply
I performed an update yesterday and ran into the same problem on my Ubuntu 14.4 LTS with PHP 5.5.9.

I managed to successfully update by performing the following tasks:

I'd suggest the first thing to do is take a snapshot of the VM (if it is vitual) or backup the database.

1). Connected to the server via ssh
2). cd %webroot% (for example /var/www)
3). mv concrete5 concrete5_backup
4). Downloaded concrete5 8.2.1 from the website and extracted the files
5). uploaded the concrete5 folder from the 8.2.1 zipped folder to the webroot
6). deleted the following line
$params['driverOptions'] = [\PDO::MYSQL_ATTR_MULTI_STATEMENTS => false];
from the concrete/src/Database/Connection/ConnectionFactory.php file

7). chmod +x /concrete/bin/concrete5 (to make it executable)
8). ./concrete5 c5:update (to run the update script)

You should be able to log into the admin portal via a web browser (after the update completed successfully). Once you have fully tested the upgrade you can delete the concrete_backup folder in the webroot if you want to.
bvcreative replied on at Permalink Reply
bvcreative
Hi

I just ran into the same problem today when upgrading to 8.2.1. Do you know the side effects of deleting the following line:

$params['driverOptions'] = [\PDO::MYSQL_ATTR_MULTI_STATEMENTS => false];

I am nervous about just removing it without knowing the impact.

Many thanks
David
londongeezer replied on at Permalink Reply
Hi David,

According tohttp://php.net/manual/en/ref.pdo-mysql.php... the MYSQL_ATTR_MULTI_STATEMENTS is only available in PHP 5.5.21 or higher. The officially support build of PHP on Ubuntu 14.4 is 5.5.9 so unless you update the version of PHP you cannot use this attribute and why the updater falls over.

Since I upgraded our development server there have been absolutely no issues with the site but it might be worth waiting for one of the developers to comment ;-) I am not an expert in pdo_mysql but I believe that it has the ability to issue multiple SQL commands at once by setting MYSQL_ATTR_MULTI_STATEMENTS = false only one command can be issued at a time.

If you are really concerned then I would look to upgrade to a later version of PHP, I might do this for the production servers by building a new Ubuntu 16.4 LTS server and migrating the site over.

Here is the statement from the PHP website:
PDO::MYSQL_ATTR_MULTI_STATEMENTS (integer)
Disables multi query execution in both PDO::prepare() and PDO::query() when set to FALSE.

Note, this constant can only be used in the driver_options array when constructing a new database handle.

This exists as of PHP 5.5.21 and PHP 5.6.5.