dionyang25 / yii2-swoole-plugin
yii2 swoole 测试demo
0.1.1
2017-12-20 02:59 UTC
This package is not auto-updated.
Last update: 2025-03-02 06:10:07 UTC
README
一个用于在swoole上运行yii2项目的composer包,类似的其实是有的,自己写了一个简单版的。
composer包安装
composer require dionyang25/yii2-swoole-plugin
composer包地址
https://packagist.org/packages/dionyang25/yii2-swoole-plugin
如何启动
- 配置console设置(config/console.php),在component中添加组件
'yii2Swoole'=>[ 'class'=>'yii2Swoole\Server' ]
这里可以加入对swoole的配置,支持的配置如下(下图为默认配置)
'yii2Swoole'=>[ 'class'=>'yii2Swoole\Server', 'config'=>[ 'daemonize'=>0, 'reactor_num'=>4, 'worker_num'=>20, 'max_request' => 100, 'pid_file'=> __DIR__ . '/../../../runtime/server.pid' ] ]
- 准备入口文件,该入口文件主要是设置你的YII应用服务器的启动参数,最终返回一个合并的启动数组配置即可
defined('YII_DEBUG') or define('YII_DEBUG',true); defined('YII_ENV') or define('YII_ENV', 'dev'); $config = \yii\helpers\ArrayHelper::merge( require(__DIR__ . '/../config/web.php') , require(__DIR__ . '/../config/web-local.php') ); return $config;
- 添加console启动控制器
namespace app\commands; use yii\console\Controller; use Yii; /** * @author DionYang * @since 2.0 */ class HelloController extends Controller { /** * This command echoes what you have entered as the message. * @param string $message the message to be echoed. */ public function actionIndex() { $server =Yii::$app->yii2Swoole; $server->entrance_file = __DIR__.'/../php-backstreet-api/index-test.php'; $server->run(); } public function actionStop() { $this->stdout('Already Stop'.PHP_EOL); Yii::$app->yii2Swoole->appStop(); } }
- 需要修改nginx配置如下,注意,如果在yii2中启用pathinfo模式,那么三个额外的header必须要添加,否则无法正确匹配路由。 示例如下:
location ^~ /php-backstreet-api { root /Users/admin/www/php-backstreet-api; location ~ \.(css|js|jpg|png|gif)$ { root /Users/admin/www; } location ~ / { try_files $uri $uri/ /php-backstreet-api/index.php$is_args$args; #fastcgi_pass 127.0.0.1:9003; #fastcgi_index index.php; #fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; #include fastcgi_params; proxy_set_header request_uri $request_uri; proxy_set_header script_name $script_name; proxy_set_header script_filename $document_root$fastcgi_script_name; proxy_set_header Connection "keep-alive"; proxy_set_header X-REAL-IP $remote_addr; proxy_pass http://127.0.0.1:9778; } }
- 控制台使用如下命令启动
./yii hello //启动 ./yii hello/stop //终止