====== Установить Swoole ======
Расширения «Swoole» построены в соответствии со стандартными расширениями «PHP». Используйте «phpize» для создания сценариев обнаружения компиляции, для выполнения «./configure» определения конфигурации компиляции, «make» для компиляции и «make install» для установки.
* **Если нет особых требований, обязательно скомпилируйте и установите последнюю версию релиза Swoole или v4.4LTS**
* Если текущий пользователь не является «root», у него может не быть прав на запись в каталог установки «PHP», который требуется во время установки «sudo» или «su»
* Если вы обновляете код непосредственно в ветке 'git', обязательно выполните 'git pull' перед перекомпиляцией 'make clean'
* Поддерживает только «Linux» (ядро выше 2.3.32), «FreeBSD» и «MacOS» — три операционные системы, а системы Linux с низкими версиями (такие как «CentOS 6») могут быть «RedHat» скомпилированы с помощью «инструментов разработки» с использованием предоставленный, обратитесь к документации, на платформе «Windows» вы можете использовать «WSL (подсистема Windows для Linux)» или «CygWin»
* Некоторые расширения несовместимы с расширениями «Swoole», см. конфликты расширений.
===== Подготовка к установке =====
Перед установкой убедитесь, что в системе установлено следующее программное обеспечение
* **php-7.2** или выше
* **gcc-4.8** или выше
* **make**
* **autoconf**
===== Быстрая установка =====
> 1. Загрузите исходный код swoole
* [[https://github.com/swoole/swoole-src/releases|https://github.com/swoole/swoole-src/releases]]
* [[https://pecl.php.net/package /swoole|https://pecl.php.net/package/swoole]]
* [[https://gitee.com/swoole/swoole/tags|https://gitee.com/swoole/swoole/tags]]
> 2. Скомпилируйте и установите из исходников
После загрузки пакета исходного кода войдите в каталог исходного кода в терминале и выполните следующие команды для компиляции и установки.
В Ubuntu не установлена исполняемая команда phpize: «sudo apt-get install php-dev», чтобы установить phpize
cd swoole-src && \
phpize && \
./configure && \
make && sudo make install
> 3. Включить расширения
После успешной компиляции и установки в систему вам нужно добавить в php.ini строку «extension=swoole.so», чтобы включить расширение Swoole.
===== Расширенный пример полной компиляции =====
> Разработчики, которые плохо знакомы с Swoole, попробуйте простую компиляцию выше. При необходимости вы можете настроить параметры компиляции в следующем примере в соответствии с конкретными требованиями и версиями. Справочник по параметрам компиляции
Следующий скрипт загрузит и скомпилирует исходный код ветки «master», убедитесь, что вы установили все зависимости, иначе вы столкнетесь с различными ошибками зависимостей.
mkdir -p ~/build && \
cd ~/build && \
rm -rf ./swoole-src && \
curl -o ./tmp/swoole.tar.gz https://github.com/swoole/swoole-src/archive/master.tar.gz -L && \
tar zxvf ./tmp/swoole.tar.gz && \
mv swoole-src* swoole-src && \
cd swoole-src && \
phpize && \
./configure \
--enable-openssl \
--enable-http2 && \
make && sudo make install
===== PECL =====
> Примечание: время выпуска PECL позже, чем время выпуска GitHub.
Проект Swoole включен в официальную библиотеку расширений PHP. Помимо загрузки и компиляции вручную, вы также можете загрузить и установить его одним щелчком мыши с помощью команды «pecl».
pecl install swoole
При установке Swoole через PECL во время установки он спросит, хотите ли вы включить определенные функции, это также можно указать перед запуском установки, например:
ecl install -D 'enable-sockets="no" enable-openssl="yes" enable-http2="yes" enable-mysqlnd="yes" enable-swoole-json="no" enable-swoole-curl="yes" enable-cares="yes"' swoole
#или
pecl install --configureoptions 'enable-sockets="no" enable-openssl="yes" enable-http2="yes" enable-mysqlnd="yes" enable-swoole-json="no" enable-swoole-curl="yes" enable-cares="yes"' swoole
===== Добавьте Swoole в php.ini =====
Наконец, после успешной компиляции и установки измените и добавьте **php.ini**
extension=swoole.so
**php -m** Проверьте, успешно ли загружен **swoole.so**, если нет, **php.ini** неверный.
Вы можете использовать **php –ini**, чтобы найти **php.ini** — абсолютный путь к файлу .
**Загруженный файл конфигурации**. Один элемент показывает загруженный файл **php.ini**. Если значение «none» доказывает, что файл **php.ini** вообще не загружен, вам нужно создать его самостоятельно.
===== Компилировать для других платформ =====
Платформа ARM (Raspberry Pi Raspberry PI)
* Используйте перекрестную компиляцию **GCC**
* При компиляции **Swoole** вам необходимо вручную изменить и **Makefile** удалить параметр компиляции **-O2**.
MIPS platform (OpenWrt router)
* Кросс-компиляция с помощью GCC
Windows WSL
**Windows 10** В систему добавлена поддержка подсистемы ''Linux'', ''BashOnWindows'', которую также можно использовать в среде ''Swoole''. установить команду
apt-get install php7.0 php7.0-curl php7.0-gd php7.0-gmp php7.0-json php7.0-mysql php7.0-opcache php7.0-readline php7.0-sqlite3 php7.0-tidy php7.0-xml php7.0-bcmath php7.0-bz2 php7.0-intl php7.0-mbstring php7.0-mcrypt php7.0-soap php7.0-xsl php7.0-zip
pecl install swoole
echo 'extension=swoole.so' >> /etc/php/7.0/mods-available/swoole.ini
cd /etc/php/7.0/cli/conf.d/ && ln -s ../../mods-available/swoole.ini 20-swoole.ini
cd /etc/php/7.0/fpm/conf.d/ && ln -s ../../mods-available/swoole.ini 20-swoole.iniCopy to clipboardErrorCopied
> **WSL** Параметры **daemonize** \\ ниже должны быть закрыты **17101** в среде **WSL**, а исходный код должен быть изменен **configure** после **config.h** Закрыть **HAVE_SIGNALFD**
===== Официальный образ докера =====
* GitHub: https://github.com/swoole/docker-swoole
* dockerhub: https://hub.docker.com/r/phpswoole/swoole
===== параметры компиляции =====
Вот **./configure** дополнительные параметры конфигурации сборки для включения определенных функций.
==== Общие параметры ====
=== --enable-openssl ===
включить поддержку **SSL**
> Использует библиотеку libssl.so
=== --with-openssl-dir ===
Чтобы включить поддержку **SSL** нужно указать **openssl** путь к библиотеке, например: ''--with-openssl-dir=/opt/openssl/''
=== --enable-http2 ===
**HTTP2** Включить поддержку
> зависимость от библиотеки **nghttp2** . После версии ''v4.3.0'' больше не нужно устанавливать зависимости и менять на встроенные, но все равно нужно добавить этот параметр компиляции, чтобы включить поддержку **http2**
=== --enable-swoole-json ===
Включить поддержку swoole_substr_json_decode
> Зависит от расширения **json** , **v4.5.7** - доступная версия
=== --enable-swoole-curl ===
Включить поддержку SWOOLE_HOOK_NATIVE_CURL
> Доступна версия v4.6.0. Если компиляция сообщает об ошибке **curl/curl.h**: нет такого файла или каталога, проверьте процесс установки.
=== --enable-cares ===
Включить поддержку **c-ares**
==== специальные параметры ====
**Если нет исторической причины, не рекомендуется включать**
=== --enable-mysqlnd ===
Включите поддержку **mysqlnd**, включите метод **Coroutine\\MySQL::escapse**. Когда этот параметр включен, в **PHP** должен быть модуль **mysqlnd**, иначе **Swoole** не будет работать.
> зависит от расширения **mysqlnd**
=== --enable-sockets ===
Добавлена поддержка ресурсов PHP **sockets**. Если этот параметр включен, **Swoole\\Event::add** может добавлять расширения **sockets** при созданнии соединениями, в Swoole в цикле событий. \\ \\
Метод **getSocket()** в **Server** и **Client** должен полагаться на этот параметр компиляции.
==== Параметры отладки ====
=== --enable-debug ===
Включите режим отладки. Использование трассировки **gdb**,необходимо добавлялся этот параметр во время компиляции.
=== --enable-debug-log ===
Включите журнал отладки ядра. **(Swoole версия = 4.2.0)**
=== --enable-trace-log ===
Включите журнал трассировки. Когда эта опция включена, swoole будет печатать журнал отладки с различными подробностями. Он используется только для разработки ядра.
==== Параметры компиляции PHP ====
=== --enable-swoole ===
Статически скомпилировать расширение Swoole в PHP
Эта опция используется при компиляции PHP вместо Swoole.
===== video tutorial =====
* [[https://course.swoole-cloud.com/course-video/23|Видеоинструкция по установке Swoole]]
===== common problem =====
* [[https://wiki.swoole.com/#/question/install|Часто задаваемые вопросы по установке Swoole]]
===== Конфликт c расширениями =====
Сопрограммы могут давать сбой из-за интенсивного использования глобальных переменных некоторыми расширениями отладки трассировки PHP. Пожалуйста, отключите следующие связанные расширения:
* xdebug
* phptrace
* aop
* molten
* xhprof
* phalcon ( Корутины ''Swoole'' не могут работать в фреймворках ''phalcon'')
Среди них ''xdebug'' и ''phptrace'' можно заменить на , [[https://github.com/swoole/sdebug|sdebug]]
> Для отладки Swoole рекомендуется использовать [[https://github.com/swoole/yasd|Yasd]], аналогично Xdebug, который отлично поддерживает сопрограммы, поддерживает отладку по точкам останова, пошаговое отслеживание и просмотр переменных;
''xhprof'', ''blackfire'' и ''molten'' можно заменить на Swoole Tracker.