CentOS7.2 PHP7.4.3 swoole擴(kuò)展 (第二章)

Swoole擴(kuò)展

接著第一章的源碼安裝PHP上擴(kuò)展swoole-4.4.16

① 下載并解壓swoole [下載連接:](wget https://github.com/swoole/swoole-src/archive/v4.4.16.tar.gz)
[root@anonymous package]# wget https://github.com/swoole/swoole-src/archive/v4.4.16.tar.gz
解壓swoole.jpg
② 進(jìn)入解壓后的 swoole-src-4.4.16 目錄 利用 phpize 生成 configure 文件
[root@anonymous swoole-src-4.4.16]# pwd
/package/swoole-src-4.4.16
[root@anonymous swoole-src-4.4.16]# ls
clear.sh        make.sh               remake_library.sh       swoole_client_coro.cc          swoole_http_client_coro.cc  swoole_mysql_proto.cc   swoole_socket_coro.cc
CMakeLists.txt  mascot.png            src                     swoole_coroutine.cc            swoole_http_client.h        swoole_mysql_proto.h    swoole_table.cc
code_stats.sh   package.xml           SUPPORTED.md            swoole_coroutine.h             swoole_http.h               swoole_process.cc       swoole_timer.cc
config.m4       php_swoole_cxx.cc     swoole_async_coro.cc    swoole_coroutine_scheduler.cc  swoole_http_request.cc      swoole_process_pool.cc  swoole_websocket_server.cc
CREDITS         php_swoole_cxx.h      swoole_atomic.cc        swoole_coroutine_system.cc     swoole_http_response.cc     swoole_redis_coro.cc    tests
examples        php_swoole.h          swoole_buffer.c         swoole_coroutine_system.h      swoole_http_server.cc       swoole_redis_server.cc  thirdparty
gdbinit         php_swoole_library.h  swoole.cc               swoole_event.cc                swoole_http_server_coro.cc  swoole_runtime.cc       tools
include         README-CN.md          swoole_channel_coro.cc  swoole_http2_client_coro.cc    swoole_lock.cc              swoole_server.cc        travis
LICENSE         README.md             swoole_client.cc        swoole_http2_server.cc         swoole_mysql_coro.cc        swoole_server_port.cc
[root@anonymous swoole-src-4.4.16]# phpize
Configuring for:
PHP Api Version:         20190902
Zend Module Api No:      20190902
Zend Extension Api No:   320190902
[root@anonymous swoole-src-4.4.16]# ls
autom4te.cache  examples           php_swoole_library.h  swoole.cc                      swoole_http2_client_coro.cc  swoole_mysql_coro.cc    swoole_socket_coro.cc
build           gdbinit            README-CN.md          swoole_channel_coro.cc         swoole_http2_server.cc       swoole_mysql_proto.cc   swoole_table.cc
clear.sh        include            README.md             swoole_client.cc               swoole_http_client_coro.cc   swoole_mysql_proto.h    swoole_timer.cc
CMakeLists.txt  LICENSE            remake_library.sh     swoole_client_coro.cc          swoole_http_client.h         swoole_process.cc       swoole_websocket_server.cc
code_stats.sh   make.sh            run-tests.php         swoole_coroutine.cc            swoole_http.h                swoole_process_pool.cc  tests
config.h.in     mascot.png         src                   swoole_coroutine.h             swoole_http_request.cc       swoole_redis_coro.cc    thirdparty
config.m4       package.xml        SUPPORTED.md          swoole_coroutine_scheduler.cc  swoole_http_response.cc      swoole_redis_server.cc  tools
configure       php_swoole_cxx.cc  swoole_async_coro.cc  swoole_coroutine_system.cc     swoole_http_server.cc        swoole_runtime.cc       travis
configure.ac    php_swoole_cxx.h   swoole_atomic.cc      swoole_coroutine_system.h      swoole_http_server_coro.cc   swoole_server.cc
CREDITS         php_swoole.h       swoole_buffer.c       swoole_event.cc                swoole_lock.cc               swoole_server_port.cc
[root@anonymous swoole-src-4.4.16]# 
[root@anonymous swoole-src-4.4.16]# ./configure --with-php-config=/usr/study/ext/php/bin/php-config
[root@anonymous swoole-src-4.4.16]# make && make install
swooleSo.jpg

可以看到上圖 swoole.so 已經(jīng)生成了 需要到 php.ini 里面 添加 extension=swoole

[root@anonymous lib]# pwd
/usr/study/ext/php/lib
[root@anonymous lib]# vim php.ini 
ini添加.jpg
③ 查看 php --ri swoole 是否開啟狀態(tài)
擴(kuò)展完畢.jpg
④ 測試是否能用

在 /package/swoole-src-4.4.16/examples/server 目錄下執(zhí)行 echo.php
以下是 echo.php 文件中的內(nèi)容, 具體請?jiān)敿?xì)看swoole官方手冊

<?php
$serv = new swoole_server("0.0.0.0", 9501);
//$serv->on('connect', function ($serv, $fd, $reactor_id){
//      echo "[#".posix_getpid()."]\tClient@[$fd:$reactor_id]: Connect.\n";
//});
$serv->set(array(
    'worker_num' => 1,

));

$serv->on('receive', function (swoole_server $serv, $fd, $reactor_id, $data) {
        echo "[#".$serv->worker_id."]\tClient[$fd] receive data: $data\n";
    if ($serv->send($fd, "hello {$data}\n") == false)
    {
        echo "error\n";
    }

});

//$serv->on('close', function ($serv, $fd, $reactor_id) {
//      echo "[#".posix_getpid()."]\tClient@[$fd:$reactor_id]: Close.\n";
//});

$serv->start();
執(zhí)行echo文件.jpg
[root@anonymous ~]# netstat -ltpn | grep 9501
tcp        0      0 0.0.0.0:9501            0.0.0.0:*               LISTEN      15092/php           
[root@anonymous ~]# 

到此可以看到9501端口已經(jīng)啟動(dòng),說明 swoole-4.4.16 擴(kuò)展成功

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
禁止轉(zhuǎn)載,如需轉(zhuǎn)載請通過簡信或評論聯(lián)系作者。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容