我正在尝试运行 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
我真的不知道从这里该往哪里走,希望能得到正确的指导。我不怕从源代码编译,但如果可能的话,我真的很想使用这些软件包。
谢谢!
答案1
mysqlnd_ms_plugin.ini 不是 php 配置文件。在 php 配置文件中,您可以输入:
mysqlnd_ms.enable=1
mysqlnd_ms.config_file=/path/to/mysqlnd_ms_plugin.ini
哪里/path/to/
不存在/etc/php5/cli/conf.d/
或者任何其他地方 php 读取 ini 文件。