飞牛NAS上用Docker Compose编排Nginx+PHP+MySQL+Redis轻量LEMP环境
前几天帮朋友折腾一台飞牛NAS要把一个PHP项目从旧服务器挪过来。我最开始图省事直接用飞牛自带的应用商店装了一套Nginx套件结果发现PHP版本太老MySQL数据库目录也被套件管死想改配置还得翻半天权限。最后还是退回最熟悉的方案在飞牛NAS上用Docker手动编排一套Nginx PHP 8.2 (Alpine) Redis MySQL四个容器加起来比单个套件还干净以后升级、迁移、备份都是几条命令的事。这篇就记录整个部署过程。目标不是给你一个复制粘贴就跑的模板而是让你理解每个容器为什么这样配、每个参数到底在干什么。飞牛NAS的架构和普通Linux服务器略有差异但只要把目录、端口、网络规划好它完全可以当一台安静的低功耗Web服务器用。适合想把NAS从“存文件的盒子”升级成“自托管站点”的朋友也适合刚接触Docker compose、想要一套精简但完整LEMP栈的人。1. 为什么我在飞牛NAS上坚持这套轻量组合先说结论这套组合不是性能最强的但绝对是最适合飞牛NAS日常跑业务的一套。原因有两点一是飞牛的系统底层很接近标准Linux二是我希望所有服务都收在Docker容器里不污染NAS宿主环境。下面拆开说。1.1 一台NAS不只是存文件更要跑服务很多人对NAS的理解停留在“网络硬盘”但我个人觉得NAS放家里最大的价值是能长期在线、功耗低、静音。飞牛NAS有图形化的Docker管理界面可以鼠标点几下就创建容器但它的默认能力比较有限尤其是多容器之间的网络联动、环境变量传递、数据卷持久化这些用图形界面操作容易漏。我自己在飞牛上跑过在线图库、定时爬虫、API网关和小型博客几乎都是通过Docker compose管理的。一个compose文件把Nginx、PHP、MySQL、Redis全部定义清楚以后在这台NAS上重建服务只需要一条docker compose up -d不需要去界面里一个个找配置。更重要的是飞牛本身占用资源不高但如果你手动往系统里装LAMP组件很容易把依赖库搞乱到时候升级系统或恢复出厂都得哭。容器化就是这道保险。1.2 为什么是Nginx PHP 8.2 (Alpine) Redis MySQL选这套组合不是拍脑袋。NAS上的CPU和内存都有限Nginx比Apache在静态文件处理和并发连接上更省资源PHP 8.2对现代框架比如Laravel、WordPress兼容性很好Alpine镜像又比Debian版本小一大截。Redis用来做缓存和队列MySQL负责持久化数据各司其职。如果你只跑一个PHP博客甚至可以把Redis去掉但标题里既然有Redis我更推荐留它。原因是飞牛上的磁盘读写速度有限如果PHP频繁访问数据库做同一份查询机械盘或高温下的小型SSD都会比较吃力。Redis把这些高频读操作放在内存里能显著降低MySQL的负担也让PHP响应速度稳定很多。额外说一句MySQL官方镜像没有Alpine版本所以“轻量级”主要体现在Nginx和PHP这两个镜像上MySQL本身依然是官方镜像。优点是兼容性稳缺点是镜像稍大。如果非要极端轻量可以换成MariaDB很多场景下是兼容的但为了贴合标题且减少业务迁移风险还是保持MySQL。组件镜像体积特点作用Nginxnginx:alpine很小静态文件、反向代理、处理HTTP请求PHPphp:8.2-fpm-alpine小解析PHP脚本与Nginx通过FastCGI通信Redisredis:7-alpine很小缓存、Session、简单队列MySQLmysql:8.0较大核心关系型数据持久化2. 开工前的规划和文件布局我见过太多人一上来就创建容器结果三个月后连自己装了什么都不知道。在飞牛NAS上部署环境第一步不是下载镜像而是想清楚文件放在哪、怎么命名、端口如何避让。2.1 检查飞牛NAS的Docker环境与SSH准备飞牛NAS默认已经内置了Docker但你最好先确认版本因为新版compose语法需要对应的Docker Compose插件支持。建议打开飞牛的“终端/SSH”功能用你常用的用户登录后台执行docker version docker compose version如果docker compose提示找不到可以尝试docker-compose带横杠的旧版命令。飞牛较新的系统应该都支持docker compose子命令。另外我不建议直接用root用户权限不够命令前加sudo即可。检查完版本再确认一下常用端口的状态。飞牛的Web管理界面默认占用80/443所以新起的Nginx容器不要直接绑宿主80我习惯在宿主机映射一个高位端口比如8800。这样既能避免冲突也方便后续加端口转发。2.2 目录结构一套好记、好维护的布局我推荐所有业务文件放在同一块数据盘下的专用目录比如飞牛常见的存储路径/storage/vol1/docker/lemp/。当然具体路径根据你的存储池而定但原则是多个磁盘不要散落着放尽量集中。我的示意结构是这样的/storage/vol1/docker/lemp/ ├── .env ├── docker-compose.yml ├── nginx/ │ ├── conf.d/ │ │ └── default.conf │ └── html/ ├── php/ │ ├── Dockerfile │ └── php.ini ├── mysql/ │ └── init/ ├── redis/ │ └── data/ └── logs/nginx/conf.d放Nginx站点配置nginx/html放静态页面php/Dockerfile用于定制PHP容器并安装扩展mysql/init放首次初始化SQL脚本redis/data虽然不直接挂载但目录名保留给以后做备份。日志统一收到logs下方便排查。2.3 用.env统一管理账号、端口和密码这部分经常被新手跳过但我强烈建议一开始就做。把密码、数据库名、端口这些容易变化的值放进.env文件compose文件里用${变量}引用。这样即使这台NAS以后迁移或者你想让朋友复制部署也只需要改一个文件不会把密码散落在源代码里。.env内容大致是# 端口映射 NGINX_WEB_PORT8800 # MySQL MYSQL_ROOT_PASSWORDreplace_me_root MYSQL_DATABASEappdb MYSQL_USERappuser MYSQL_PASSWORDreplace_me_password # Redis REDIS_PASSWORDreplace_me_redis注意replace_me这些占位符一定要改成强密码不要在NAS上使用明显弱口令。docker-compose.yml在运行时自动读取同一个目录下的.env不需要额外命令但你要保证文件名严格叫.env。3. docker-compose.yml逐段拆解四个容器怎么串起来这一节是核心。我会把compose文件拆成几段来解释而不是直接贴一大坨。你理解了每段以后的灵活性会高很多。3.1 网络、卷和容器依赖的设计开头先定义网络和数据卷。compose会自动创建一个bridge网络容器之间可以通过服务名互相访问比如PHP容器里可以用mysql这个主机名连数据库用redis连缓存。桥接网络的好处是内部流量隔离不需要经过宿主网络栈。数据卷单独声明的意义是持久化MySQL容器删了重建数据还在Redis的AOF文件也可以留在卷里。networks: lemp_net: driver: bridge volumes: db_data: redis_data:需要注意飞牛NAS的Docker界面里卷可能显示成特殊名字比如lemp_db_data。备份或恢复时你就得找这个全名。3.2 Nginx容器暴露端口并关联PHP-FPMNginx容器是整个服务的入口。它只做两件事接收外部HTTP请求命中PHP文件时把请求转发给PHP-FPM容器。因此它需要挂载配置文件、静态文件和PHP项目的共享目录。services: nginx: image: nginx:alpine container_name: lemp-nginx restart: unless-stopped ports: - ${NGINX_WEB_PORT:-8800}:80 volumes: - ./nginx/conf.d:/etc/nginx/conf.d:ro - ./nginx/html:/usr/share/nginx/html - /storage/vol1/docker/webroot:/var/www/html depends_on: - php networks: - lemp_net端口这里我用了${NGINX_WEB_PORT:-8800}意思是取.env里的值如果没有就默认8800。挂载/storage/vol1/docker/webroot是宿主机上你的PHP项目实际目录这样Nginx和PHP容器都能看到同一个代码路径这一步必不可少。很多人在飞牛上觉得“容器内文件跟宿主机对不上”根源就是项目目录没有同时挂给Nginx和PHP容器。3.3 PHP 8.2 Alpine容器扩展、软链接和共享卷PHP容器我用php:8.2-fpm-alpine作为基础镜像但不会直接用而是写一个Dockerfile来追加扩展。原因很现实运行一个现代PHP应用光是pdo_mysql和redis这两个扩展就经常缺失而且Alpine镜像的包管理是apk和默认的Debian版本不一样直接进容器装会比较麻烦。我的php/Dockerfile如下FROM php:8.2-fpm-alpine # 安装系统依赖用于编译扩展 RUN apk add --no-cache --virtual .build-deps \ $PHPIZE_DEPS \ docker-php-ext-install pdo_mysql mysqli opcache \ pecl install redis \ docker-php-ext-enable redis \ apk del .build-deps # 复制自定义php.ini COPY php.ini /usr/local/etc/php/conf.d/99-custom.ini这里有三个细节$PHPIZE_DEPS是官方镜像预留的编译工具链变量docker-php-ext-install是官方推荐的扩展安装方式安装完编译依赖后要apk del删掉否则镜像体积会白白膨胀几十兆。如果你还需要gd、zip这类扩展也可以顺着同样的思路加进去但基础环境我不建议一下装太多缺什么再加什么更符合轻量原则。对应的compose服务php: build: ./php container_name: lemp-php restart: unless-stopped volumes: - /storage/vol1/docker/webroot:/var/www/html environment: - MYSQL_HOSTmysql - MYSQL_PORT3306 - MYSQL_DATABASE${MYSQL_DATABASE} - MYSQL_USER${MYSQL_USER} - MYSQL_PASSWORD${MYSQL_PASSWORD} - REDIS_HOSTredis - REDIS_PORT6379 - REDIS_PASSWORD${REDIS_PASSWORD} networks: - lemp_netPHP容器里必须和Nginx挂载同一个项目目录/var/www/html因为Nginx拿到脚本路径后最终是PHP-FPM去读这个文件。如果两边挂载不一致就会出现404或空白页。3.4 MySQL与Redis容器轻量、持久化和内存优化MySQL部分官方镜像没有Alpine版但也没必要自己折腾精简版重点是初始化参数和数据持久化。我在mysql/init/下放初始化SQL比如创建普通用户、建表等这些脚本只在数据卷为空时自动执行一次。mysql: image: mysql:8.0 container_name: lemp-mysql restart: unless-stopped environment: MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD} MYSQL_DATABASE: ${MYSQL_DATABASE} MYSQL_USER: ${MYSQL_USER} MYSQL_PASSWORD: ${MYSQL_PASSWORD} volumes: - db_data:/var/lib/mysql - ./mysql/init:/docker-entrypoint-initdb.d:ro command: - --character-set-serverutf8mb4 - --collation-serverutf8mb4_unicode_ci networks: - lemp_netutf8mb4是中文站点必设项否则某些生僻字和emoji都没法完整存储。command里的参数会覆盖默认启动配置写法是数组形式注意每一项前面要有-。Redis直接使用redis:7-alpine加上密码和持久化参数。一般只需要把数据卷挂到/data然后用--requirepass设置密码。redis: image: redis:7-alpine container_name: lemp-redis restart: unless-stopped command: redis-server --appendonly yes --requirepass ${REDIS_PASSWORD} volumes: - redis_data:/data networks: - lemp_net如果你不希望Redis数据落盘可以把--appendonly yes去掉。但NAS场景下我建议保留因为偶尔断电或重启时内存中的缓存数据虽然有API重建方案但丢失会引发少量缓存穿透Append Only File几乎是防呆操作。4. 站点配置与PHP业务联通让四个服务真正干活容器编排好不等于业务通了最常出问题的恰恰是“容器都起来了但网页打不开”。核心在于Nginx和PHP之间的FastCGI连接以及PHP访问MySQL和Redis的网络链路。4.1 Nginx虚拟主机配置fastcgi_pass的关键写法以默认站点为例在nginx/conf.d/default.conf里写server { listen 80; server_name _; root /var/www/html; index index.php index.html; location / { try_files $uri $uri/ 404; } location ~ \.php$ { fastcgi_pass php:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } location ~ /\.(?!well-known).* { deny all; } }在这个配置里fastcgi_pass php:9000用的是compose网络里的服务名php而不是IP地址。好处是无论容器IP怎么变都不需要改配置。特别强调fastcgi_param SCRIPT_FILENAME这一行很多人复制网上的配置时漏掉它结果所有PHP文件都下载或返回空白。它的作用是把Nginx请求的文件绝对路径传给PHP-FPM如果路径和PHP容器里挂载的/var/www/html对不上就会报Primary script unknown。4.2 写一个探针文件来验证PHP、MySQL和Redis项目还没迁移之前我会先放一个探针文件在/storage/vol1/docker/webroot/test.php确认三件事PHP能跑、MySQL能连、Redis能读写。探针内容很简单?php $mysqli new mysqli( getenv(MYSQL_HOST) ?: mysql, getenv(MYSQL_USER) ?: root, getenv(MYSQL_PASSWORD) ?: root, getenv(MYSQL_DATABASE) ?: test ); if ($mysqli-connect_error) { echo MySQL连接失败: . $mysqli-connect_error . br; } else { echo MySQL连接成功br; } $redis new Redis(); try { $redis-connect(getenv(REDIS_HOST) ?: redis, (int)(getenv(REDIS_PORT) ?: 6379)); if (getenv(REDIS_PASSWORD)) { $redis-auth(getenv(REDIS_PASSWORD)); } $redis-set(probe, ok); echo Redis读写成功: . $redis-get(probe) . br; } catch (Exception $e) { echo Redis连接失败: . $e-getMessage() . br; }注意PHP探针里用getenv读取的是PHP容器里的环境变量因为compose已经在environment里定义好了。直接把密码写进代码是不可取的尤其是后面代码万一要进Git仓库很容易泄露。4.3 权限、端口和DNS等常见联通问题的排查顺序如果你的探针显示“连接失败”不要慌按顺序排查。第一容器之间是否在同一网络。在PHP容器里执行docker exec lemp-php getent hosts mysql docker exec lemp-php getent hosts redis如果解析不到主机名说明compose网络没配对或者服务名写错。第二MySQL登录权限。MySQL默认不会允许所有IP访问如果容器内连接报host xxx is not allowed需要在初始化SQL里创建appuser%或者复用MYSQL_USER环境变量因为官方镜像会为该用户创建任意host权限但仅限于初始库。第三防火墙和端口占用。飞牛NAS如果开了防火墙宿主机8800端口没放行外部设备自然访问不到Nginx。查一下nginx日志是最直观的用docker compose logs nginx5. 启动、验证与资源实测配置写完就可以启动了。第一次启动会拉取镜像、构建PHP容器过程可能有点久但只要看到容器全部变成running后面基本就稳了。5.1 首次启动命令和日志观察要点在/storage/vol1/docker/lemp目录下执行docker compose up -d --build--build是告诉compose要重建PHP镜像因为你的PHP容器来自本地Dockerfile。等它结束后查看状态docker compose ps docker compose logs -f phpMySQL首次初始化比较慢可能数十秒。如果发现MySQL容器一直重启先看日志docker compose logs mysql常见原因是数据卷里已经有残留旧数据库但环境变量变了。解决办法是先停容器把db_data卷清空再重来或者直接换一个卷名。5.2 轻量级这里的资源占用实测我以模拟项目X一台飞牛NAS四核8G内存为参照跑这套组合后静态idle状态下资源占用大致如下容器内存占用范围CPU空闲时nginx:alpine8-15 MB几乎0%php 8.2-fpm-alpine40-80 MB几乎0%redis:7-alpine8-20 MB几乎0%mysql:8.0300-500 MB几乎0%合计400-600 MB几乎0%MySQL依然是大头但这是正常现象毕竟它不是Alpine。如果你用MariaDB内存能再降100-200MB。整体来说这套结构在飞牛NAS上跑多数中小型业务完全够用剩余资源可以继续跑其他容器。5.3 后续调优进程数、缓存和内存限制首次跑通后我建议再做几项轻量调优。PHP-FPM方面默认pm.max_children可能偏大。在自定义php.ini或FPM池配置里调低一点比如pm.max_children10避免突发流量时内存暴涨。如果你只跑个人博客4到6个就够。Nginx方面worker_processes auto会按CPU核数自动产生进程飞牛一般几核就几行不需要改。keepalive_timeout可以设短一点比如30秒省一点连接资源。MySQL方面关键的还是innodb_buffer_pool_size。8G总内存的NAS可以改成256M或512M扛住中小量负载没问题。Redis方面可以在redis命令里追加--maxmemory 64mb --maxmemory-policy allkeys-lru防止缓存无限增长。这些参数不是上来就猛调建议根据实际访问量慢慢试。飞牛的优势是Docker容器可以随时重启调坏了直接docker compose down up -d不需要重装。6. 日常维护、升级和数据备份的实操心得部署完成只是开始NAS上的环境是长期跑的维护和备份才是重中之重。几个常用操作我已经固化成了肌肉记忆顺手写出来。6.1 镜像更新与容器重建的步骤当Nginx或PHP官方镜像更新时我一般这样操作docker compose pull docker compose up -d --build --remove-orphanspull会把远程新镜像拉到本地up -d会基于新镜像重建容器。如果你的PHP改过Dockerfile别忘了保留--build否则它还是旧的本地镜像。建议更新前先看一眼项目有没有兼容性问题尤其是PHP版本跨大版本升级。这里说的只是8.2内的小补丁更新风险很低但数据库大版本的跨级还是谨慎点好。6.2 数据卷备份与恢复命令MySQL举足轻重定时备份不能少。飞牛系统本身可以设置共享文件夹快照但Docker卷里的数据用tar打包更灵活。备份命令docker run --rm -v lemp_db_data:/data -v /storage/vol1/docker/backup:/backup alpine \ sh -c cd /data tar czf /backup/db_data_$(date %F).tar.gz .恢复时先停止使用该卷的容器然后执行docker run --rm -v lemp_db_data:/data -v /storage/vol1/docker/backup:/backup alpine \ sh -c rm -rf /data/* /data/.* 2/dev/null; cd /data tar xzf /backup/db_data_xxx.tar.gz注意恢复前一定要先把现有数据目录清空否则文件和权限可能错乱。Redis卷备份方法类似不过Redis数据重放一次也很快不是很高风险。6.3 我踩过的几个坑和绕过方法第一个坑是宿主机80端口被飞牛界面占用。解决方式我提过了端口映射改成高位。如果你就是想让站点跑标准80那就去改飞牛管理界面的端口但我不推荐为个小项目动NAS本身的管理端口。第二个坑是Nginx配置里的fastcgi_param SCRIPT_FILENAME漏掉。当时探针文件直接返回200但内容是空的Nginx日志显示Primary script unknown一度以为是PHP容器坏了查了半天才发现是路径参数问题。第三个坑是PHP容器改了扩展之后没有重新构建镜像。很多人在Dockerfile里加了扩展然后只执行docker compose up -d发现扩展始终不生效因为compose认为服务已经在跑。必须带--build参数重建或者先docker compose build php。第四个坑是MySQL容器启动后端口通了但PHP连接全部被拒。排查MySQL日志发现问题出在默认的mysql_native_password插件在新版本8.0里的兼容性设置上。后来我在初始化SQL里为业务账号指定了mysql_native_password但如果你用的是较新的客户端驱动通常不做额外修改也行。最后提醒一点每次改完Dockerfile或Nginx配置不要只盯着前台页面看养成看日志的习惯。在飞牛NAS上跑Docker环境docker compose logs就是你的第一道防线绝大多数问题在日志里都写得很直白。把这套轻量组合跑顺之后你会发现飞牛NAS能做的不只是存照片它完全可以成为一台低功耗的私人Web服务器后面想继续加Grafana、Nextcloud、API网关都是在同一套compose网络里叠服务的事。

