Code Tu Tam

Cài đặt và cấu hình SWOOLE

Rate this post
Phiên bản mới nhất: pecl install openswoole-4.11.1

Lưu ý: Hãy đảm bảo rằng bạn đã làm theo hướng dẫn các yêu cầu trước khi cố gắng cài đặt Open Swoole, điều này đảm bảo bạn có một hệ thống mới nhất và tất cả các gói và đầy đủ các thư viện của bên thứ ba được yêu cầu.

Dưới đây là hướng dẫn cài đặt với các nền tảng khác nhau:

Docker

Cài đặt qua Open Swoole Docker

docker pull openswoole/swoole

Linux Systems

Installing via Open Swoole Ubuntu PPA

Bạn có thể cài đặt bản phát hành nhị phân Open Swoole thông qua PPA chính thức Open Swoole Ubuntu. Ví dụ: trên Ubuntu hoặc Debian:

Install Open Swoole on Ubuntu 20.04 LTS (Focal Fossa)

apt update
apt install -y software-properties-common && add-apt-repository ppa:ondrej/php -y
apt install -y software-properties-common && add-apt-repository ppa:openswoole/ppa -y
# choose one PHP version:
#apt install -y php7.4-openswoole
#apt install -y php8.0-openswoole
apt install -y php8.1-openswoole

Install Open Swoole on Ubuntu 22.04 LTS (Jammy Jellyfish)

apt update
apt install -y software-properties-common && add-apt-repository ppa:openswoole/ppa -y
# choose one PHP version:
#apt install -y php7.4-openswoole
#apt install -y php8.0-openswoole
apt install -y php8.1-openswoole

Install Open Swoole on CentOS

Bạn có thể cài đặt bản phát hành nhị phân Open Swoole thông qua kho lưu trữ RPM của Remi.

Install Remin Rpo on RHEL CentOS, Fedora

Install Epel and Remi Repo in RHEL:

# On RHEL/CentOS 8
yum install http://rpms.remirepo.net/enterprise/remi-release-8.rpm
yum update
yum --enablerepo=remi install package

#On RHEL/CentOS 7
yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm
yum update
yum --enablerepo=remi install package

Install Remi Repo in Fedora:

dnf install http://rpms.remirepo.net/fedora/remi-release-35.rpm   #[On Fedora 34]
dnf install http://rpms.remirepo.net/fedora/remi-release-34.rpm   #[On Fedora 34]
dnf install http://rpms.remirepo.net/fedora/remi-release-33.rpm   #[On Fedora 33]
dnf install http://rpms.remirepo.net/fedora/remi-release-32.rpm   #[On Fedora 32]
yum --enablerepo=remi install package

Install Open Swoole on RHEL CentOS, Fedora

# choose one PHP version:
#yum install php74-php-openswoole
#yum install php80-php-openswoole
yum install php81-php-openswoole

Installing via PHP PECL

Open Swoole được phát hành dưới dạng gói PECL và có thể được cài đặt bằng dòng lệnh từ mã nhị phân. Đây là cách dễ nhất và nhanh nhất để làm việc với Open Swoole.

#!/bin/bash

# Make sure PECL is available...
$ sudo apt install php-dev

# Latest release of Open Swoole via PECL
$ sudo pecl install openswoole

Hoặc để cài đặt một phiên bản cụ thể bằng PECL:

#!/bin/bash
$ sudo pecl install openswoole-4.9.1

Windows

Install Open Swoole on Windows

Bạn nên sử dụng Ubuntu trên WSL để sử dụng Open Swoole trên Windows.

Bạn phải chạy Windows 10 phiên bản 2004 trở lên (Bản dựng 19041 trở lên) hoặc Windows 11.

wsl --install

Install Open Swoole on WSL / WSL2 (Ubuntu)

apt update
apt install -y software-properties-common && add-apt-repository ppa:ondrej/php -y
apt install -y software-properties-common && add-apt-repository ppa:openswoole/ppa -y
# choose one PHP version:
#apt install -y php7.4-openswoole
#apt install -y php8.0-openswoole
apt install -y php8.1-openswoole

PECL Configuration Options for Open Swoole

Khi cài đặt Open Swoole qua PECL, trong quá trình cài đặt, nó sẽ hỏi bạn có muốn bật một số tính năng nhất định hay không, điều này có thể được cung cấp trước khi chạy cài đặt, điều này giúp tự động hóa quá trình cài đặt Swoole hoặc khi bạn không muốn cài đặt. để dừng và chờ đầu vào. Một số tùy chọn yêu cầu cài đặt thư viện của bên thứ ba, hãy xem điều kiện cần có.

