Swoole入門指南:PHP7安裝Swoole詳細教程(一)

好久未更新了,不是懶呃,是太忙啦!終於偷得浮生幾日閒。
這一段時間準備爲大家帶來swoole的入門教程,感受一下php的nodeJs強悍之處。

所有的示例代碼均放在了github上:learn-swoole

環境

這裏不在使用apache做爲web server。該用nginx + php-fpm,性能更強大,配置更方便。並且爲了跟上php的步伐,也使用了比較新的php版本

  • [x] centos7
  • [x] php7.0.12
  • [x] nginx/1.10.2
  • [x] php-fpm

下載 swoole

首先下載swoole的源碼包,這個操作很簡單,沒有太多說的。

wget -c https://github.com/swoole/swoole-src/archive/v2.0.6.tar.gz

解壓: tar -zxvf v2.0.6.tar.gz

cd swoole-src-2.0.6/

編譯&安裝

使用phpize來生成php編譯配置

./configure 來做編譯配置檢測

make進行編譯,make install進行安裝

命令執行:

[root@php7 swoole-src-2.0.6]# phpize
[root@php7 swoole-src-2.0.6]# ./configure
[root@php7 swoole-src-2.0.6]# make && make install

make install後,如果正確,會出現以下內容

[root@php7 swoole-src-2.0.6]# make install
Installing shared extensions:     /usr/lib64/php/modules/

這表示,在 /usr/lib64/php/modules/ 目錄中,成功生成了 swoole.so 文件

修改配置文件

要能夠使用該模塊,還需要在 php.ini 文件中添加該模塊。

這裏需要注意,php7的模塊配置文件均單獨分開了。
php.ini 中可找到如下內容

;;;;
; Note: packaged extension modules are now loaded via the .ini files
; found in the directory /etc/php.d; these are loaded by default.
;;;;

因此,如果你的php安裝時,如果未特殊設置,可以在/etc/php.d 目錄中,找到添加模塊的配置文件。

進入到 cd /etc/php.d 目錄,完成相關的配置

[root@php7 swoole-src-2.0.6]# vim swoole.ini

; Enable swoole extension module
extension=swoole.so

重啓服務

新增php模塊後,需要重新啓動服務,纔會生效,如果有時候restart後依然無效,請先關閉,再重新啓動。

[root@php7 swoole-src-2.0.6]# systemctl restart nginx
[root@php7 swoole-src-2.0.6]# systemctl restart php-fpm

通過php -m或phpinfo()來查看是否成功加載了swoole

image

swoole 代碼的自動提示

安裝好擴展後,就是使用的問題。由於沒有代碼的提示,有時候很不方便,github上有人已經提供了swoole代碼提示的 ide-helper 。具體設置辦法如下:

這裏以: phpStorme 爲例,download 代碼到本地

git clone git@github.com:eaglewu/swoole-ide-helper.git ide-helper

按照圖片內容設置
image

經過以上步驟,可以在 phpStorme 中使用swoole了。並且提供代碼提示。

簡單測試

所有的測試代碼均放在 這裏

請將該代碼 clone 到本地,方便觀察效果。

git clone git@github.com:helei112g/learn-swoole.git

本節所提供的代碼實例 demo1-serv

進入到測試代碼目錄,

然後在服務端使用 telnet 進行測試


  • 首先,運行服務端的監聽程序
php demo1-serv.php

執行這個命令後,服務器會顯示:

Client: Connect.

  • 另外開一個終端,使用 telnet 連接當前服務端監聽的端口,並且輸入一些文字,觀察終端的變化。
[root@php7 ~]# telnet 127.0.0.1 9999
Hi!
Server: Hi!

這裏只是進行簡單的模擬回覆。客戶端發什麼,服務器就回應什麼消息。
退出telnet,觀察服務器會顯示什麼
直接關閉窗口,或者:

[root@php7 ~]# Ctrl+]
[root@php7 ~]# telnet> quit

此時,會在服務側看到:

Client: Close.

PS:如果測試環境沒有安裝 telnet ,請自行google安裝。

發佈了113 篇原創文章 · 獲贊 153 · 訪問量 62萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章