相关新闻

YOLOv5船舶检测四大实战改进:小目标、海面干扰与红外适配

YOLOv5船舶检测四大实战改进:小目标、海面干扰与红外适配

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 2:11:53 阅读更多 →
双指针算法详解:对撞、快慢与滑动窗口实战

双指针算法详解:对撞、快慢与滑动窗口实战

1. 双指针到底解决了什么问题先从一个最常见的场景说起。假设你拿到了一个有序数组,要找出其中两个数,使它们的和等于某个目标值。最直接的想法是两层循环暴力枚举,第一层固定一个数,第二层遍历剩下的数去检查。这个方案的复杂度是…

2026/10/11 2:11:53 阅读更多 →
EtherCAT网关选型全攻略:协议、芯片、线缆三大关键

EtherCAT网关选型全攻略:协议、芯片、线缆三大关键

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 2:11:53 阅读更多 →

最新新闻

电池异常检测竞赛方案:特征工程与阈值调优全复盘

电池异常检测竞赛方案:特征工程与阈值调优全复盘

我参加过一场能源AI挑战赛,任务落在电池异常检测上,最终排名守在第二,持续多轮没掉出头部。复盘时我经常被问到:这个第二名到底赢在哪?其实答案很朴素——不是某个神秘模型,而是把从数据解读、特征构造、模…

