mirror of
https://github.com/php/doc-ru.git
synced 2025-08-15 23:42:35 +00:00
169 lines
6.6 KiB
XML
169 lines
6.6 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
||
<!-- $Revision$ -->
|
||
<!-- EN-Revision: f88b2cc042d1045e9b106e43bf882df781ad8687 Maintainer: sergey Status: ready -->
|
||
<!-- Reviewed: no -->
|
||
|
||
<chapter xml:id="mysql-xdevapi.setup" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||
&reftitle.setup;
|
||
|
||
<section xml:id="mysql-xdevapi.requirements">
|
||
&reftitle.required;
|
||
<para>
|
||
Для этого модуля требуется сервер MySQL 8+ с включённым
|
||
плагином X (по умолчанию).
|
||
</para>
|
||
<para>
|
||
Необходимые библиотеки для компиляции этого модуля:
|
||
Boost (1.53.0 или выше), OpenSSL и Protobuf.
|
||
</para>
|
||
|
||
</section>
|
||
|
||
<section xml:id="mysql-xdevapi.installation">
|
||
&reftitle.install;
|
||
|
||
<para>
|
||
&pecl.moved;
|
||
</para>
|
||
|
||
<para>
|
||
Пример процедуры установки на Ubuntu 18.04 с PHP 7.2:
|
||
</para>
|
||
<programlisting>
|
||
<![CDATA[
|
||
// Зависимости
|
||
$ apt install build-essential libprotobuf-dev libboost-dev openssl protobuf-compiler liblz4-tool zstd
|
||
|
||
// PHP с нужными модулями; php7.2-dev, необходимым для компиляции
|
||
$ apt install php7.2-cli php7.2-dev php7.2-mysql php7.2-pdo php7.2-xml
|
||
|
||
// Компиляция модуля
|
||
$ pecl install mysql_xdevapi
|
||
]]>
|
||
</programlisting>
|
||
|
||
<para>
|
||
Команда <literal>pecl install</literal> не включает модули PHP (по умолчанию),
|
||
включение модулей PHP может быть сделано несколькими способами.
|
||
Другой пример PHP 7.2 в Ubuntu 18.04:
|
||
</para>
|
||
|
||
<programlisting>
|
||
<![CDATA[
|
||
// Создание собственного ini файла
|
||
$ echo "extension=mysql_xdevapi.so" > /etc/php/7.2/mods-available/mysql_xdevapi.ini
|
||
|
||
// Использование команды 'phpenmod' (примечание: это применимо для Debian/Ubuntu)
|
||
$ phpenmod -v 7.2 -s ALL mysql_xdevapi
|
||
|
||
// Альтернативой 'phpenmod' является создание символической ссылки
|
||
// $ ln -s /etc/php/7.2/mods-available/mysql_xdevapi.ini /etc/php/7.2/cli/conf.d/20-mysql_xdevapi.ini
|
||
|
||
// Давайте посмотрим, какие модули MySQL сейчас включены
|
||
$ php -m |grep mysql
|
||
|
||
mysql_xdevapi
|
||
mysqli
|
||
mysqlnd
|
||
pdo_mysql
|
||
]]>
|
||
</programlisting>
|
||
|
||
<para>
|
||
&pecl.info;
|
||
<link xlink:href="&url.pecl.package;mysql_xdevapi">&url.pecl.package;mysql_xdevapi</link>.
|
||
</para>
|
||
</section>
|
||
|
||
<!-- {{{ Configuration -->
|
||
&reference.mysql-xdevapi.ini;
|
||
<!-- }}} -->
|
||
|
||
<section xml:id="mysql-xdevapi.build">
|
||
<title>Сборка / Компиляция из исходного кода</title>
|
||
<para>
|
||
Соображения по компиляции этого модуля из исходного кода.
|
||
</para>
|
||
|
||
<itemizedlist>
|
||
<listitem>
|
||
<para>
|
||
Имя модуля - 'mysql_xdevapi', поэтому используйте <literal>--enable-mysql-xdevapi</literal>.
|
||
</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>
|
||
Boost: обязателен, при необходимости используйте параметр конфигурации --with-boost=DIR
|
||
или задайте переменную окружения MYSQL_XDEVAPI_BOOST_ROOT.
|
||
Требуются только файлы заголовков boost; не двоичные файлы.
|
||
</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>
|
||
Google Protocol Buffers (protobuf): обязателен, при необходимости используйте параметр конфигурации --with-protobuf=DIR
|
||
или задайте переменную окружения MYSQL_XDEVAPI_PROTOBUF_ROOT.
|
||
</para>
|
||
<para>
|
||
При желании используйте <literal>make protobufs</literal> для создания файлов protobuf (*.pb.cc/.h) и <literal>make clean-protobufs</literal> для удаления созданных файлов protobuf.
|
||
</para>
|
||
<para>
|
||
Примечание к protobuf на Windows: в зависимости от окружения
|
||
может потребоваться статическая библиотека с многопоточным временем выполнения DLL.
|
||
Для подготовки используйте следующие параметры:
|
||
<emphasis>-Dprotobuf_MSVC_STATIC_RUNTIME=OFF -Dprotobuf_BUILD_SHARED_LIBS=OFF</emphasis>
|
||
</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>
|
||
Google Protocol Buffers / protocol compiler (protoc): обязательны, убедитесь,
|
||
что во время сборки в PATH доступен правильный 'protoc'. Это особенно
|
||
важно, поскольку пакетные сценарии Windows PHP SDK могут перезаписывать окружение.
|
||
</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>
|
||
Bison: обязателен, и доступен из PATH.
|
||
</para>
|
||
<para>
|
||
Примечание к bison на Windows: мы настоятельно рекомендуем, чтобы bison, поставляемый с
|
||
выбранным PHP SDK, использовал ещё одну ошибку, похожую на "zend_globals_macros.h(39):
|
||
error C2375: 'zendparse': redefinition; different linkage
|
||
Zend/zend_language_parser.h(214): примечание: note: see declaration of 'zendparse'".
|
||
Кроме того, пакетные сценарии Windows PHP SDK могут перезаписывать окружение.
|
||
</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>
|
||
Примечания для Windows: Чтобы подготовить окружение, ознакомьтесь с официальной
|
||
документацией по сборке Windows для
|
||
<link xlink:href="&url.php.win.build2;">текущего SDK</link>.
|
||
</para>
|
||
<para>
|
||
Мы рекомендуем использовать обратную косую черту '\\' вместо косой черты '/' для всех путей.
|
||
</para>
|
||
</listitem>
|
||
</itemizedlist>
|
||
</section>
|
||
</chapter>
|
||
|
||
<!-- Keep this comment at the end of the file
|
||
Local variables:
|
||
mode: sgml
|
||
sgml-omittag:t
|
||
sgml-shorttag:t
|
||
sgml-minimize-attributes:nil
|
||
sgml-always-quote-attributes:t
|
||
sgml-indent-step:1
|
||
sgml-indent-data:t
|
||
indent-tabs-mode:nil
|
||
sgml-parent-document:nil
|
||
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
|
||
sgml-exposed-tags:nil
|
||
sgml-local-catalogs:nil
|
||
sgml-local-ecat-files:nil
|
||
End:
|
||
vim600: syn=xml fen fdm=syntax fdl=2 si
|
||
vim: et tw=78 syn=sgml
|
||
vi: ts=1 sw=1
|
||
-->
|