我试图让 mysqlnd_ms (master_slave) 插件运行,但收到配置文件包含的错误和意外的括号。为了确保我没有损坏任何东西,我在全新安装时复制了这个错误。这两个安装都是使用打包的 PHP-5.3.10 的 Ubuntu 12.04-LTS,并通过 Apache 的模块运行。因为 php5-dev 包不包含 mysqlnd 的标头,所以我不得不绕过一些圈子让 PECL 安装包。
我遵循 MySQL 网站20.7.6.4 的指南。快速入门和示例
这是我看到的错误:
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:~#
这是 .ini 文件的内容:
root@mysqlndms:~# cat /etc/php5/cli/conf.d/mysqlnd_ms_plugin.ini
{
"myapp": {
"master": {
"master_0": {
"host": "localhost"
}
},
"slave": [
]
}
}
root@mysqlndms:~#
这个 .ini 文件是直接从 MySQL 的教程中复制的。
为了完整起见,这里是我必须跳过的环节才能构建 PECL 包:
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
我真的不知道从这里去哪里,并希望在正确的方向上轻轻推动。我不怕从源代码编译,但如果可能的话真的很想使用这些包。
谢谢!
mysqlnd_ms_plugin.ini 不是 php 配置文件。在你放置的 php 配置文件中:
哪里
/path/to/
不是/etc/php5/cli/conf.d/
或任何其他地方 php 读取 ini 文件。