Ошибка файла конфигурации mysqlnd_ms с "неожиданным" {' "

Я пытаюсь запустить плагин 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

Я действительно в растерянности, потому что куда идти отсюда, и мне очень хотелось бы мягкого толчка в правильном направлении. Я не боюсь компилировать из исходного кода, но очень хотел бы использовать пакеты, если это вообще возможно.

Спасибо!

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-файлы.

Другие вопросы по тегам