Я пытаюсь запустить плагин mysqlnd_ms (master_slave), но получаю ошибку, содержащуюся в файле конфигурации, и неожиданную скобку. Чтобы убедиться, что я ничего не повредил, я воспроизвел эту ошибку при новой установке. Обе установки представляют собой Ubuntu 12.04-LTS с использованием упакованного PHP-5.3.10 и выполняются через модуль 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 вы помещаете:
mysqlnd_ms.enable=1
mysqlnd_ms.config_file=/path/to/mysqlnd_ms_plugin.ini
куда /path/to/
не является /etc/php5/cli/conf.d/
или любое другое место, где php читает файлы ini.