Shorthand Configure Flag

#!/bin/bash
$ pecl 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" with-postgres="yes"' openswoole

Longhand Configure Flag

#!/bin/bash
$ 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" with-postgres="yes"' openswoole

Lưu ý: Các bản phát hành Open Swoole PECL muộn hơn các bản phát hành GitHub.

MacOS Systems

Install Open Swoole with Brew and PECL

#!/bin/bash

# If you haven't got PHP installed
$ brew install php

$ pecl install openswoole

Install Open Swoole with MacPorts

sudo port install php-openswoole

Building Open Swoole from source

Đảm bảo rằng bạn đã hoàn thành các điều kiện cần có trước khi biên dịch Swoole.

Để biên dịch và cài đặt tiện ích mở rộng Swoole cho PHP, chúng tôi có thể sao chép kho lưu trữ từ GitHub nơi Swoole được phát triển, kiểm tra phiên bản bạn muốn biên dịch và cài đặt thủ công.

Tải xuống gói nguồn từ Bản phát hành GitHub hoặc sao chép từ kho lưu trữ git.

#!/bin/bash

# Install git to access the source code from GitHub
$ sudo apt install git

$ cd /tmp && git clone https://github.com/openswoole/swoole-src.git && \
    cd swoole-src && \
    git checkout v4.9.1 && \
    phpize  && \
    ./configure --enable-openssl \
                --enable-mysqlnd \
                --enable-sockets \
                --enable-http2 \
                --enable-swoole-curl \
                --enable-swoole-json \
                --with-postgres \
                --enable-cares && \
    sudo make && sudo make install

Tập lệnh trên sẽ sao chép Open Swoole từ GitHub, kiểm tra v4.6.7 và thiết lập Open Swoole sẵn sàng để biên dịch bằng phpize. Sau đó, chúng tôi sử dụng ./configure để xây dựng Open Swoole với các tùy chọn mà chúng tôi muốn kích hoạt, mọi thứ sau đó được biên dịch bằng cách sử dụng make và thực hiện cài đặt. Bạn có thể chọn tùy chọn cấu hình nào bạn cần, xem thông số cấu hình để biết thêm thông tin.

Bạn có thể cần chạy thực hiện cài đặt với các đặc quyền sudo.

Enable Open Swoole extension in PHP

Sau khi cài đặt tiện ích mở rộng Swoole vào thư mục tiện ích mở rộng PHP, bạn sẽ cần bật Open Swoole để PHP có thể tải tiện ích mở rộng khi thực thi mã.

Manually enabling Open Swoole via php.ini

Trên hầu hết các hệ thống, Open Swoole có thể được bật bằng cách chỉnh sửa trực tiếp tệp cấu hình php.ini của bạn, bạn sẽ muốn thêm extension = openswoole vào cuối tệp và sau đó Open Swoole sẽ được bật.

#!/bin/bash

# Check the loaded CLI php.ini config file location
$ php -i | grep php.ini

# Add the openswoole.so extension to the end of your loaded cli php.ini
$ sudo bash -c "echo 'extension=openswoole' >> $(php -i | grep /.+/php.ini -oE)"

# Manually set the path of your php.ini file
$ sudo bash -c 'echo "extension=openswoole" >> /etc/php/7.4/cli/php.ini'

# Check if the Swoole extension has been enabled
$ php -m | grep openswoole

Enabling Open Swoole via phpenmod

Một số bản phân phối Linux như Debian hoặc Ubuntu sử dụng các mod PHP có sẵn để tải các phần mở rộng PHP, trong trường hợp này bạn có thể sử dụng phpenmod để kích hoạt Swoole. Làm theo các lệnh bên dưới để bật Swoole.

Đảm bảo thay đổi <PHP_VERSION> thành phiên bản PHP mà bạn đã cài đặt

#!/bin/bash

# Create a Swoole extension PHP ini file, letting PHP know which modules to load
$ sudo bash -c "cat > /etc/php/<PHP_VERSION>/mods-available/openswoole.ini << EOF
; Configuration for Open Swoole
; priority=30
extension=openswoole
EOF"

# Enable the Open Swoole extension only on CLI mode
$ sudo phpenmod -s cli openswoole

# Optional: Enable Open Swoole for specific version of PHP CLI
$ sudo phpenmod -s cli -v 7.4 openswoole

# Check if the Open Swoole extension has been enabled
$ php -m | grep openswoole

Bạn cũng có thể tắt Open Swoole bằng phpdismod nếu cần (đây không phải là gỡ cài đặt, chỉ cần tắt Swoole):

#!/bin/bash

