1.概述:
Swoole是:PHP語言的高性能網絡通訊框架,提供了PHP語言的異步多線程服務器,處理異步任務,異步TCP/UDP網絡客戶端,異步MySQL,數據庫鏈接池,AsyncTask,消息隊列,毫秒定時器,異步文件讀寫,異步DNS查詢。 Swoole雖然是標準的PHP擴展,實際上與普通的擴展不一樣。普通的擴展只是提供一個庫函數。而swoole擴展在運行後會接管PHP的控制權,進入事件循環。當IO事件發生後,swoole會自動回調指定的PHP函數。php
2.Linux系統版本信息:mysql
PHP 7.2.10-0ubuntu0.18.04.1 ;sql
3.Homestead Perl 方法安裝swoole:數據庫
1) 安裝流程:ubuntu
1 $ sudo pecl channel-update pecl.php.net (sudo,不然沒法打開文件,發生警告)
2 $ sudo pecl install swoole (sudo,不然沒法打開文件,發生警告)
2) 若是碰見報錯:No releases available for package 「pecl.php.net/swoole」,解決:vim
1 $ pear clear-cache 2 $ pear update-channels 3 $ pear upgrade
3) 若是碰見報錯:Cannot install, php_dir for channel "pecl.php.net" is not writeable by the current user,解決:服務器
1 pecl config-get php_dir 獲取配置文件php_dir參數 2 sudo chown< username> < php_dir> 更改該文件夾的全部權 3 pecl config-set php_dir /path/new/dir php_dir設置爲其餘文件夾
4) 根據本身需求,開啓擴展支持:swoole
1 enable sockets supports? [no] : 啓用套接字支持?[否] 2 enable openssl support? [no] : 啓用OpenSSL支持?[否] 3 enable http2 support? [no] : 啓用HTTP2支持?[否] 4 enable mysqlnd support? [no] : 啓用mysqlnd支持?[否] 5 enable postgresql coroutine client support? [no] : 啓用PostgreSQL協程客戶端支持?[否]
5) 安裝成功顯示以下:網絡
1 Build process completed successfully 2 Installing '/usr/lib/php/20151012/swoole.so' 3 Installing '/usr/include/php/20151012/ext/swoole/config.h' 4 install ok: channel://pecl.php.net/swoole-4.2.11 5 configuration option "php_ini" is not set to php.ini location 6 You should add "extension=swoole.so" to php.ini
上面提示了,你應該添加extension=swoole.so到php.ini文件
6)查看php.ini文件位置,命令以下php7
1 php -i|grep php.ini
結果以下:
1 vagrant@homestead:~$ php -i|grep php.ini 2 Configuration File (php.ini) Path => /etc/php/7.0/cli 3 Loaded Configuration File => /etc/php/7.0/cli/php.ini
7)vim編輯一下 /etc/php/7.0/cli/php.ini,在擴展尾部加上extension=swoole.so,擴展前不要帶分號
;extension=php_xsl.dll extension=swoole.so ;;;;;;;;;;;;;;;;;;; ; Module Settings ; ;;;;;;;;;;;;;;;;;;;
8)重啓php環境
1 sudo service php7.0-fpm restart
9)查看swoole擴展是否安裝成功
1 php -m |grep swoole
顯示結果:
1 vagrant@homestead:~$ php -m |grep swoole 2 swoole
好了,Homestead安裝swoole擴展就此安裝成功// vagrant reload --provision以後,php文件echo phpinfo();一樣查看swoole擴展。