1、swoole的安装
安装前必须保证系统已经安装了下列软件
php-7.0 或更高版本
gcc-4.8 或更高版本
make
autoconf
pcre (CentOS系统可以执行命令:yum install pcre-devel)
下载地址
https://github.com/swoole/swoole-src/releases
http://pecl.php.net/package/swoole
http://git.oschina.net/swoole/swoole
下载源代码包后,在终端进入源码目录,执行下面的命令进行编译和安装
新手编译示例
cd swoole
phpize (ubuntu 没有安装phpize可执行命令:sudo apt-get install php-dev来安装phpize)
./configure
make
sudo make install
配置php.ini
编译安装成功后,修改php.ini加入
extension=swoole.so
通过php -m或phpinfo()来查看是否成功加载了swoole.so
2、ThinkPHP5.1的安装
环境要求如下:
PHP >= 5.6.0
PDO PHP Extension
MBstring PHP Extension
composer安装命令
composer create-project topthink/think=5.1.* tp5
参考手册(https://www.kancloud.cn/manual/thinkphp5_1/353946)
3、安装swoole扩展
安装think-swoole扩展。
composer require topthink/think-swoole=2.0.*
4、使用swoole
在项目根目录下创建swoole目录(用来写swoole逻辑代码)
use think\Container;
$http = new swoole_http_server('0.0.0.0',8814);
//浏览器展示静态文件
$http->set([
'enable_static_handler' => true,
'document_root' => "/www/wwwroot/swoole.demo/tp5/public",//程序静态文件目录
'worker_num' => 5,//进程数
]);
$http->on('WorkerStart',function ($server, $worker_id){
// 定义应用目录
define('APP_PATH',__DIR__.'/../application/');
//加载框架中的起始文件
require __DIR__ . '/../thinkphp/base.php';
});
$http->on('request',function ($request,$response){
if(isset($request->server)){
foreach ($request->server as $k=>$v){
$_SERVER[strtoupper($k)] = $v;
}
}
if(isset($request->header)){
foreach ($request->header as $k=>$v){
$_SERVER[strtoupper($k)] = $v;
}
}
if(isset($request->get)){
foreach ($request->get as $k=>$v){
$_GET[$k] = $v;
}
}
if(isset($request->post)){
foreach ($request->post as $k=>$v){
$_POST[$k] = $v;
}
}
ob_start();
// 执行应用并响应
Container::get('app')->run()->send();
$res = ob_get_contents();
ob_end_clean();
$response->end($res);
});
$http->start();
使用成功