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.
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.
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.