====== Установить 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.