# Turn off Open Swoole for CLI or a specific PHP install
sudo phpdismod -s cli openswoole
sudo phpdismod -s cli -v 7.4 openswoole

Thông số cấu hình

Các tùy chọn cấu hình này được sử dụng để bật một số tính năng với Open Swoole, bạn có thể sử dụng các tùy chọn này khi cài đặt qua PECL hoặc biên dịch từ nguồn.

Thông số chung

–enable-openssl

Bật hỗ trợ OpenSSL. Nó phụ thuộc vào thư viện libssl.so được cung cấp bởi hệ điều hành của bạn.

–with-openssl-dir

Đặt đường dẫn của thư viện OpenSSL mà bạn muốn sử dụng, ví dụ: – with-openssl-dir = / opt / openssl /.

–enable-http2

Bật hỗ trợ của HTTP2. Nó phụ thuộc vào thư viện nghttp2 được tích hợp sẵn trong Open Swoole cho bạn. Tuy nhiên, bạn vẫn phải bật tùy chọn này nếu muốn hỗ trợ HTTP2.

–enable-swoole-json

Bật hỗ trợ OpenSwoole JSON, điều này cho phép các chức năng OpenSwoole JSON. Bạn cũng phải cài đặt PHP-JSON.

–enable-swoole-curl

Bật hỗ trợ móc CURL gốc cho các quy trình mở rộng của OpenSwoole. Vì v4.6.0 có hỗ trợ riêng cho CURL, bạn phải cài đặt libcurl4-openssl-dev.

–with-postgres

Bật hỗ trợ Postgres Coroutine.

–enable-cares

Bật hỗ trợ cho hỗ trợ DNS không đồng bộ, có thể thực hiện được bằng cách biên dịch C-are của thư viện DNS. Theo mặc định, tính năng này bị tắt, nếu C-ares không được bật, các truy vấn DNS không đồng bộ trong OpenSwoole được mô phỏng với một nhóm các quy trình chặn để xử lý.

Khi C-ares được bật trong OpenSwoole, tất cả các truy vấn DNS được tạo bởi Hệ thống API OpenSwoole DNS :: dnsLookup, System :: gethostbyname hoặc OpenSwoole coroutine client là không đồng bộ, bao gồm cả ứng dụng MySQL, Redis Client, HTTP Client, CURL, v.v. Ngoài ra bất kỳ tên DNS nào cũng được giải quyết.

Bạn phải cài đặt libc-ares trước khi bật cờ này:

## Centos
yum install -y libc-ares-devel
## Debian & Ubuntu
apt-get install -y libc-ares-dev

Các thông số bổ sung

–enable-mysqlnd

Bật hỗ trợ cho mysqlnd, ví dụ: điều này thêm hỗ trợ cho $ mysql-> Escape (…). Bạn cũng phải cài đặt mô-đun mysqlnd PHP để tùy chọn này hoạt động. Tuy nhiên, bạn nên sử dụng PHP PDO MySQL để thay thế.

–with-postgres

Hoặc sử dụng –with-postgres [= DIR] khi bạn đã cài đặt thư viện postgres tại một vị trí tùy chỉnh.

Kích hoạt hỗ trợ cho postgres, điều này bổ sung hỗ trợ cho Coroutine PostgreSQL Client.

–enable-sockets

Bật hỗ trợ ổ cắm. Nó phụ thuộc vào phần mở rộng PHP sockets. Nếu cấu hình này đã được bật, hàm Swoole \ Event :: add () có thể thêm kết nối được tạo bởi phần mở rộng ổ cắm vào vòng lặp sự kiện của Swoole. Và hàm getSocket () phụ thuộc vào cấu hình này được kích hoạt. Tuy nhiên, dịch vụ Coroutine \ Socket có thể làm được hầu hết mọi việc và có thể được khuyến nghị nhiều hơn.

Tham số gỡ lỗi

–enable-debug

Bật chế độ gỡ lỗi cho Swoole. Bạn sẽ cần cài đặt gdb để sử dụng tham số này.

–enable-debug-log

Bật nhật ký gỡ lỗi của OpenSwoole. Không bật cấu hình này trong môi trường sản xuất.

–enable-trace-log

Bật nhật ký theo dõi. Sau khi bật tùy chọn này, OpenSwoole sẽ in ra các chi tiết khác nhau của nhật ký gỡ lỗi, nhật ký này chỉ được sử dụng trong quá trình phát triển hạt nhân.

Tham số biên dịch PHP

–enable-swoole

Biên dịch tĩnh OpenSwoole và mở rộng nó sang PHP. Tùy chọn này chỉ được sử dụng khi biên dịch PHP thay vì OpenSwoole.

