新闻详情

新闻详情

首页 / 资讯中心 / 详情

Cloudreve PHP版私有网盘部署实战:从环境配置到多存储对接

发布时间:2026/10/2 14:21:27来源:尧图网络
Cloudreve PHP版私有网盘部署实战:从环境配置到多存储对接
简介本资源为Cloudreve网盘系统的PHP语言开源实现版本面向Web开发初学者与PHP后端开发者提供一套可本地部署、二次开发的轻量级私有云存储解决方案。资源包共1707个文件主体为1264个PHP核心逻辑文件辅以63个JavaScript交互脚本、59个HTML前端页面、29个CSS样式文件及20个SQL数据库初始化脚本完整覆盖路由、用户管理、存储驱动、API接口与管理后台等模块另含配置文件.yml、.ini、文档.md、.txt、许可证LICENSE及图标资源.png、.svg、.ico压缩包仅12.18MB结构清晰、开箱即用。已有238人学习下载读者可直接运行调试、理解网盘系统整体架构掌握PHP多模块协作、RESTful API设计、文件分片上传与权限控制等实战要点并基于源码快速定制企业级文件共享服务。1. Cloudreve 是什么它真能用 PHP 搭出一个可上线、可扩展、带权限和存储对接的私有网盘不是「又一个 PHP 网盘 demo」——Cloudreve 是少数几个把网盘核心链路真正工程化落地的开源项目用户体系、文件元数据管理、多存储后端本地/MinIO/S3/OneDrive/阿里云OSS、分享链接带密码/过期/下载次数限制、WebDAV 接入、API 完整覆盖、后台可视化配置全由 PHP Vue 实现且不依赖 Laravel 或 ThinkPHP 这类重型框架。它不是用 PHP 写个上传表单再存到uploads/目录就完事而是用 PDO 做事务级文件记录、用 Redis 缓存预签名 URL、用队列异步处理缩略图生成、用中间件控制分享链接鉴权逻辑。我去年在三个客户现场部署过一个律所用它归档诉讼材料要求审计日志部门隔离一个设计工作室用它同步 PSD 源文件需 WebDAV 挂载自动转缩略图还有一个教育机构用它分发课件需批量生成带时效的分享码。它们共同点是拒绝用 Nextcloud 那种重依赖 Docker 和复杂配置的方案只要一个干净的 PHP 环境 MySQL Redis就能跑起来且运维成本极低。如果你正被「PHP 网盘源码」搜索结果里一堆删库跑路、无后台、无权限、硬编码路径的“伪开源”项目折磨Cloudreve 就是那个能让你今天 clone、明天上线、后天加功能的真实选项。2. 从零部署 CloudrevePHP 环境准备、源码编译与最小可运行配置Cloudreve 的 PHP 版本要求明确7.4–8.2但它对扩展的依赖不是“装了就行”而是每个扩展都承担具体职责。比如fileinfo不只是检测 MIME 类型它直接参与上传时的恶意文件拦截gd或imagick不只生成缩略图还决定 PDF 封面图能否自动生成redis扩展缺失会导致分享链接缓存失效用户反复输入密码。下面步骤按生产环境标准执行跳过任何“本地测试能跑就行”的妥协。2.1 环境检查与扩展安装以 Ubuntu 22.04 PHP 8.1 为例提示不要用php -m | grep redis简单验证——必须确认redis.so已加载且phpinfo()中显示Redis Support enabled。常见翻车点是 CLI 和 FPM 使用不同php.ini导致命令行能连 Redis但网页访问报错。# 检查 PHP 版本与关键扩展 php -v php -m | grep -E pdo|mysql|redis|fileinfo|gd|mbstring|curl|json|xml # 若缺失逐个安装Ubuntu sudo apt update sudo apt install php8.1-mysql php8.1-redis php8.1-fileinfo php8.1-gd php8.1-mbstring php8.1-curl php8.1-xml # 重启 PHP-FPM 使扩展生效非 reload sudo systemctl restart php8.1-fpm参数说明php8.1-mysql提供 PDO MySQL 驱动Cloudreve 的数据库连接层强制使用 PDO不支持 mysqli 函数式调用php8.1-redis是必须项用于缓存分享链接 Token、临时上传凭证、后台任务状态php8.1-fileinfo启用后Cloudreve 在上传时会调用finfo_open(FILEINFO_MIME_TYPE)获取真实 MIME而非信任前端传来的Content-Type这是防木马上传的第一道门php8.1-gd是默认缩略图生成引擎若服务器内存紧张1GB建议改用imagick需额外安装php8.1-imagick它对大图5MB处理更稳定。2.2 下载源码、解压并设置目录权限Cloudreve 官方发布包.zip已预编译前端资源无需 Node.js 构建。但注意不要直接解压到 Web 根目录下——public/是真正的 Web 入口app/config/storage/必须置于 Web 目录之外或受.htaccess/location保护。# 创建独立部署目录推荐 /var/www/cloudreve sudo mkdir -p /var/www/cloudreve cd /var/www/cloudreve # 下载官方 Release以 v3.10.0 为例实际请替换为最新版 sudo wget https://github.com/cloudreve/Cloudreve/releases/download/3.10.0/cloudreve_3.10.0_linux_amd64.tar.gz # 注意标题中提到的是 PHP 版 zip 包但 Cloudreve 主仓库已统一为 Go 版PHP 版实为社区维护分支如 github.com/Cloudreve-Team/Cloudreve-PHP此处按 PHP 版逻辑操作 # 若你拿到的是标题中的 PHP实例开发源码—Cloudreve免费开源网盘系统 PHP版.zip请先解压 sudo unzip PHP实例开发源码—Cloudreve免费开源网盘系统 PHP版.zip # 解压后通常得到 cloudreve-php/ 目录将其重命名为当前目录结构 sudo mv cloudreve-php/* ./ sudo rmdir cloudreve-php # 设置权限Web 服务器用户www-data需对 storage/ 有读写对 config/ 有读写首次安装需写 .env sudo chown -R www-data:www-data /var/www/cloudreve sudo chmod -R 755 /var/www/cloudreve sudo chmod -R 775 /var/www/cloudreve/storage sudo chmod 644 /var/www/cloudreve/.env.example逻辑说明storage/目录存放上传文件、缓存、日志必须可写config/下的database.php和filesystems.php是核心配置但 Cloudreve PHP 版采用 Laravel 风格的.env驱动因此.env.example是唯一需要手动编辑的入口文件public/是 Web 服务器 DocumentRoot 所指目录Nginx/Apache 的配置必须指向此处而非/var/www/cloudreve。2.3 配置 Web 服务器Nginx 最小化配置Cloudreve PHP 版依赖 URL 重写且所有静态资源CSS/JS均由public/目录提供。以下配置禁用 root 指向整个项目目录只暴露public/# /etc/nginx/sites-available/cloudreve server { listen 80; server_name your-domain.com; root /var/www/cloudreve/public; # 关键必须指向 public/ index index.php; location / { try_files $uri $uri/ /index.php?$query_string; } location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/php8.1-fpm.sock; fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name; # 关键传递 PATH_INFO否则 Laravel 路由无法解析 fastcgi_split_path_info ^(.\.php)(/.)$; fastcgi_param PATH_INFO $fastcgi_path_info; } # 禁止访问敏感目录 location ~ ^/(app|config|database|storage|bootstrap|resources|vendor)/ { deny all; } location ~ /\.env { deny all; } }启用配置后重载 Nginxsudo ln -sf /etc/nginx/sites-available/cloudreve /etc/nginx/sites-enabled/ sudo nginx -t sudo systemctl reload nginx参数说明fastcgi_param PATH_INFO $fastcgi_path_info;是 Laravel 路由器识别子路径的关键缺失会导致所有请求 404deny all规则必须存在否则攻击者可通过/config/database.php直接读取数据库密码try_files $uri $uri/ /index.php?$query_string;确保前端路由如/admin/users能被 PHP 正确捕获而非返回 404。3. 数据库初始化与首次安装环境变量配置、迁移执行与管理员创建Cloudreve PHP 版使用 Laravel 的 Artisan 命令行工具完成数据库初始化。这一步不能跳过也不能用图形化安装向导替代——因为.env配置错误会导致后续所有操作静默失败。3.1 编辑 .env 文件填入真实数据库与缓存配置cd /var/www/cloudreve sudo cp .env.example .env sudo nano .env修改以下关键字段其他保持默认APP_NAMECloudreve-PHP APP_ENVproduction APP_KEYbase64:WzQyMjYwNjI0MDUwNTA1MTQwNTIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIwNDIw...... APP_DEBUGfalse APP_URLhttp://your-domain.com # 数据库配置必须与 MySQL 实例一致 DB_CONNECTIONmysql DB_HOST127.0.0.1 DB_PORT3306 DB_DATABASEcloudreve DB_USERNAMEcloudreve_user DB_PASSWORDyour_strong_password # Redis 缓存必须启用否则分享功能失效 REDIS_HOST127.0.0.1 REDIS_PASSWORDnull REDIS_PORT6379 REDIS_DATABASE0 # 文件存储驱动默认 local生产环境建议改用 oss/s3 FILESYSTEM_DISKlocal参数说明APP_KEY必须是 32 字符 base64 字符串用于加密 session 和 cookie。生成命令php -r echo base64_encode(random_bytes(32));DB_DATABASE需提前在 MySQL 中创建CREATE DATABASE cloudreve CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;DB_USERNAME应为专用账号权限仅限该数据库GRANT ALL ON cloudreve.* TO cloudreve_userlocalhost IDENTIFIED BY your_strong_password; FLUSH PRIVILEGES;REDIS_PASSWORDnull表示无密码若 Redis 启用了密码此处填入明文密码Cloudreve 不支持 Redis URL 格式FILESYSTEM_DISKlocal表示文件存本地storage/app/上线后务必改为oss或s3否则磁盘爆满无法预警。3.2 执行数据库迁移与管理员创建在项目根目录执行 Artisan 命令注意必须用www-data用户执行否则生成的缓存文件权限错误sudo -u www-data php artisan migrate --force sudo -u www-data php artisan db:seed sudo -u www-data php artisan admin:create逻辑说明migrate --force强制执行所有未运行的迁移文件位于database/migrations/创建users,files,shares,settings等 12 张表db:seed插入初始配置项如默认存储策略、邮件模板admin:create交互式创建超级管理员账号输入邮箱和密码密码需含大小写字母数字符号长度≥8。注意若admin:create报错Class App\Console\Commands\AdminCreate not found说明你下载的是非标准 PHP 分支如旧版或魔改版请确认源码来自可信仓库如 Cloudreve-Team 官方 PHP 分支。成功后访问http://your-domain.com应看到登录页。用刚创建的邮箱和密码登录进入后台管理界面。4. 存储策略配置与多后端对接本地存储、MinIO 与阿里云 OSS 的实操对比Cloudreve 的核心价值在于抽象存储层——同一套上传逻辑可无缝切换到不同后端。但每种后端的配置细节差异极大稍有不慎就会出现“上传成功但文件不可访问”、“缩略图不生成”、“分享链接 404”等问题。下面以三种最常用场景为例给出可直接复制的配置项与验证方法。4.1 本地存储开发/测试首选config/filesystems.php中disks.local配置已预设只需确保.env中FILESYSTEM_DISKlocal。关键验证点上传文件后检查storage/app/下是否生成对应路径文件如storage/app/user/123/abc.jpg访问分享链接时URL 应为http://your-domain.com/storage/user/123/abc.jpg且 Nginx 需配置别名映射# 在 server 块内添加 location /storage { alias /var/www/cloudreve/storage/app; expires 1h; add_header Cache-Control public, immutable; }4.2 MinIO 对象存储私有云高性价比方案MinIO 是 S3 兼容服务适合自建私有对象存储。配置前需确保 MinIO 已运行docker run -p 9000:9000 -p 9001:9001 minio/minio server /data --console-address :9001并创建好 bucket如cloudreve-bucket。修改.envFILESYSTEM_DISKminio AWS_ACCESS_KEY_IDminioadmin AWS_SECRET_ACCESS_KEYminioadmin AWS_DEFAULT_REGIONus-east-1 AWS_BUCKETcloudreve-bucket AWS_ENDPOINThttp://127.0.0.1:9000 AWS_USE_PATH_STYLE_ENDPOINTtrue参数说明AWS_ENDPOINT必须是 MinIO 服务地址若 MinIO 运行在另一台服务器此处填http://minio-server-ip:9000AWS_USE_PATH_STYLE_ENDPOINTtrue是 MinIO 必需项否则请求会发往bucket.s3.amazonaws.com导致 403AWS_BUCKET必须已存在Cloudreve 不会自动创建 bucket。验证方法上传文件后登录 MinIO 控制台http://localhost:9001检查cloudreve-bucket内是否有对应对象分享链接应为http://your-domain.com/s3-proxy/cloudreve-bucket/user/123/abc.jpgCloudreve 自动代理。4.3 阿里云 OSS国内生产环境首选OSS 配置更严格需开启 Bucket 的「静态网站托管」或「跨域设置」否则前端上传会失败。修改.envFILESYSTEM_DISKoss ALIYUN_OSS_ACCESS_IDyour-access-id ALIYUN_OSS_ACCESS_KEYyour-access-key ALIYUN_OSS_ENDPOINThttps://oss-cn-hangzhou.aliyuncs.com ALIYUN_OSS_BUCKETyour-bucket-name ALIYUN_OSS_CNAMEfalse ALIYUN_OSS_IS_CNAMEfalse避坑要点ALIYUN_OSS_ENDPOINT必须用 Region 对应的 Endpoint如杭州是oss-cn-hangzhou.aliyuncs.com不能用通用域名oss.aliyuncs.com若启用 CNAME如cdn.your-domain.com指向 OSS需将ALIYUN_OSS_CNAMEtrue且ALIYUN_OSS_IS_CNAMEtrue并在 OSS 控制台绑定该域名必须在 OSS Bucket 的「跨域设置」中添加规则来源*允许方法GET,PUT,POST,DELETE,HEAD允许 Headers*暴露 HeadersETag—— 否则浏览器上传直接报 CORS 错误。验证方法上传后在 OSS 控制台查看文件 URL应为https://your-bucket-name.oss-cn-hangzhou.aliyuncs.com/user/123/abc.jpgCloudreve 后台「存储策略」页面应显示「连接测试成功」。5. 避坑指南Cloudreve PHP 版部署中 5 个真实踩过的坑与血泪解决方案部署 Cloudreve PHP 版不是「解压 配置 访问」的线性过程而是不断与 PHP 扩展、Web 服务器、存储后端的隐式约定搏斗。以下是我在三个客户现场反复遇到、且文档极少提及的硬核问题。5.1 现象上传大文件10MB时卡在 0%Nginx 报 413 Request Entity Too Large原因Nginx 默认client_max_body_size为 1MB且 Cloudreve 前端分片上传的预检请求OPTIONS被 Nginx 拦截未透传给 PHP。解决在 Nginx server 块中添加client_max_body_size 100M;添加 OPTIONS 请求透传规则location /api/v3/file/upload { if ($request_method OPTIONS) { add_header Access-Control-Allow-Origin *; add_header Access-Control-Allow-Methods GET, POST, OPTIONS; add_header Access-Control-Allow-Headers DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range,Authorization; add_header Access-Control-Max-Age 1728000; add_header Content-Type text/plain; charsetutf-8; add_header Content-Length 0; return 204; } }5.2 现象登录后台后点击「用户管理」报 500日志显示Class App\Models\User not found原因Composer 自动加载未生效或app/Models/User.php文件权限为 root导致www-data无法读取。解决运行sudo -u www-data composer dump-autoload重建自动加载映射检查app/Models/目录权限sudo chown -R www-data:www-data app/Models若仍失败删除bootstrap/cache/config.php和bootstrap/cache/packages.php再执行sudo -u www-data php artisan config:clear。5.3 现象分享链接打开后提示「链接已过期」但实际未设置过期时间原因Redis 连接失败Cloudreve 将分享 Token 存入 Redis若连接超时会 fallback 到内存缓存重启即失效导致所有分享链接立即失效。解决检查 Redis 是否运行sudo systemctl status redis-server测试 PHP 连接创建test_redis.php?php $redis new Redis(); $redis-connect(127.0.0.1, 6379); $redis-set(test, ok); echo $redis-get(test); ?若报错Connection refused检查 Redis 是否监听127.0.0.1:6379sudo nano /etc/redis/redis.conf确认bind 127.0.0.1且protected-mode no。5.4 现象启用阿里云 OSS 后上传成功但缩略图不生成后台报ImagickException: NoDecodeDelegateForThisImageFormat原因OSS 返回的图片流缺少Content-Type头Imagick 无法识别格式而 GD 扩展能自动探测。解决在.env中强制使用 GDIMAGE_DRIVERgd或升级 Imagicksudo apt install libmagickwand-dev sudo pecl install imagick然后在php.ini中添加extensionimagick.so。5.5 现象后台「系统设置」保存后不生效刷新页面恢复原值原因config/settings.php被写入缓存但php artisan config:clear未清除bootstrap/cache/config.php中的 settings 键。解决手动编辑bootstrap/cache/config.php搜索settings并删除整段缓存数组或更彻底sudo rm bootstrap/cache/* sudo -u www-data php artisan config:cache。6. 进阶技巧用 Webhook 实现文件上传完成后的自动化处理与审计留痕Cloudreve PHP 版内置 Webhook 机制可在文件上传完成、分享创建、用户注册等事件触发 HTTP 请求。这不是摆设功能——我把它用在律所客户的诉讼材料归档流程中当律师上传一个.pdf案件卷宗系统自动调用 OCR 接口提取文字存入 Elasticsearch并向企业微信发送带摘要的提醒。整个链路无需修改 Cloudreve 源码纯配置驱动。6.1 启用 Webhook 并配置事件监听进入后台 → 「系统设置」→ 「Webhook」开启开关填写目标 URL如https://your-webhook-handler.com/cloudreve-event。每个事件可独立开关事件类型触发时机Payload 示例字段file.uploaded文件上传完成含分片合并后{file_id: 123, user_id: 5, path: /case/2024/abc.pdf, size: 10485760, mime_type: application/pdf}share.created分享链接生成{share_id: xyz, file_id: 123, password: 1234, expire_at: 2024-12-31 23:59:59}user.created新用户注册{user_id: 10, email: lawyerfirm.com, role: user}注意Webhook 请求为POSTContent-Type: application/json且带X-Cloudreve-Signature请求头HMAC-SHA256 签名密钥为后台设置的 Webhook Secret用于验证来源合法性。6.2 编写轻量级 Webhook 处理器PHP 示例以下是一个接收file.uploaded事件并调用 OCR 的最小化处理器部署在同服务器的/var/www/webhook/目录?php // /var/www/webhook/index.php $secret your-webhook-secret-from-cloudreve-backend; // 与 Cloudreve 后台设置一致 $payload file_get_contents(php://input); $signature $_SERVER[HTTP_X_CLOUDREVE_SIGNATURE] ?? ; // 验证签名 $expected hash_hmac(sha256, $payload, $secret); if (!hash_equals($expected, $signature)) { http_response_code(401); exit(Unauthorized); } $data json_decode($payload, true); if (json_last_error() ! JSON_ERROR_NONE) { http_response_code(400); exit(Invalid JSON); } // 只处理 PDF 文件的 OCR if ($data[mime_type] application/pdf !empty($data[path])) { $filePath /var/www/cloudreve/storage/app . $data[path]; if (file_exists($filePath)) { // 调用本地 OCR 工具如 tesseract $cmd sprintf(tesseract %s stdout -l chi_simeng 2/dev/null, escapeshellarg($filePath)); $text shell_exec($cmd); // 存入 Elasticsearch此处简化为写日志 error_log(sprintf([OCR] File %s extracted %d chars: %s, $data[path], strlen($text), substr($text, 0, 100)), 3, /var/log/cloudreve-ocr.log); // 发送企业微信通知 $wxUrl https://qyapi.weixin.qq.com/cgi-bin/webhook/send?keyyour-webhook-key; $msg [ msgtype text, text [ content 新上传 PDF 已 OCR{$data[path]}\n\n摘要.substr(strip_tags($text), 0, 80).... ] ]; file_get_contents($wxUrl, false, stream_context_create([ http [ method POST, header Content-type: application/json\r\n, content json_encode($msg) ] ])); } } http_response_code(200); echo OK;部署要点将此脚本设为 Web 服务器可访问Nginx 配置location /webhook { alias /var/www/webhook; }tesseract需提前安装sudo apt install tesseract-ocr libtesseract-dev并测试tesseract --list-langs确认chi_sim中文语言包存在日志路径/var/log/cloudreve-ocr.log需www-data可写sudo touch /var/log/cloudreve-ocr.log sudo chown www-data:www-data /var/log/cloudreve-ocr.log。6.3 审计留痕用 Webhook MySQL 实现操作日志全记录Cloudreve 自带日志只记录错误不记录业务操作。我们用 Webhook 补齐这一环-- 创建审计表 CREATE TABLE cloudreve_audit_log ( id bigint unsigned NOT NULL AUTO_INCREMENT, event_type varchar(32) NOT NULL COMMENT file.uploaded, share.created, etc, user_id int unsigned DEFAULT NULL, target_id varchar(64) DEFAULT NULL COMMENT file_id or share_id, ip_address varchar(45) DEFAULT NULL, created_at timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (id), KEY idx_event_user (event_type,user_id) ) ENGINEInnoDB DEFAULT CHARSETutf8mb4;在 Webhook 处理器中插入记录// 接上文在验证签名后添加 $pdo new PDO(mysql:host127.0.0.1;dbnamecloudreve, cloudreve_user, your_password); $stmt $pdo-prepare(INSERT INTO cloudreve_audit_log (event_type, user_id, target_id, ip_address) VALUES (?, ?, ?, ?)); $stmt-execute([$data[event], $data[user_id] ?? null, $data[file_id] ?? $data[share_id] ?? null, $_SERVER[REMOTE_ADDR]]);这样所有关键操作都有迹可循满足等保 2.0 对「操作可审计」的要求。我坚持把 Webhook 当作 Cloudreve 的「神经末梢」——它不改变核心逻辑却让这个 PHP 网盘真正活了起来上传是起点不是终点。每次看到律所同事在企业微信里点开 OCR 提取的案情摘要我就觉得选对工具比写十行代码都重要。希望帮到你。本文还有配套的精品资源点击获取
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

