发布于2021-03-14 05:50 阅读(1526) 评论(0) 点赞(14) 收藏(4)
Swoole 实现了 HTTP Server,也就是说 PHP 的布署不再需要依赖 Nginx 或 Apache 这样的网页伺服器,也不需要靠着 PHP-FPM 或 PHP_mod 才能与 Web Server 沟通。
安装了 Swoole extension 后的 PHP,就像 golang 那般內建高效率的 HTTP Server。
甚至,只要用一个简单的 Dockerfile 就可以实现布署的流程,再也不需要 link nginx 又 link php-fpm,把 Dockerfile 弄得跟蜘蛛网一样复杂。
只要一个 Dockerfile,就能够完成 Web Server 跟应用程式布署,多开心吶。
FROM php:cli
COPY project /var/www/project
CMD ["php", "/var/www/project/index.php"]
说到底,如果用了 Swoole 还得重复造轮子,那这玩意还是沒啥用。
可是如果它能够结合当今最火红的 PHP Web Framework:Laravel,我想一切都不太一样了。
Step 1. 取得 Laravel
先从 github 上 clone 最新版本的 laravel 下来。
Step 2. 修改 index.php
Laravel 的程式进入点位于 public/index.php
我们也只会变更到这个档案
原本的档案(移除注解):
<?php
require __DIR__.'/../bootstrap/autoload.php';
$app = require_once __DIR__.'/../bootstrap/app.php';
$kernel = $app->make(Illuminate\Contracts\Http\Kernel::class);
$response = $kernel->handle(
$request = Illuminate\Http\Request::capture()
);
$response->send();
$kernel->terminate($request, $response);
修改过后:
<?php
require dirname(__DIR__).'/bootstrap/autoload.php';
// IP 跟 Port 可以自行调整
// 如果要监听全部介面可以用 0.0.0.0
// port 小於 1024 需要 root 权限
$http = new Swoole\Http\Server('127.0.0.1', 9000);
$http->on('request', function (Swoole\Http\Request $request, Swoole\Http\Response $response) {
/**
* @var \Illuminate\Foundation\Application $app
* @var \Illuminate\Contracts\Http\Kernel $kernel
* @var \Illuminate\Http\Request $laravelRequest
* @var \Illuminate\Http\Response $laravelResponse
*/
$app = require dirname(__DIR__).'/bootstrap/app.php';
$kernel = $app->make(Illuminate\Contracts\Http\Kernel::class);
$laravelResponse = $kernel->handle(
$laravelRequest = new \Illuminate\Http\Request(
$request->get ?? [],
$request->post ?? [],
[],
$request->cookie ?? [],
$request->files ?? [],
$request->server ?? []
)
);
$kernel->terminate($laravelRequest, $laravelResponse);
$response->status($laravelResponse->getStatusCode());
$response->write($laravelResponse->getContent());
unset(
$app,
$kernel,
$laravelResponse,
$laravelRequest
);
});
$http->start();
用 php public/index.php
即可启动
启动前別忘了要设定好 .env
更多学习内容可以访问【对标大厂】精品PHP架构师教程目录大全,只要你能看完保证薪资上升一个台阶(持续更新)
以上内容希望帮助到大家,很多PHPer在进阶的时候总会遇到一些问题和瓶颈,业务代码写多了没有方向感,不知道该从那里入手去提升,对此我整理了一些资料,包括但不限于:分布式架构、高可扩展、高性能、高并发、服务器性能调优、TP6,laravel,YII2,Redis,Swoole、Swoft、Kafka、Mysql优化、shell脚本、Docker、微服务、Nginx等多个知识点高级进阶干货需要的可以免费分享给大家,需要的可以加入我的PHP技术交流群953224940
进阶PHP月薪30k>>>架构师成长路线【视频、面试文档免费获取】
原文链接:https://www.cnblogs.com/it-abu/p/13577940.html
作者:春天的故事
链接:http://www.phpheidong.com/blog/article/3207/41bc29676720c84fdd2d/
来源:php黑洞网
任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任
昵称:
评论内容:(最多支持255个字符)
---无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事,而不是让内心的烦躁、焦虑,坏掉你本来就不多的热情和定力
Copyright © 2018-2021 php黑洞网 All Rights Reserved 版权所有,并保留所有权利。 京ICP备18063182号-4
投诉与举报,广告合作请联系vgs_info@163.com或QQ3083709327
免责声明:网站文章均由用户上传,仅供读者学习交流使用,禁止用做商业用途。若文章涉及色情,反动,侵权等违法信息,请向我们举报,一经核实我们会立即删除!