什么是webman
webman是一款基于workerman开发的高性能HTTP服务框架。webman用于替代传统的php-fpm架构,提供超高性能可扩展的HTTP服务。你可以用webman开发网站,也可以开发HTTP接口或者微服务。
除此之外,webman还支持自定义进程,可以做workerman能做的任何事情,例如websocket服务、物联网、游戏、TCP服务、UDP服务、unix socket服务等等。
webman理念
以最小内核提供最大的扩展性与最强的性能。
webman仅提供最核心的功能(路由、中间件、session、自定义进程接口)。其余功能全部复用composer生态,这意味着你可以在webman里使用最熟悉的功能组件,例如在数据库方面开发者可以选择使用Laravel的illuminate/database,也可以是ThinkPHP的ThinkORM,还可以是其它组件如Medoo。在webman里集成他们是非常容易的事情。
webman与go语言的web框架压测对比(带数据库业务)
webman具有以下特点
- 高稳定性。webman基于workerman开发,workerman一直是业界bug极少的高稳定性socket框架。
- 超高性能。webman性能高于传统php-fpm框架10-100倍左右,比go的gin/echo等框架性能高一倍左右。
- 高复用。无需修改,可以复用绝大部分composer组件及类库。
- 高扩展性。支持自定义进程,可以做workerman能做的任何事情。
- 超级简单易用,学习成本极低,代码书写与传统框架没有区别。
- 使用最为宽松友好的MIT开源协议。
webman-admin
webman-admin 是webman官方推出的一个基于webman pear-admin-layui 开发的管理后台。支持权限设置、菜单生成(一键curd)、支持插件市场等。
安装 webman
环境需求
- PHP >= 7.2
- Composer >= 2.0
1、创建项目
代码语言:javascript复制composer create-project workerman/webman tinywan-cms
2、运行项目
进入tinywan-cms
目录
cd tinywan-cms
windows用户
双击 windows.bat
或者运行 php windows.php
启动
提示如果有报错,很可能是有函数被禁用,参考函数禁用检查解除禁用
linux用户
debug
方式运行(用于开发调试)
php start.php start
daemon
方式运行(用于正式环境)
php start.php start -d
提示如果有报错,很可能是有函数被禁用,参考函数禁用检查解除禁用
启动成功后终端
3、访问项目
浏览器访问 http://http://127.0.0.1:8787/
。打开以下界面标识安装成功
安装webman-admin
安装应用插件webman/admin
进入到webman目录下执行以下命令
代码语言:javascript复制composer require -W webman/admin
代码语言:javascript复制$ composer require -W webman/admin --ignore-platform-req=ext-fileinfo
./composer.json has been updated
Running composer update webman/admin --with-all-dependencies
Loading composer repositories with package information
Updating dependencies
Lock file operations: 38 installs, 1 update, 0 removals
- Installing guzzlehttp/promises (2.0.1): Extracting archive
- Installing ralouphie/getallheaders (3.0.3): Extracting archive
- Installing psr/http-message (2.0): Extracting archive
- Installing psr/http-factory (1.0.2): Extracting archive
- Installing guzzlehttp/psr7 (2.6.1): Extracting archive
- Installing voku/portable-ascii (1.6.1): Extracting archive
- Installing symfony/translation-contracts (v2.5.2): Extracting archive
- Installing symfony/polyfill-php80 (v1.28.0): Extracting archive
- Installing symfony/polyfill-mbstring (v1.28.0): Extracting archive
- Installing symfony/deprecation-contracts (v2.5.2): Extracting archive
- Installing symfony/translation (v5.4.24): Extracting archive
- Installing psr/clock (1.0.0): Extracting archive
- Installing nesbot/carbon (2.71.0): Extracting archive
- Installing illuminate/macroable (v8.83.27): Extracting archive
- Installing psr/simple-cache (1.0.1): Extracting archive
- Downgrading psr/container (2.0.2 => 1.1.2): Extracting archive
- Installing illuminate/contracts (v8.83.27): Extracting archive
- Installing illuminate/collections (v8.83.27): Extracting archive
- Installing doctrine/inflector (2.0.8): Extracting archive
- Installing illuminate/support (v8.83.27): Extracting archive
- Installing illuminate/pipeline (v8.83.27): Extracting archive
- Installing illuminate/bus (v8.83.27): Extracting archive
- Installing illuminate/container (v8.83.27): Extracting archive
- Installing psr/http-client (1.0.3): Extracting archive
- Installing symfony/polyfill-intl-normalizer (v1.28.0): Extracting archive
- Installing symfony/polyfill-intl-grapheme (v1.28.0): Extracting archive
- Installing symfony/polyfill-ctype (v1.28.0): Extracting archive
- Installing symfony/string (v5.4.29): Extracting archive
- Installing symfony/service-contracts (v2.5.2): Extracting archive
- Installing symfony/polyfill-php73 (v1.28.0): Extracting archive
- Installing symfony/console (v5.4.28): Extracting archive
- Installing webman/event (v1.0.4): Extracting archive
- Installing webman/captcha (v1.0.2): Extracting archive
- Installing intervention/image (2.7.2): Extracting archive
- Installing illuminate/pagination (v8.83.27): Extracting archive
- Installing illuminate/events (v8.83.27): Extracting archive
- Installing illuminate/database (v8.83.27): Extracting archive
- Installing guzzlehttp/guzzle (7.8.0): Extracting archive
- Installing webman/admin (v0.6.18): Extracting archive
Create plugin/admin
26 package suggestions were added by new dependencies, use `composer suggest` to see details.
Generating autoload files
21 packages you are using are looking for funding.
Use the `composer fund` command to find out more!
No security vulnerability advisories found
Using version ^0.6.18 for webman/admin
安装后需要restart重启webman。
注意:虽然本页面可以下载源码,但是推荐用composer安装,因为可以自动安装webman-admin的相关依赖。
访问
访问 http://127.0.0.1:8787/app/admin
会自动进入安装页面,设置数据库及管理员账户.