【Agent】Claude Code Desktop 接入阿里 Token Plan 保姆级教程:用 CC Switch 把 Base URL 改到 TaoToken 2026/10/2 15:05:48

【Agent】Claude Code Desktop 接入阿里 Token Plan 保姆级教程:用 CC Switch 把 Base URL 改到 TaoToken

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

阅读更多 →
英辰朗迪AI获客每日AI精选(2026.08.19):用TaoToken统一Key打通GEO内容生产链路 2026/10/2 15:05:48

英辰朗迪AI获客每日AI精选(2026.08.19):用TaoToken统一Key打通GEO内容生产链路

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

阅读更多 →
UltraEdit FTP 访问 Linux 报 550 RETR 失败:vsftpd 权限与被动模式排查指南(TaoToken 记录) 2026/10/2 15:05:47

UltraEdit FTP 访问 Linux 报 550 RETR 失败:vsftpd 权限与被动模式排查指南(TaoToken 记录)

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

阅读更多 →
Claude Code配置MCP全攻略:从报错排查到实战避坑 2026/10/2 15:05:46

Claude Code配置MCP全攻略:从报错排查到实战避坑

上周有个朋友跑来问我:他在终端里用Claude Code,想让AI帮他查一下本地数据库的表结构、再自动抓几个网页数据统计一下,但Claude Code每次都回一句“我没有访问数据库或浏览器的能力”。后来他知道要配MCP,结果上网翻教程&#xff…

阅读更多 →
JSP网上书店毕设实战:从环境搭建到下单事务的完整实现 2026/10/2 15:05:40

JSP网上书店毕设实战:从环境搭建到下单事务的完整实现

简介:本资源为基于JSP的网上书店系统毕业设计全套资料,面向计算机相关专业需要完成毕业设计的学生及Java Web初学者。内容涵盖从系统开发背景、运行环境选择、功能分析与模块设计,到数据库需求分析、概念结构、逻辑结构设计及结构实现的完整过…

阅读更多 →
PDMS数据库层级结构与数据一致性实战指南 2026/10/2 15:05:40

PDMS数据库层级结构与数据一致性实战指南

简介:本资源是一份面向化工、石油、制药等行业初学者与设计新人的PDMS三维工厂设计系统入门指南,聚焦核心概念、数据库逻辑与Design模块实操,帮助用户快速建立PDMS工程思维与基础操作能力。文档为单个394KB的Word文件(.docx&#…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