[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"cms-article-list":3},{"code":4,"message":5,"data":6},200,"success",{"total":7,"per_page":8,"current_page":9,"last_page":9,"data":10,"has_more":39},3,9,1,[11,24,31],{"id":7,"category_id":12,"title":13,"author":14,"image":15,"describe":16,"content":17,"views":18,"sort":19,"status":9,"is_link":12,"link_url":20,"is_hot":12,"created_by":9,"updated_by":21,"create_time":22,"update_time":23},2,"SaiAdmin 宝塔部署教程","saithink","https://image.saithink.top/storage/20260412/b28da1d93013ad32ddd2a625fa7883dffca9d291.png","介绍saiadmin的宝塔部署方式，部署异步项目","\u003Ch1 style=\"text-align: justify;\">宝塔部署\u003C/h1>\u003Cp>部署案例信息，后端webman运行的是8787端口，前端域名采用的是 www.neoadmin.top\u003C/p>\u003Ch3>本地打包\u003C/h3>\u003Cp>1、前端打包\u003C/p>\u003Cp>找到 &nbsp;\u003Cstrong>.env.production\u003C/strong> ，修改以下配置\u003C/p>\u003Cp>\u003Cimg src=\"https://image.saithink.top/storage/20260412/0d618e602ae158aac567d4cfe5d9998eaf73d377.png\" alt=\"image.png\" data-href=\"https://image.saithink.top/storage/20260412/0d618e602ae158aac567d4cfe5d9998eaf73d377.png\" style=\"\"/>\u003C/p>\u003Cp>执行打包命令 \u003Cstrong>pnpm run build，打包好后，在dist文件能够看到以下内容\u003C/strong>\u003C/p>\u003Cp>\u003Cimg src=\"https://image.saithink.top/storage/20260412/7bf2652ab440c3d1896831ec16669688f521869e.png\" alt=\"image.png\" data-href=\"https://image.saithink.top/storage/20260412/7bf2652ab440c3d1896831ec16669688f521869e.png\" style=\"\"/>\u003C/p>\u003Cp>\u003Cstrong>注意：本地要先通过 pnpm install 将前端包安装好\u003C/strong>\u003C/p>\u003Cp>\u003Cbr>\u003C/p>\u003Cp>\u003Cstrong>2、部署内容整合\u003C/strong>\u003C/p>\u003Cp>\u003Cstrong>将前端文件拷贝到 server 的public 目录，内容如下\u003C/strong>\u003C/p>\u003Cp>\u003Cimg src=\"https://image.saithink.top/storage/20260412/e1bceb38d8cad982468d9649f32a252120fd3b6b.png\" alt=\"image.png\" data-href=\"https://image.saithink.top/storage/20260412/e1bceb38d8cad982468d9649f32a252120fd3b6b.png\" style=\"\"/>\u003C/p>\u003Cp>3、上传到服务器\u003C/p>\u003Cp>我们新建一个目录，将整合后的后端内容上传到服务器，本地server 对应 服务器 neoadmin.top\u003C/p>\u003Cp>\u003Cimg src=\"https://image.saithink.top/storage/20260412/26bc3e95fd2787ec4aa89e27912c29739c450ccb.png\" alt=\"image.png\" data-href=\"https://image.saithink.top/storage/20260412/26bc3e95fd2787ec4aa89e27912c29739c450ccb.png\" style=\"\"/>\u003C/p>\u003Cp>4、创建php异步项目\u003C/p>\u003Cp>\u003Cimg src=\"https://image.saithink.top/storage/20260412/3509495a19b7da4e55d24735d6865a29bb3a2490.png\" alt=\"image.png\" data-href=\"https://image.saithink.top/storage/20260412/3509495a19b7da4e55d24735d6865a29bb3a2490.png\" style=\"\"/>\u003C/p>\u003Cp>\u003Cimg src=\"https://image.saithink.top/storage/20260412/89bdabe9290eac79037ab68cd8de298701bd7e13.png\" alt=\"image.png\" data-href=\"https://image.saithink.top/storage/20260412/89bdabe9290eac79037ab68cd8de298701bd7e13.png\" style=\"\"/>\u003C/p>\u003Cp>\u003Cimg src=\"https://image.saithink.top/storage/20260412/a85624bea3855fc96d4ddc81a5b8abb7465a22f7.png\" alt=\"image.png\" data-href=\"https://image.saithink.top/storage/20260412/a85624bea3855fc96d4ddc81a5b8abb7465a22f7.png\" style=\"\"/>\u003C/p>\u003Cp>\u003Cimg src=\"https://image.saithink.top/storage/20260412/03713be83df6adf8b45bf51b3a2c9c1ae1c0a895.png\" alt=\"image.png\" data-href=\"https://image.saithink.top/storage/20260412/03713be83df6adf8b45bf51b3a2c9c1ae1c0a895.png\" style=\"\"/>\u003C/p>\u003Cpre>\u003Ccode class=\"language-bash\">location /prod/ {\r\n\tproxy_set_header Host $http_host;\r\n\tproxy_set_header X-Real-IP $remote_addr;\r\n\tproxy_set_header REMOTE-HOST $remote_addr;\r\n\tproxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\r\n\tproxy_pass http://127.0.0.1:8787/;\r\n}\u003C/code>\u003C/pre>\u003Cp>5、项目正常访问成功\u003C/p>\u003Cp>访问自己的域名：\u003C/p>\u003Cp>\u003Cimg src=\"https://image.saithink.top/storage/20260412/d198e987ba2b2669b6eb3bb9c9239657c0590306.png\" alt=\"image.png\" data-href=\"https://image.saithink.top/storage/20260412/d198e987ba2b2669b6eb3bb9c9239657c0590306.png\" style=\"\"/>\u003C/p>",396,100,"",34,"2024-06-02 22:58:41","2026-05-01 03:27:58",{"id":12,"category_id":9,"title":25,"author":14,"image":26,"describe":27,"content":28,"views":29,"sort":19,"status":9,"is_link":12,"link_url":20,"is_hot":12,"created_by":9,"updated_by":21,"create_time":30,"update_time":23},"FlyEnv-PHP本地开发工具箱","https://image.saithink.top/storage/20260411/7cb827707bda8843404ba8e67e113f5bf5f3c5e0.png","原生支持 PHP, Node.js, Python 及主流数据库。内置专业开发工具。一键配置，即刻开发","\u003Ch2 style=\"text-align: start;\">首次启动设置\u003C/h2>\u003Ch3 style=\"text-align: start;\">1. 安装 FlyEnv 助手\u003C/h3>\u003Cp style=\"text-align: start;\">首次启动时，FlyEnv 会安装一个用于系统集成的助手程序：\u003C/p>\u003Cul>\u003Cli style=\"text-align: start;\">\u003Cstrong>macOS/Linux\u003C/strong>：可能会提示输入密码\u003C/li>\u003Cli style=\"text-align: start;\">\u003Cstrong>Windows\u003C/strong>：如果安装失败，请以管理员身份运行\u003C/li>\u003C/ul>\u003Cp style=\"text-align: start;\">此助手用于管理服务和管理系统路径，只需安装一次。\u003C/p>\u003Ch3 style=\"text-align: start;\">2. 自定义界面\u003C/h3>\u003Cp style=\"text-align: start;\">FlyEnv 默认显示所有模块，你可以简化视图：\u003C/p>\u003Col>\u003Cli style=\"text-align: start;\">点击 \u003Cstrong>设置\u003C/strong>（齿轮图标）\u003C/li>\u003Cli style=\"text-align: start;\">关闭你不需要的模块\u003C/li>\u003Cli style=\"text-align: start;\">通过拖放重新排列剩余模块\u003C/li>\u003C/ol>\u003Cp style=\"text-align: start;\">\u003Cstrong>推荐给 PHP 开发者：\u003C/strong> 保持 Apache/Nginx、PHP、MySQL、Redis 可见。\u003C/p>\u003Cp style=\"text-align: start;\">\u003Cstrong>推荐给 Node.js 开发者：\u003C/strong> 保持 Node.js、Nginx、MongoDB 可见。\u003C/p>\u003Cp style=\"text-align: start;\">\u003Cimg src=\"https://oss.macphpstudy.com/image/quick-start-1.webp\" alt=\"界面设置\" data-href=\"\" style=\"height: auto;\">\u003C/p>\u003Ch3 style=\"text-align: start;\">3.安装第一个版本\u003C/h3>\u003Cp style=\"text-align: start;\">每个模块至少需要一个已安装的版本：\u003C/p>\u003Col>\u003Cli style=\"text-align: start;\">点击一个模块（例如 \u003Cstrong>PHP\u003C/strong>）\u003C/li>\u003Cli style=\"text-align: start;\">切换到 \u003Cstrong>版本\u003C/strong> 标签页\u003C/li>\u003Cli style=\"text-align: start;\">选择一个版本（例如 PHP 8.3）\u003C/li>\u003Cli style=\"text-align: start;\">点击 \u003Cstrong>安装\u003C/strong>\u003C/li>\u003C/ol>\u003Cp style=\"text-align: start;\">FlyEnv 会自动下载并配置该版本。\u003C/p>\u003Cp style=\"text-align: start;\">\u003Cimg src=\"https://oss.macphpstudy.com/image/quick-start-2.webp\" alt=\"版本安装\" data-href=\"\" style=\"height: auto;\">\u003C/p>\u003Cp>\u003Cbr>\u003C/p>",380,"2024-06-02 22:56:47",{"id":9,"category_id":9,"title":32,"author":14,"image":33,"describe":34,"content":35,"views":36,"sort":19,"status":9,"is_link":12,"link_url":20,"is_hot":12,"created_by":9,"updated_by":21,"create_time":37,"update_time":38},"PHP 开发者必备：深入理解与使用 Xdebug 断点调试","https://image.saithink.top/storage/20260410/a5c069dca6e2f1be38c21bec1e97f39035d38209.jpg","详细介绍PHP在webman下如何使用Xdebug进行调试","\u003Ch2>一、 为什么要使用 Xdebug？\u003C/h2>\u003Cp> &nbsp; &nbsp;很多 PHP 开发者习惯使用 \u003Ccode>echo\u003C/code>、\u003Ccode>print_r\u003C/code> 或 \u003Ccode>var_dump\u003C/code> 来调试代码。虽然简单，但在处理逻辑复杂的循环、深层嵌套的对象或异步请求时，这种方法效率极低。\u003C/p>\u003Cp>\u003Cstrong>Xdebug\u003C/strong> 的出现将调试从“猜谜游戏”变成了“手术刀式的精准观察”。\u003C/p>\u003Ch2>二、如何安装Xdebug调试工具\u003C/h2>\u003Cp>1、在php里面开启Xdebug扩展，使用的是【FlyEnv】开发环境管理器\u003C/p>\u003Cp>\u003Cimg src=\"https://image.saithink.top/storage/20260410/3ede1ad26168549f3e7e129d263595fc665dc28d.png\" alt=\"image.png\" data-href=\"https://image.saithink.top/storage/20260410/3ede1ad26168549f3e7e129d263595fc665dc28d.png\" style=\"\"/>\u003C/p>\u003Cp>\u003Cimg src=\"https://image.saithink.top/storage/20260410/86fb7641d6d058828a697b1e83dec9ac9e4fbf11.png\" alt=\"image.png\" data-href=\"https://image.saithink.top/storage/20260410/86fb7641d6d058828a697b1e83dec9ac9e4fbf11.png\" style=\"\"/>\u003C/p>\u003Cp>2、在VSCODE 里面安装扩展工具，并且配置相关命令\u003C/p>\u003Cp>在vscode插件市场里面找到 php debug 这个插件并进行安装\u003C/p>\u003Cp>\u003Cimg src=\"https://image.saithink.top/storage/20260410/8c672c740904e03ba14269a54b17b1a6047ad9dd.png\" alt=\"image.png\" data-href=\"https://image.saithink.top/storage/20260410/8c672c740904e03ba14269a54b17b1a6047ad9dd.png\" style=\"\"/>\u003C/p>\u003Cp>配置php路径\u003C/p>\u003Cp>\u003Cimg src=\"https://image.saithink.top/storage/20260410/dc37c2a9677a69348c72374a4c1888821d31bb32.png\" alt=\"image.png\" data-href=\"https://image.saithink.top/storage/20260410/dc37c2a9677a69348c72374a4c1888821d31bb32.png\" style=\"\"/>\u003C/p>\u003Cp>在settings.json里面配置php的运行路径，包含exe文件\u003C/p>\u003Cp>\u003Cimg src=\"https://image.saithink.top/storage/20260410/95e19a5e12c61527058bcfa251cf3125e2771251.png\" alt=\"image.png\" data-href=\"https://image.saithink.top/storage/20260410/95e19a5e12c61527058bcfa251cf3125e2771251.png\" style=\"\"/>\u003C/p>\u003Cp>在项目根目录的.vscode里面，加入lanuch.json，配置如下\u003C/p>\u003Cp>\u003Cimg src=\"https://image.saithink.top/storage/20260410/5c97683b18f50762d8a378527de87e19c8d17a51.png\" alt=\"image.png\" data-href=\"https://image.saithink.top/storage/20260410/5c97683b18f50762d8a378527de87e19c8d17a51.png\" style=\"\"/>\u003C/p>\u003Cpre>\u003Ccode class=\"language-javascript\">{\r\n    \"version\": \"0.2.0\",\r\n    \"configurations\": [\r\n        {\r\n            \"name\": \"Listen for Xdebug\",\r\n            \"type\": \"php\",\r\n            \"request\": \"launch\",\r\n            \"port\": 9003,\r\n            \"stopOnEntry\": false\r\n        }\r\n    ]\r\n}\u003C/code>\u003C/pre>\u003Cp>3、启动调试\u003C/p>\u003Cp>\u003Cimg src=\"https://image.saithink.top/storage/20260410/f896163e9d2c94b48c1ce4e9a759b56911b9e794.png\" alt=\"image.png\" data-href=\"https://image.saithink.top/storage/20260410/f896163e9d2c94b48c1ce4e9a759b56911b9e794.png\" style=\"\"/>\u003C/p>\u003Cp>启动webman\u003C/p>\u003Cp>\u003Cimg src=\"https://image.saithink.top/storage/20260410/73f3d4e98c6d2c3acbc054378a6b822cb2624bdf.png\" alt=\"image.png\" data-href=\"https://image.saithink.top/storage/20260410/73f3d4e98c6d2c3acbc054378a6b822cb2624bdf.png\" style=\"\"/>\u003C/p>\u003Cp>浏览器访问这个接口\u003C/p>\u003Cp>\u003Cimg src=\"https://image.saithink.top/storage/20260410/ffb709d74b09d9cef2239a253b702455c3c58cd1.png\" alt=\"image.png\" data-href=\"https://image.saithink.top/storage/20260410/ffb709d74b09d9cef2239a253b702455c3c58cd1.png\" style=\"\"/>\u003C/p>\u003Cp>程序进入了调试\u003C/p>\u003Cp>\u003Cimg src=\"https://image.saithink.top/storage/20260410/2be5ab24c41e70694ad54ee56205fb6ab07c77fd.png\" alt=\"image.png\" data-href=\"https://image.saithink.top/storage/20260410/2be5ab24c41e70694ad54ee56205fb6ab07c77fd.png\" style=\"\"/>\u003C/p>",515,"2024-06-02 22:55:25","2026-05-01 03:27:59",false]