Laravel-S 项目之初体验
PHP Laravel    2021-12-20 18:50:49    3    0    0
junjie   PHP Laravel
###一、前言 最近看到社区里很多人都在讨论 Laravel-S,我也去 Github 上查看了一下该项目,其实 Laravel-S 是快速集成 Swoole 到 Laravel 或 Lumen,然后赋予它们更好的性能、更多可能性的一个胶水项目。我今天正好空闲下来,心想还是测试一波,看看性能会不会有提升呢? ###二、创建 Laravel 项目 1、新建项目 ``` laravel new laravel-S ``` 或者使用 ``` composer create-project laravel/laravel laravel-S --prefer-dist "6.2.*" ``` 进行新建项目 2、配置好 .env 文件 配置如下: ``` APP_NAME=laravel-s APP_ENV=local APP_KEY=base64:aQ/ykVTPt/++KGQ27oRw6Y3SeACoCyzJOHaNlSumymY= APP_DEBUG=true APP_URL=http://laravel-s.test LOG_CHANNEL=stack DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=laravel_s DB_USERNAME=root DB_PASSWORD=root BROADCAST_DRIVER=log CACHE_DRIVER=file QUEUE_CONNECTION=sync SESSION_DRIVER=file SESSION_LIFETIME=120 REDIS_HOST=127.0.0.1 REDIS_PASSWORD=null REDIS_PORT=6379 MAIL_DRIVER=smtp MAIL_HOST=smtp.mailtrap.io MAIL_PORT=2525 MAIL_USERNAME=null MAIL_PASSWORD=null MAIL_ENCRYPTION=null AWS_ACCESS_KEY_ID= AWS_SECRET_ACCESS_KEY= AWS_DEFAULT_REGION=us-east-1 AWS_BUCKET= PUSHER_APP_ID= PUSHER_APP_KEY= PUSHER_APP_SECRET= PUSHER_APP_CLUSTER=mt1 MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}" MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}" ``` 注意:这里主要配置好数据库连接和 APP_URL,其他的配置项,新建项目时默认带有了 3、配置 Nginx 服务器 新建一个 Nginx 配置文件,写入如下配置(这里根据你自己的项目配置,能访问到项目即可) 我的 Nginx 配置文件如下: ``` server { listen 80; client_max_body_size 512m; root /Users/liangguifeng/www/laravel-S/public; index index.php index.html index.htm; server_name laravel-s.test; location / { try_files $uri $uri/ /index.php?$query_string; } location ~ \.php$ { try_files $uri /index.php =404; fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } location ~ /\.ht { deny all; } } ``` 4、初次访问我们的项目,如下图,那么基本的配置就完成了 ###三、安装 laravel-S 胶水项目到我们的 Laravel 项目上 1、通过 Composer 安装 ``` composer require "hhxsv5/laravel-s:~3.5.0" -vvv ``` 2、注册 Service Provider(以下两步二选一)。 Laravel: 修改文件 config/app.php,Laravel 5.5+支持包自动发现,你应该跳过这步 ``` 'providers' => [ //... Hhxsv5\LaravelS\Illuminate\LaravelSServiceProvider::class, ], ``` Lumen: 修改文件 bootstrap/app.php ``` $app->register(Hhxsv5\LaravelS\Illuminate\LaravelSServiceProvider::class); ``` 3、发布配置和二进制文件。 ``` php artisan laravels publish ``` 4、运行 ``` php bin/laravels start ``` 5、运行成功后如图: 运行结果: 访问成功: ###四、执行 ab 压测 1、新开一个命令行窗口,测试 Nginx 服务器下 Laravel 的并发量: 命令如下: ``` ab -n 2000 -c 100 http://laravel-s.test/ ``` 注意:上面那个命令一般是我们最常用的的,意思是对 http://laravel-s.test/ 的主页发送 2000 个请求 (-n 代表发多少请求) 100 个并发 (-c 代表并发的请求) 测试如图: 2、然后继续测试继承 laravel-S 的 laravel 命令如下: ``` ab -n 2000 -c 100 http://127.0.0.1:5200/ ``` 注意:上面那个命令一般是我们最常用的的,意思是对 http://laravel-s.test/ 的主页发送 2000 个请求 (-n 代表发多少请求) 100 个并发 (-c 代表并发的请求) 测试如图: ###五、结语 1、首先我们来看一下这两个数据的对比吧,如下图: 左边是 Nginx 的压测结果,右边是集成 Laravel-S 的 laravel 压测结果 2、总结 从图中我们可以看到,集成了 laravel-S 的 Laravel 框架确实快了很多很多,但是最近看到社区中使用 laravel-S 的用户,碰到了很多问题,但是集成了 Swoole 后速度确实上升了很多,希望 laravel-S 的作者继续去完善,同时大家想要把自己的项目加上 laravel-S 也要慎重考虑,文章到这里就结束了,我也没什么好说的,毕竟我也是个菜鸟,如果文章中有做得不对的地方和写的不对的地方欢迎大家指出! 3、鸣谢 简单压力测试参考: Fjun 简单的初级压力测试 Laravel-S 作者:hhxsv5 laravel-s ———————————————— 原文作者:犯二青年 转自链接:https://learnku.com/articles/35992?order_by=vote_count& 版权声明:著作权归作者所有。商业转载请联系作者获得授权,非商业转载请保留以上作者信息和原文链接。

上一篇: npm ERR! cb() never called!

下一篇: Linux常用命令

Table of content