-
Notifications
You must be signed in to change notification settings - Fork 79
Expand file tree
/
Copy pathsetup.xml
More file actions
166 lines (148 loc) · 6.57 KB
/
setup.xml
File metadata and controls
166 lines (148 loc) · 6.57 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
<?xml version="1.0" encoding="utf-8"?>
<!-- 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
-->