2026/10/11 3:04:22 阅读更多 →
MySQL性能优化实战:从慢查询定位到索引设计的系统方法

MySQL性能优化实战:从慢查询定位到索引设计的系统方法

1. 慢查询日志配置:先把“病号”抓出来,再谈治病1.1 三个核心参数与一套推荐配置做MySQL性能优化,我从来不是一上来就翻代码或者加索引,而是先打开慢查询日志。很多团队的MySQL实例跑了几年,慢查询日志一直是关闭状态&…

2026/10/11 3:04:22 阅读更多 →
STM32纯软件仿真入门:不买开发板也能跑通GPIO、定时器、串口与中断

STM32纯软件仿真入门:不买开发板也能跑通GPIO、定时器、串口与中断

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 3:04:22 阅读更多 →
Linux性能排查:perf工具定位CPU热点函数实战指南

Linux性能排查:perf工具定位CPU热点函数实战指南

接手一台 CPU 飙到 200% 的机器,top 上看不到哪个进程异常,vmstat 显示 us 很高,pidstat 又说某线程在忙,可就是说不清它到底在忙什么。这种时候,我一般会直接上 perf。perf 是 Linux 内核自带的性能剖析工具&#xff…

2026/10/11 3:04:22 阅读更多 →
开源神经接口Muse:肌电腕带与Home Link生态解析

开源神经接口Muse:肌电腕带与Home Link生态解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 3:04:22 阅读更多 →
电磁泄漏防护全解析:从屏蔽室建设到红黑分离的工程实践

电磁泄漏防护全解析:从屏蔽室建设到红黑分离的工程实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 3:03:21 阅读更多 →

日新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/11 0:00:27 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/11 0:00:27 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 5:23:50 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/9 21:32:20 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 10:38:42 阅读更多 →