I have PHP installed and running (version: 5.3.17) and I want to switch to mysqlnd (in the phpinfo mysqlnd does not exist at all).
I read that in order to set it, you need to update the ./configure
command:
./configure --with-mysql=mysqlnd \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \
When I tried installing it with yum install php-mysqlnd
I get an error:
---> Package php-mysqlnd.x86_64 0:5.3.17-1.26.amzn1 will be installed
--> Processing Conflict: php-mysql-5.3.17-1.26.amzn1.x86_64 conflicts php-mysqlnd
--> Finished Dependency Resolution
Error: php-mysql conflicts with php-mysqlnd
The ./configure
command is part of the compilation process from source code.
You can either compile from source or install via package manager. I guess in your case the package manager is preferable.
As the package manager complains, you can’t have both php-mysql
and php-mysqlnd
installed.
So you can
yum remove php-mysql
before
yum install php-mysqlnd
Then check for success via
php -m | grep mysqlnd
or
php -i | grep mysqlnd
yum swap php-mysql php-mysqlnd
yum install php-mysqlnd
is only available on CentALT and maybe remi repos. Webtatic also has some good php repos as well. It is NOT on the default ones (I was using CentOS).
I may be late with this but it could be of help to others. As already said elsewhere in the forum, if a call to a function like get_result complains that it is undefined, then php-mysqlnd need to be installed (this question). I realized that doing yum install (centos) will automatically reports that it wants to remove php-mysql and phpmyadmin; do not accept this as your phpmyadmin may not work after. Instead, use yum shell which will take the commands at once and gracefully handle the change over; do these in command line:
# yum shell
> remove php-mysql
> install php-mysqlnd
> run
> quit
Now you may have to restart both the mariadb (most likely) and the httpd services.
Don't know if i understand you right.... Simply download the source of php (php-5.x.x.tar.gz), unzip the source and change to that directory then
bash:/dir/of/your/source # ./configure --with-mysql=... and your other config params
after that just make it by
bash:/dir/of/your/source # sudo make && make install
As of PHP 5.4, the mysqlnd library is a php.net compile time default to all PHP MySQL extensions. - Ref: dev.mysql.com
it would be a little easier to use XAMPP for Linux 1.8.1(it comes with PHP 5.4.7) then compiling from source.
来源:https://stackoverflow.com/questions/13159518/how-to-enable-mysqlnd-for-php