mysqlnd_ms Config File Fails with “unexpected '{' ”-Collection of common programming errors
I’m trying to get the mysqlnd_ms (master_slave) plugin to run, but receive the error that the config file contains and unexpected bracket. To make sure I didn’t corrupt anything, I replicated this error on a fresh install. Both installs are Ubuntu 12.04-LTS using the packaged PHP-5.3.10 and are running through Apache’s module. Because the php5-dev package does not contain the headers for mysqlnd, I had to jump through some hoops to get PECL to install the package.
I am following the guide from MySQL’s website 20.7.6.4. Quickstart and Examples
Here is the error I am seeing:
root@mysqlndms:~# php -v
PHP: syntax error, unexpected '{' in /etc/php5/cli/conf.d/mysqlnd_ms_plugin.ini on line 1
PHP 5.3.10-1ubuntu3.6 with Suhosin-Patch (cli) (built: Mar 11 2013 14:34:31)
Copyright (c) 1997-2012 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2012 Zend Technologies
root@mysqlndms:~#
And this is the contents of the .ini file:
root@mysqlndms:~# cat /etc/php5/cli/conf.d/mysqlnd_ms_plugin.ini
{
"myapp": {
"master": {
"master_0": {
"host": "localhost"
}
},
"slave": [
]
}
}
root@mysqlndms:~#
This .ini file is copied straight from MySQL’s tutorial.
For completeness, here are the hoops I had to jump through to get the PECL package to build:
cd /usr/local/src/
apt-get source php5
cd php5-5.3.10/ext/
cp -a mysqlnd/ /usr/include/php5/ext/
cd /usr/local/src/php5-5.3.10/ext/mysqlnd/
mv config9.m4 config.m4
sed -ie "s{ext/mysqlnd/php_mysqlnd_config.h{config.h{" mysqlnd_portability.h
phpize
cp -a mysqlnd_portability.h /usr/include/php5/ext/mysqlnd/
pecl install mysqlnd_ms
I am really at a loss as where to go from here and would love a gentle push in the right direction. I’m not afraid to compile from source, but would really like to use the packages if at all possible.
Thanks!