Nâng cấp Open Swoole

Khi phiên bản OpenSwoole mới được phát hành, bạn có thể nâng cấp nhưng tùy thuộc vào cách bạn cài đặt OpenSwoole.

Không cần gỡ cài đặt OpenSwoole hoặc xóa bất kỳ tệp nào trước đó, việc nâng cấp sẽ ghi đè lên bất kỳ tệp hoặc tệp nhị phân nào, quá trình cài đặt / nâng cấp chỉ tạo ra một tệp nhị phân openswoole.so cho PHP để sử dụng.

Để biết các thay đổi và cập nhật, hãy xem các bài đăng tại https://openswoole.com/article/

Nâng cấp bằng PECL

Nếu bạn đã cài đặt qua PECL, bạn chỉ có thể chạy:

#!/bin/bash
$ sudo pecl upgrade openswoole

Hoặc để cài đặt một phiên bản cụ thể bằng PECL:

#!/bin/bash
$ sudo pecl upgrade openswoole-4.5.5

Nâng cấp từ nguồn

Nếu bạn đã tự biên dịch OpenSwoole từ GitHub, bạn có thể biên dịch lại và cài đặt lại các thay đổi / phiên bản mới.

#!/bin/bash

# Enter the directory where you cloned OpenSwoole
cd swoole-src

# Pull down any new changes or checkout a new tag
git pull | git checkout v4.9.1 | git checkout master

# Reconfigure the build for PHP again
phpize clean && phpize

# Configure OpenSwoole features again
./configure --enable-openssl \
            --enable-mysqlnd \
            --enable-sockets \
            --enable-http2 \
            --enable-swoole-curl

...

# Perform a clean so we can recompile
make clean

# Build and Compile new version
sudo make && sudo make install

Nâng cấp từ Open Swoole Ubuntu PPA trên Ubuntu HOẶC Windows WSL

Nếu bạn đã cài đặt OpenSwoole qua Open Swoole Ubuntu PPA, bạn sẽ nhận được các bản cập nhật qua trình quản lý gói của mình. Ví dụ: trên Ubuntu hoặc Debian:

#!/bin/bash

sudo apt update
sudo apt upgrade

# Upgrade Open Swoole package only, change to what you have installed
sudo apt update
sudo apt install --only-upgrade php8.1-openswoole

Nếu bạn đang sử dụng phiên bản PHP mới, hãy thực hiện thao tác tìm kiếm apt để cài đặt phiên bản chính xác.

Các lỗi cài đặt phổ biến

Nếu bạn gặp khó khăn khi cài đặt hoặc nâng cấp Swoole, trước tiên hãy kiểm tra hướng dẫn các điều kiện cần có nhưng nếu điều đó không hữu ích, hãy kiểm tra các lỗi cài đặt phổ biến để được trợ giúp thêm.

Segment Fault Errors

Bạn có thể làm theo hướng dẫn về cách gỡ lỗi segment fault errors  với Swoole nếu bạn gặp bất kỳ lỗi nào.

Cách kiểm tra thông tin cài đặt / tùy chọn đã bật hiện tại

#!/bin/bash

# Show Swoole installed options and information
$ php --ri openswoole

...

# Example output from command above...
openswoole

Open Swoole => enabled
Author => Open Swoole Group <hello@openswoole.com>
Version => 4.9.2-dev
Built => Dec 27 2021 22:14:42
coroutine => enabled with boost asm context
kqueue => enabled
rwlock => enabled
sockets => enabled
openssl => OpenSSL 3.0.0 7 sep 2021
dtls => enabled
http2 => enabled
json => enabled
curl-native => enabled
pcre => enabled
c-ares => 1.17.2
zlib => 1.2.11
brotli => E16777225/D16777225
mysqlnd => enabled
async_redis => enabled
postgresql => enabled

Directive => Local Value => Master Value
swoole.enable_coroutine => On => On
swoole.enable_library => On => On
swoole.enable_preemptive_scheduler => Off => Off
swoole.display_errors => On => On
swoole.use_shortname => On => On
swoole.unixsock_buffer_size => 262144 => 262144

 

Xem thêm bài viết khác:

Các bạn có thể xem chi tiết hơn trên https://openswoole.com/docs/get-started/installation

Hi vọng với bài viết này, bạn có thể cài đặt thành công swoole cho dự án của mình . Nếu bạn thấy bài viết hay và có ý nghĩa hãy like và chia sẻ bài viết này để mọi người cùng nhau học tập nhé. Cảm ơn các bạn đã ghé thăm codetutam.com

Exit mobile version