webman实战教程:webman-admin管理后台篇

2023-10-22 18:58:04 浏览数 (2)

什么是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具有以下特点

  1. 高稳定性。webman基于workerman开发,workerman一直是业界bug极少的高稳定性socket框架。
  2. 超高性能。webman性能高于传统php-fpm框架10-100倍左右,比go的gin/echo等框架性能高一倍左右。
  3. 高复用。无需修改,可以复用绝大部分composer组件及类库。
  4. 高扩展性。支持自定义进程,可以做workerman能做的任何事情。
  5. 超级简单易用,学习成本极低,代码书写与传统框架没有区别。
  6. 使用最为宽松友好的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目录

代码语言:javascript复制
cd tinywan-cms
windows用户

双击 windows.bat 或者运行 php windows.php 启动

提示如果有报错,很可能是有函数被禁用,参考函数禁用检查解除禁用

linux用户

debug方式运行(用于开发调试)

代码语言:javascript复制
php start.php start

daemon方式运行(用于正式环境)

代码语言:javascript复制
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 会自动进入安装页面,设置数据库及管理员账户.

系统安装

配置数据库

超级管理员设置

安装完成

系统登录

系统预览

0 人点赞