Discussion:
[PHP-INSTALL] Upgrading to PHP 5.2, MySQL no longer bundled
William Beaumont
2010-01-04 16:18:47 UTC
Permalink
I'm trying to upgrade to PHP 5.2 on a Linux machine (RedHat). For the
"./configure" step, I copied the configure command exactly as it appears
in the results of "php -i". When I run it in the new installation
folder, I get a message telling me that the program can't find the MySQL
header files in the location specified, and warns me that MySQL is no
longer bundled with PHP. (The location specified is "/usr".)

I've looked around on the Internet, and apparently one key file is
"mysql.h". Indeed, there is no such file under /usr/include/, though
there are tons of other header files. I used "find" to locate the file,
and it's nowhere on the server. (I didn't setup the server, the hosting
company did that.) I guess the header files don't exist if MySQL comes
bundled with the server, or something like that? I'm not sure. My server
is running MySQL 5.0.45.

Some have suggested that, rather than re-installing MySQL (ugh), you
simply run this command: "yum install mysql-devel". When I do that, the
program analyzes my system and tells me it needs to update two packages:
"mysql" and "mysql-server". I don't like the sound of that. I don't want
to change anything to do with MySQL, I just want my new version of PHP
to work with it. What should I do?
Étienne Buira
2010-01-04 19:30:13 UTC
Permalink
Post by William Beaumont
I'm trying to upgrade to PHP 5.2 on a Linux machine (RedHat). For the
"./configure" step, I copied the configure command exactly as it
appears in the results of "php -i". When I run it in the new
installation folder, I get a message telling me that the program can't
find the MySQL header files in the location specified, and warns me
that MySQL is no longer bundled with PHP. (The location specified is
"/usr".)
Would be nice to have that ./configure line
Post by William Beaumont
I've looked around on the Internet, and apparently one key file is
"mysql.h". Indeed, there is no such file under /usr/include/, though
there are tons of other header files. I used "find" to locate the
file, and it's nowhere on the server. (I didn't setup the server, the
hosting company did that.) I guess the header files don't exist if
MySQL comes bundled with the server, or something like that? I'm not
sure. My server is running MySQL 5.0.45.
Usually, when software is distributed as binary, there is a "-dev"
package to hold headers files (among other things), then try to install
a package like mysql-dev would help (if mysql is installed with package
manager, but you would then probably want to install php with package
manager as well).
Post by William Beaumont
Some have suggested that, rather than re-installing MySQL (ugh), you
simply run this command: "yum install mysql-devel". When I do that,
the program analyzes my system and tells me it needs to update two
packages: "mysql" and "mysql-server". I don't like the sound of that.
I don't want to change anything to do with MySQL, I just want my new
version of PHP to work with it. What should I do?
This depends why mysql/mysql-server are older than newest package.
If it is because of a poorly managed server, ask them to upgrade or do
it yourself (I suggest you to make a SQL dump of all databases, even if
binary format should be compatible over versions, can be a good idea to
check for compromission too, depending on the case).
If it is for other reasons, tell them their reasons should be excellent
to keep an old package, and read yum manual to install the -devel
version that matches mysql{,-server} versions.

Anyway, I would advise you to choose between two options :
1. Have both php/mysql (and probably apache and maybe some others)
managed through package manager
2. Have all of these software compiled by hand from source, and ideally
kept in some path (usually /usr/local/)
William Beaumont
2010-01-04 21:01:00 UTC
Permalink
It's clear to me that trying to do all this upgrading manually isn't
wise. On the other hand, RPM Package Manager seems to not have PHP 5.2
or later.

I found this blog post which describes a situation similar to mine:
http://pbjots.blogspot.com/2008/03/yum-php-update-to-524-on-plesk.html

(My server is also running Plesk.)

The blog post links to this shell script:
http://www.atomicorp.com/installers/atomic.sh

Would it be wise to trust this script? I've looked at it, and the most
important thing it seems to do is download an RPM package from
atomicorp.com and install it using the RPM command.
Post by Étienne Buira
Post by William Beaumont
I'm trying to upgrade to PHP 5.2 on a Linux machine (RedHat). For the
"./configure" step, I copied the configure command exactly as it
appears in the results of "php -i". When I run it in the new
installation folder, I get a message telling me that the program can't
find the MySQL header files in the location specified, and warns me
that MySQL is no longer bundled with PHP. (The location specified is
"/usr".)
Would be nice to have that ./configure line
Post by William Beaumont
I've looked around on the Internet, and apparently one key file is
"mysql.h". Indeed, there is no such file under /usr/include/, though
there are tons of other header files. I used "find" to locate the
file, and it's nowhere on the server. (I didn't setup the server, the
hosting company did that.) I guess the header files don't exist if
MySQL comes bundled with the server, or something like that? I'm not
sure. My server is running MySQL 5.0.45.
Usually, when software is distributed as binary, there is a "-dev"
package to hold headers files (among other things), then try to install
a package like mysql-dev would help (if mysql is installed with package
manager, but you would then probably want to install php with package
manager as well).
Post by William Beaumont
Some have suggested that, rather than re-installing MySQL (ugh), you
simply run this command: "yum install mysql-devel". When I do that,
the program analyzes my system and tells me it needs to update two
packages: "mysql" and "mysql-server". I don't like the sound of that.
I don't want to change anything to do with MySQL, I just want my new
version of PHP to work with it. What should I do?
This depends why mysql/mysql-server are older than newest package.
If it is because of a poorly managed server, ask them to upgrade or do
it yourself (I suggest you to make a SQL dump of all databases, even if
binary format should be compatible over versions, can be a good idea to
check for compromission too, depending on the case).
If it is for other reasons, tell them their reasons should be excellent
to keep an old package, and read yum manual to install the -devel
version that matches mysql{,-server} versions.
1. Have both php/mysql (and probably apache and maybe some others)
managed through package manager
2. Have all of these software compiled by hand from source, and ideally
kept in some path (usually /usr/local/)
Loading...