EasySwoole简介
EasySwoole 是一款基于 Swoole Server 开发的常驻内存型的分布式 PHP 框架,专为 API 而生,摆脱传统 PHP 运行模式在进程唤起和文件加载上带来的性能损失。 EasySwoole 高度封装了 Swoole Server 而依旧维持 Swoole Server 原有特性,支持同时混合监听 HTTP、自定义 TCP、UDP 协议,让开发者以最低的学习成本和精力编写出多进程、可异步、高可用的应用服务。
下载EasySwoole
composer require easyswoole/easyswoole=3.5.x
./composer.json has been created
Running composer update easyswoole/easyswoole
Loading composer repositories with package information
Updating dependencies
Lock file operations: 59 installs, 0 updates, 0 removals
- Locking doctrine/instantiator (1.4.1)
- Locking doctrine/lexer (1.2.3)
- Locking dragonmantank/cron-expression (v2.3.1)
- Locking easyswoole/annotation (2.0.3)
- Locking easyswoole/bridge (1.0.3)
- Locking easyswoole/command (1.1.7)
- Locking easyswoole/component (2.3.2)
- Locking easyswoole/config (1.0.7)
- Locking easyswoole/crontab (1.0.1)
- Locking easyswoole/doctrine-annotations (1.0.1)
- Locking easyswoole/easyswoole (3.5.1)
- Locking easyswoole/http (2.0.4)
- Locking easyswoole/http-annotation (2.2.1)
- Locking easyswoole/log (1.1.1)
- Locking easyswoole/parsedown (1.0.2)
- Locking easyswoole/phpunit (1.1.0)
- Locking easyswoole/session (3.0.1)
- Locking easyswoole/socket (1.1.14)
- Locking easyswoole/spl (1.4.1)
- Locking easyswoole/task (1.1.2)
- Locking easyswoole/trigger (1.0.0)
- Locking easyswoole/utility (1.3.2)
- Locking easyswoole/validate (2.1.3)
- Locking myclabs/deep-copy (1.11.0)
- Locking nikic/fast-route (v1.3.0)
- Locking nikic/php-parser (v4.13.2)
- Locking opis/closure (3.6.3)
- Locking phar-io/manifest (2.0.3)
- Locking phar-io/version (3.2.1)
- Locking phpdocumentor/reflection-common (2.2.0)
- Locking phpdocumentor/reflection-docblock (5.3.0)
- Locking phpdocumentor/type-resolver (1.6.1)
- Locking phpspec/prophecy (v1.15.0)
- Locking phpunit/php-code-coverage (9.2.15)
- Locking phpunit/php-file-iterator (3.0.6)
- Locking phpunit/php-invoker (3.1.1)
- Locking phpunit/php-text-template (2.0.4)
- Locking phpunit/php-timer (5.0.3)
- Locking phpunit/phpunit (9.5.18)
- Locking psr/http-message (1.0.1)
- Locking sebastian/cli-parser (1.0.1)
- Locking sebastian/code-unit (1.0.8)
- Locking sebastian/code-unit-reverse-lookup (2.0.3)
- Locking sebastian/comparator (4.0.6)
- Locking sebastian/complexity (2.0.2)
- Locking sebastian/diff (4.0.4)
- Locking sebastian/environment (5.1.4)
- Locking sebastian/exporter (4.0.4)
- Locking sebastian/global-state (5.0.5)
- Locking sebastian/lines-of-code (1.0.3)
- Locking sebastian/object-enumerator (4.0.4)
- Locking sebastian/object-reflector (2.0.4)
- Locking sebastian/recursion-context (4.0.4)
- Locking sebastian/resource-operations (3.0.3)
- Locking sebastian/type (2.3.4)
- Locking sebastian/version (3.0.2)
- Locking symfony/polyfill-ctype (v1.25.0)
- Locking theseer/tokenizer (1.2.1)
- Locking webmozart/assert (1.10.0)
Writing lock file
Installing dependencies from lock file (including require-dev)
Package operations: 59 installs, 0 updates, 0 removals
- Downloading dragonmantank/cron-expression (v2.3.1)
- Downloading doctrine/lexer (1.2.3)
- Downloading easyswoole/doctrine-annotations (1.0.1)
- Downloading easyswoole/utility (1.3.2)
- Downloading easyswoole/log (1.1.1)
- Downloading easyswoole/trigger (1.0.0)
- Downloading opis/closure (3.6.3)
- Downloading easyswoole/spl (1.4.1)
- Downloading easyswoole/component (2.3.2)
- Downloading easyswoole/task (1.1.2)
- Downloading easyswoole/socket (1.1.14)
- Downloading sebastian/version (3.0.2)
- Downloading sebastian/type (2.3.4)
- Downloading sebastian/resource-operations (3.0.3)
- Downloading sebastian/recursion-context (4.0.4)
- Downloading sebastian/object-reflector (2.0.4)
- Downloading sebastian/object-enumerator (4.0.4)
- Downloading sebastian/global-state (5.0.5)
- Downloading sebastian/exporter (4.0.4)
- Downloading sebastian/environment (5.1.4)
- Downloading sebastian/diff (4.0.4)
- Downloading sebastian/comparator (4.0.6)
- Downloading sebastian/code-unit (1.0.8)
- Downloading sebastian/cli-parser (1.0.1)
- Downloading phpunit/php-timer (5.0.3)
- Downloading phpunit/php-text-template (2.0.4)
- Downloading phpunit/php-invoker (3.1.1)
- Downloading phpunit/php-file-iterator (3.0.6)
- Downloading theseer/tokenizer (1.2.1)
- Downloading nikic/php-parser (v4.13.2)
- Downloading sebastian/lines-of-code (1.0.3)
- Downloading sebastian/complexity (2.0.2)
- Downloading sebastian/code-unit-reverse-lookup (2.0.3)
- Downloading phpunit/php-code-coverage (9.2.15)
- Downloading symfony/polyfill-ctype (v1.25.0)
- Downloading webmozart/assert (1.10.0)
- Downloading phpdocumentor/reflection-common (2.2.0)
- Downloading phpdocumentor/type-resolver (1.6.1)
- Downloading phpdocumentor/reflection-docblock (5.3.0)
- Downloading doctrine/instantiator (1.4.1)
- Downloading phpspec/prophecy (v1.15.0)
- Downloading phar-io/version (3.2.1)
- Downloading phar-io/manifest (2.0.3)
- Downloading myclabs/deep-copy (1.11.0)
- Downloading phpunit/phpunit (9.5.18)
- Downloading easyswoole/command (1.1.7)
- Downloading easyswoole/phpunit (1.1.0)
- Downloading psr/http-message (1.0.1)
- Downloading easyswoole/validate (2.1.3)
- Downloading easyswoole/parsedown (1.0.2)
- Downloading nikic/fast-route (v1.3.0)
- Downloading easyswoole/session (3.0.1)
- Downloading easyswoole/http (2.0.4)
- Downloading easyswoole/annotation (2.0.3)
- Downloading easyswoole/http-annotation (2.2.1)
- Downloading easyswoole/crontab (1.0.1)
- Downloading easyswoole/config (1.0.7)
- Downloading easyswoole/bridge (1.0.3)
- Downloading easyswoole/easyswoole (3.5.1)
- Installing dragonmantank/cron-expression (v2.3.1): Extracting archive
- Installing doctrine/lexer (1.2.3): Extracting archive
- Installing easyswoole/doctrine-annotations (1.0.1): Extracting archive
- Installing easyswoole/utility (1.3.2): Extracting archive
- Installing easyswoole/log (1.1.1): Extracting archive
- Installing easyswoole/trigger (1.0.0): Extracting archive
- Installing opis/closure (3.6.3): Extracting archive
- Installing easyswoole/spl (1.4.1): Extracting archive
- Installing easyswoole/component (2.3.2): Extracting archive
- Installing easyswoole/task (1.1.2): Extracting archive
- Installing easyswoole/socket (1.1.14): Extracting archive
- Installing sebastian/version (3.0.2): Extracting archive
- Installing sebastian/type (2.3.4): Extracting archive
- Installing sebastian/resource-operations (3.0.3): Extracting archive
- Installing sebastian/recursion-context (4.0.4): Extracting archive
- Installing sebastian/object-reflector (2.0.4): Extracting archive
- Installing sebastian/object-enumerator (4.0.4): Extracting archive
- Installing sebastian/global-state (5.0.5): Extracting archive
- Installing sebastian/exporter (4.0.4): Extracting archive
- Installing sebastian/environment (5.1.4): Extracting archive
- Installing sebastian/diff (4.0.4): Extracting archive
- Installing sebastian/comparator (4.0.6): Extracting archive
- Installing sebastian/code-unit (1.0.8): Extracting archive
- Installing sebastian/cli-parser (1.0.1): Extracting archive
- Installing phpunit/php-timer (5.0.3): Extracting archive
- Installing phpunit/php-text-template (2.0.4): Extracting archive
- Installing phpunit/php-invoker (3.1.1): Extracting archive
- Installing phpunit/php-file-iterator (3.0.6): Extracting archive
- Installing theseer/tokenizer (1.2.1): Extracting archive
- Installing nikic/php-parser (v4.13.2): Extracting archive
- Installing sebastian/lines-of-code (1.0.3): Extracting archive
- Installing sebastian/complexity (2.0.2): Extracting archive
- Installing sebastian/code-unit-reverse-lookup (2.0.3): Extracting archive
- Installing phpunit/php-code-coverage (9.2.15): Extracting archive
- Installing symfony/polyfill-ctype (v1.25.0): Extracting archive
- Installing webmozart/assert (1.10.0): Extracting archive
- Installing phpdocumentor/reflection-common (2.2.0): Extracting archive
- Installing phpdocumentor/type-resolver (1.6.1): Extracting archive
- Installing phpdocumentor/reflection-docblock (5.3.0): Extracting archive
- Installing doctrine/instantiator (1.4.1): Extracting archive
- Installing phpspec/prophecy (v1.15.0): Extracting archive
- Installing phar-io/version (3.2.1): Extracting archive
- Installing phar-io/manifest (2.0.3): Extracting archive
- Installing myclabs/deep-copy (1.11.0): Extracting archive
- Installing phpunit/phpunit (9.5.18): Extracting archive
- Installing easyswoole/command (1.1.7): Extracting archive
- Installing easyswoole/phpunit (1.1.0): Extracting archive
- Installing psr/http-message (1.0.1): Extracting archive
- Installing easyswoole/validate (2.1.3): Extracting archive
- Installing easyswoole/parsedown (1.0.2): Extracting archive
- Installing nikic/fast-route (v1.3.0): Extracting archive
- Installing easyswoole/session (3.0.1): Extracting archive
- Installing easyswoole/http (2.0.4): Extracting archive
- Installing easyswoole/annotation (2.0.3): Extracting archive
- Installing easyswoole/http-annotation (2.2.1): Extracting archive
- Installing easyswoole/crontab (1.0.1): Extracting archive
- Installing easyswoole/config (1.0.7): Extracting archive
- Installing easyswoole/bridge (1.0.3): Extracting archive
- Installing easyswoole/easyswoole (3.5.1): Extracting archive
5 package suggestions were added by new dependencies, use `composer suggest` to see details.
Generating autoload files
28 packages you are using are looking for funding.
Use the `composer fund` command to find out more!
EasySwoole安装
php vendor/bin/easyswoole install
EasySwoole配置文件修改端口
'PORT' => 9601,
运行EasySwoole
php easyswoole server start
EasySwoole Nginx代理访问
upstream chprovider_user {
server chprovider-user:9601;
}
hosts绑定域名
shop_provider_user.top
server {
# 监听端口
listen 80;
# 绑定的域名,填写您的域名
server_name shop_provider_user.top;
location / {
# 将客户端的 Host 和 IP 信息一并转发到对应节点
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# 转发Cookie,设置 SameSite
proxy_cookie_path / "/; secure; HttpOnly; SameSite=strict";
# 执行代理访问真实服务器
proxy_pass http://chprovider_user;
}
}
浏览器输入域名访问
shop_provider_user.top
发表评论 取消回复