install both mysql and mysqlnd on ubuntu 12.04

2020-02-06 06:44发布

问题:

I am having server at digital ocean and trying to run a custom php application. On my development machine: Mac OSX 10.7.5 PHP: 5.3.6 with mysql, mysqli, mysqlnd, pdo mysql

But on the server: Ubuntu 12.04 PHP: 5.3.10

with mysql, mysqli and pdo mysql

I require mysqlnd to run my app. If i try

apt-get install php5-mysqlnd

it is giving error:

The following packages will be REMOVED:
php5-mysql
The following NEW packages will be installed:
php5-mysqlnd

If I install it, my app code breaks as it uses many mysqli commands.

I searched and followed many stackoverflow question on same topic but all in vain. Though, I haven't tried configuration option

./configure --with-mysql=mysqlnd \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \

I dont know how to proceed with this and I could not find and tutorials or article on this.

How My development machine has both but server couldn't.

Please guide.

回答1:

You probably need to enable the mysqlnd extension. I ran into this problem recently (all references mysqli were broken after installing php5-mysqlnd), and fixed it by adding the following line to the bottom of my php.ini:

extension=mysqlnd.so

You can find the location of your php.ini in the output of phpinfo().

Also note you'll need to restart your webserver for these changes to take effect.



回答2:

I believe the "current" way of doing this is to enable that PHP module after you install it, much the way you do with an Apache module: sudo php5enmod mysqlnd

And then restart Apache for that module to load: sudo service apache2 restart

That will create a symlink on /etc/php5/apache2/conf.d/ from /etc/php5/mods-available/ that Apache will pick up and load with priorities, like services during start-up. In my experience on Ubuntu 14 LTS it creates a symlink called 10-mysqlnd.ini from mysqlnd.ini.

Here is a link for a more detailed explanation on the subject.



标签: php mysql ubuntu