Инструменты пользователя

Инструменты сайта


php:swoole:ustanovka

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

Официальный образ докера

параметры компиляции

Вот ./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

common problem

Конфликт c расширениями

Сопрограммы могут давать сбой из-за интенсивного использования глобальных переменных некоторыми расширениями отладки трассировки PHP. Пожалуйста, отключите следующие связанные расширения:

  • xdebug
  • phptrace
  • aop
  • molten
  • xhprof
  • phalcon ( Корутины Swoole не могут работать в фреймворках phalcon)

Среди них xdebug и phptrace можно заменить на , sdebug

Для отладки Swoole рекомендуется использовать Yasd, аналогично Xdebug, который отлично поддерживает сопрограммы, поддерживает отладку по точкам останова, пошаговое отслеживание и просмотр переменных;

xhprof, blackfire и molten можно заменить на Swoole Tracker.

php/swoole/ustanovka.txt · Последние изменения: 2023/01/12 12:18 (внешнее изменение)