博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用 Swoole 来加速你的 Laravel 应用
阅读量:5230 次
发布时间:2019-06-14

本文共 1494 字,大约阅读时间需要 4 分钟。

为什么要在 Swoole 上运行 Laravel?

下图展示了 PHP 的生命周期。正如你所看到的那样,当你每次运行 PHP 脚本的时候,PHP 都需要初始化模块并为你的运行环境启动 Zend 引擎。并且将 PHP 脚本编译为 OpCodes 以便 Zend 引擎执行。

但是, 这样的生命周期需要在每次请求的时候都执行一遍。因为单个请求创建的环境在请求执行结束后会立即销毁。

换句话说, 在传统的 PHP 生命周期中, 为了脚本执行而浪费了大量的时间去创建和销毁资源。想象一下像 Laravel 这样的框架, 在每次请求中需要加载多少文件?同时也浪费了大量的 I/O 操作

因此如果我们利用 Swoole 内置一个应用级别的 Server, 并且所有脚本文件在加载一次之后便可以保存在内存中呢? 这就是为什么我们需要尝试在 Swoole 上运行 Laravel。 Swoole 可以提供强大性能而 Laravel 则可以提供优雅代码结构使用。这俩儿真是完美组合!

安装

以下是 swooletw/laravel-swoole 的主要特点:

  • 在 Swoole 运行 Laravel/Lumen 应用
  • 出色的性能提升至 30x
  • 沙盒模式隔离应用程序容器
  • 支持在 Laravel 应用中运行 WebSocket 服务器
  • 支持 Socket.io 协议
  • 支持 Swoole 表跨进程共享

使用 Composer 安装:

$ composer require swooletw/laravel-swoole

 这个包依赖于 Swoole 。在使用这个包之前,请确保你的机器安装了正确的 Swoole 。使用下面的命令快速安装(linux):

pecl install swoole

 在安装这个扩展之后,你需要编辑 php.ini 添加  extension=swoole.so

php -i | grep php.ini                      # check the php.ini file locationsudo echo "extension=swoole.so" >> php.ini  # add the extension=swoole.so to the end of php.iniphp -m | grep swoole                       # check if the swoole extension has been enabled

 

访问  获取更多的信息。

注意:Swoole 现在只支持 Linux 和 OSX 。Windows 服务器现在还不支持。

然后,添加服务提供者:

如果你使用 Laravel ,在 config/app.php 服务提供者数组添加该服务提供者:

[    'providers' => [        SwooleTW\Http\LaravelServiceProvider::class,    ],]

 

建立并运行起来

现在,你可以执行以下的命令来启动 Swoole HTTP 服务。

$ php artisan swoole:http start

 然后你可以看到以下信息:

Starting swoole http server...Swoole http server started: 

 现在可以通过访问 http://127.0.0.1:1215 来进入 Laravel 应用。

转载于:https://www.cnblogs.com/vania/p/11263709.html

你可能感兴趣的文章
git 获取当前版本的commitid
查看>>
Vue2.0使用axios(四)
查看>>
Jenkins自动化构建.net项目
查看>>
scRNA-seq for thymus tissue Single-cell mapping technology
查看>>
Java 面试题基础部分(一)
查看>>
go深度拷贝reflect版
查看>>
MySQL锁机制和PHP锁机制
查看>>
SQL Server 调优:set statistics profile on
查看>>
Sicily 1001 Alphacode
查看>>
配置MySQL数据库详细步骤
查看>>
SSM框架——详细整合教程(Spring+SpringMVC+MyBatis)
查看>>
Netty - 入门
查看>>
C# ToolTip控件的使用方法
查看>>
SU Demos-04Deconvolution-01FX
查看>>
php + ajax实现 帖子点赞功能
查看>>
rabbitmq windows 安装,更改配置文件路径的问题(管理页面不显示的问题)
查看>>
c# 图解泛型List<T>, HashTable和Dictionary<TKey,TValue>
查看>>
【转】git 删除commit
查看>>
Hdu 1083 Courses(匈牙利算法模版题)
查看>>
[数据算法]大纲
查看>>