NESCent / FossilCalibrations

Fossil calibrations database
http://fossilcalibrations.org
BSD 2-Clause "Simplified" License
14 stars 4 forks source link

mysqli_stmt_get_result incompatible with recommended config #53

Closed dleehr closed 9 years ago

dleehr commented 9 years ago

Not sure how to phrase this as an issue, but it complicates the installation issues #13 and conflicts with the recommended config in the wiki installation documentation.

The install doc recommends PHP 5.3. Recent changes to address SQL injection #17 have added calls to mysqli_stmt_get_result. This function exists in PHP 5.3 but only with the MySQL native driver (mysqlnd), which is not the default in 5.3.

mysqlnd became the default in PHP 5.4 (CentOS 7), so the official CentOS 5 and 6 packages aren't compatible with this change. There are third-party packages to get PHP 5.3 with mysqlnd, but I'm hesitant to start installing them.

Is there a recommendation on where to get a necessary version of php - I saw previous references to XAMPP but it's not mentioned in the installation documentation anymore.

jimallman commented 9 years ago

In the most recent server migration, I've abandoned XAMPP in favor of conventional yum packages under CentOS. After considering the options, I chose to use the Remi yum repository and its packages for php (which include support for mysqlnd). Remi depends on EPEL, so this makes both available under CentOS 5.x:

rpm -Uvh http://ftp.osuosl.org/pub/fedora-epel/5/i386/epel-release-5-4.noarch.rpm
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-5.rpm

Note that the Remi repository is disabled by default, since it can interfere with same-named packages in the base repos when using yum update, etc. So I enable it as needed for each package:

yum --enablerepo=remi install php-common php-mysqlnd
dleehr commented 9 years ago

I think Mark Sutton mentioned php 5.3 was in use on the server, so we'll need to make sure this solution works for him too. (part of #56)

dleehr commented 9 years ago

Thanks for the details about additional packages. I used EPEL and IUS to get PHP 5.4 with mysqlnd installed, with some guidance here: http://www.rackspace.com/knowledge_center/article/install-epel-and-additional-repositories-on-centos-and-red-hat.

IUS came out of rackspace and there is a mirror at Duke. Also, the package names are designed not to conflict with existing CentOS packages.

dleehr commented 9 years ago

I updated the wiki about the PHP 5.4 requirement, with links to remi and ius.

jimallman commented 9 years ago

IUS came out of rackspace and there is a mirror at Duke. Also, the package names are designed not to conflict with existing CentOS packages.

Ah, good to know. The Remi packages (with name collisions) require a certain... vigilance. :grimacing:

jimallman commented 9 years ago

The latest code (as of 28d6fb44cc4564148891f6c368990b1dcf0887fd) should no longer require mysqlnd.

dleehr commented 9 years ago

Also live on NESCent-hosted server.