如果你想做一个类似百度文库的文档分享与在线阅读平台,让用户可以上传文件、在线阅读、分类管理、搜索文档、下载或付费查看,那么 魔豆文库 是一个非常成熟的开源方案。
它的特点是:
✅ 支持多格式文档
✅ 支持在线阅读(PDF/Word/PPT 等转码)
✅ 支持分类、标签、搜索
✅ 支持上传、浏览、收藏、评论
✅ 支持权限、积分、付费阅读
✅ 适合个人站长、资料站、团队文档库、教育分享平台
今天就教你用一台云服务器,从零搭建魔豆文库网站。
✅ 一、准备服务器
示例使用 莱卡云服务器

系统:Ubuntu 或 Debian
CPU:2 核以上
内存:2GB 起(建议 4GB 用来处理文档转换)
硬盘:20GB 以上(文件越多越占容量)
带宽:普通网页访问即可
上述为经验配置,不构成效果承诺,实际以文档存储量与访客数量为准。
更新服务器:
sudo apt update && sudo apt -y upgrade
安装 Docker:
curl -fsSL https://get.docker.com | bash sudo usermod -aG docker $USER
安装 Docker Compose:
sudo apt -y install docker-compose
重新登录使 docker 权限生效。
✅ 二、准备目录结构
mkdir -p /srv/modoc/{app,db,compose,files} cd /srv/modoc/compose
:存源码(前后端)
app
:存 MySQL 数据
db
:存用户上传的文档与转换后的预览文件
files
✅ 三、上传魔豆文库源码
将魔豆文库前后端上传到:
/srv/modoc/app
通常包含:
后端(PHP 或 Java)
前端(网站页面)
文档转换组件(LibreOffice、转换脚本)
✅ 四、Docker Compose 一键部署
创建 :
docker-compose.yml
version: "3.9" services: db: image: mariadb:11 container_name: modoc-db restart: unless-stopped environment: MYSQL_DATABASE: modoc MYSQL_USER: modoc MYSQL_PASSWORD: change_me_strong MYSQL_ROOT_PASSWORD: change_me_root command: ["--character-set-server=utf8mb4","--collation-server=utf8mb4_unicode_ci"] volumes: - ../db:/var/lib/mysql php: image: php:8.2-fpm container_name: modoc-php restart: unless-stopped working_dir: /var/www/html volumes: - ../app:/var/www/html depends_on: - db command: > bash -lc " apt-get update && apt-get install -y libzip-dev libpng-dev libonig-dev libicu-dev libmagickwand-dev libreoffice ghostscript poppler-utils git unzip && docker-php-ext-configure intl && docker-php-ext-install pdo_mysql zip gd mbstring intl && php-fpm " nginx: image: nginx:1.27 container_name: modoc-nginx restart: unless-stopped ports: - "80:80" volumes: - ../app:/var/www/html - ./nginx.conf:/etc/nginx/conf.d/default.conf depends_on: - php
创建 :
nginx.conf
server { listen 80; server_name _; root /var/www/html/public; index index.php index.html; client_max_body_size 100m; location / { try_files $uri $uri/ /index.php?$query_string; } location ~ .php$ { include fastcgi_params; fastcgi_pass modoc-php:9000; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } }
启动容器:
docker compose up -d docker compose ps
✅ 五、安装依赖 & 初始化数据库
进入 PHP 容器安装 Composer:
docker exec -it modoc-php bash php -r "copy('https://getcomposer.org/installer','composer-setup.php');" php composer-setup.php --install-dir=/usr/local/bin --filename=composer composer install --no-dev -o exit
修改 :
.env
DB_CONNECTION=mysql DB_HOST=db DB_PORT=3306 DB_DATABASE=modoc DB_USERNAME=modoc DB_PASSWORD=change_me_strong APP_URL=http://你的服务器IP STORAGE_PATH=/var/www/html/storage
初始化数据库表:
docker exec -it modoc-php php artisan migrate --force
浏览器访问:
http://服务器IP
即可看到首页与后台初始化界面。
✅ 六、功能与运营建议
部署成功后,你可以:
✅ 上传文档(PDF、Word、PPT、TXT…)
✅ 自动转换成在线可阅读格式
✅ 文档分类、搜索、标签
✅ 用户上传(可设置权限)
✅ 下载/试看/积分/付费内容
✅ 支持广告、积分兑换、收藏、阅读历史
✅ 管理员后台监控文档与用户行为
适用于:
教育资料分享站
技术文库
网盘式公开资源库
企业/团队内部文档系统
资料付费站
✅ 七、绑定域名 & HTTPS
安装 Nginx(上面已装),只需配置域名:
server { listen 80; server_name yourdomain.com; location / { proxy_pass http://127.0.0.1:80; } }
签发证书后,开启 HTTPS 更安全。
✅ 八、备份与迁移
备份目录:
/srv/modoc/app /srv/modoc/db /srv/modoc/files
迁移方式:
tar -zcvf modoc-backup.tar.gz /srv/modoc
在新服务器解压后:
docker compose up -d
原站点可完美恢复,文档不丢失。
✅ 九、常见问题排查
| 问题 | 原因 | 解决方案 |
|---|---|---|
| 文档无法预览 | 缺少 LibreOffice / Ghostscript | 检查依赖是否正确安装 |
| 图片/预览不加载 | 权限或 Nginx 配置 | 给 可写权限 |
| 上传失败 | body 大小限制 | 修改 |
| 页面空白 | 缺扩展或 错误 |
查看容器日志排查 |
✅ 为什么推荐使用莱卡云服务器?
稳定在线,不会因家庭宽带断电导致不可用
文档访问速度稳定,适合多人查看
数据盘可扩容,文档越多越能撑住
支持快照,一键备份、迁移
以上为合理推荐说明,不构成效果承诺,最终体验请以实际业务与配置测试为准。
✅ 总结
现在你已经拥有:
✅ 一个在线文库系统
✅ 支持多种文档格式在线阅读
✅ 支持分类、搜索、权限、操作日志
✅ 支持用户上传、收藏、下载
✅ 可扩展积分、付费内容、流量变现


