【Webman+MySQL答题系统二】环境搭建与项目初始化
果子发表于:2026-10-05 20:55:42浏览:1次
本篇目标
新建 quiz_system 项目,装好 webman/database,接上 MySQL,跑通第一条接口,为后面八篇准备好骨架。

一、环境要求
- PHP >= 7.4(建议 8.0+),需启用 pdo_mysql、mbstring;
- Composer 2.x;
- MySQL 5.7+(options 字段用了 JSON 类型,5.7 起支持);
- Linux 下多进程需要 pcntl/posix 扩展;Windows 开发期可用 windows.php 单进程跑。
php -v
composer -V
mysql --version
二、创建项目
composer create-project workerman/webman quiz_system
cd quiz_system
composer require webman/database
项目骨架各目录的职责:
| 路径 | 职责 |
|---|---|
| app/controller | 控制器,业务入口 |
| app/model | ORM 模型 |
| app/middleware | 中间件(第九篇鉴权用) |
| config/route.php | 路由注册 |
| config/database.php | 数据库连接配置 |
| database/init.sql | 建表脚本(第三篇添加) |
三、建库
CREATE DATABASE quiz_system DEFAULT CHARSET utf8mb4 COLLATE utf8mb4_general_ci;
四、配置数据库
编辑 config/database.php,database 换成 quiz_system:
<?php
return [
'default' => 'mysql',
'connections' => [
'mysql' => [
'driver' => 'mysql',
'host' => '127.0.0.1',
'port' => '3306',
'database' => 'quiz_system',
'username' => 'root',
'password' => env('DB_PASSWORD', ''),
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_general_ci',
'prefix' => '',
'timezone' => '+08:00',
],
],
];
密码放根目录 .env(DB_PASSWORD=xxx),不进代码库。
五、统一返回结构
把上一个系列用过的 helper 放进 app/functions.php,全项目复用:
function success($data = [], string $msg = 'ok')
{
return json(['code' => 0, 'msg' => $msg, 'data' => $data]);
}
function error(string $msg = 'fail', int $code = 1)
{
return json(['code' => $code, 'msg' => $msg]);
}
六、跑通第一条接口
app/controller/PingController.php:
<?php
namespace app\controller;
use support\Request;
class PingController
{
public function index(Request $request)
{
return success(['time' => date('Y-m-d H:i:s'), 'ip' => $request->remoteIp()]);
}
}
config/route.php 注册:
use support\Router;
use app\controller\PingController;
Route::get('/api/ping', [PingController::class, 'index']);
启动后验证:
curl http://127.0.0.1:8787/api/ping
// {"code":0,"msg":"ok","data":{"time":"...","ip":"127.0.0.1"}}
七、启动方式与常驻内存提醒
- Linux:调试用
php start.php start,生产用php start.php start -d守护模式; - Windows 开发:直接
php windows.php; - 改完代码必须重启进程,Webman 常驻内存不会自动加载新代码——这是传统 PHP-FPM 迁移过来最容易踩的坑。
整个初始化流程如下:

小结
骨架已就绪:项目、数据库连接、统一返回、第一条接口。下一篇把六张表的建表 SQL 全部落地。
栏目分类全部>
推荐文章
- 大模型的 Token 计费与成本优化
- 【Webman+MySQL教程四】ORM 模型与增删改查实战
- LangChain 框架入门:快速搭建大模型应用
- ThinkPHP6.0.3+ElementAdmin+UniAPP多端新闻网站、App 源码
- OpenClaw 连接 Telegram 完整教程(最推荐的入门渠道)
- 【Webman+MySQL教程五】开发完整的 JSON 接口:统一返回、参数校验与异常处理
- Transformer 架构入门:注意力机制是怎么工作的
- OpenClaw 定时自动化(Automations):让 AI 主动为你打工
- 什么是大语言模型(LLM)?零基础入门
- 新闻APP源码,新闻门户网站开源系统ThinkPHP6框架UniAPP多端发布

