MrDoc 文件系统部署
Docker 镜像部署MrDoc
使用 Nginx + uWSGI 部署 MrDoc
🔧 解决 cryptography 模块缺失问题
MrDoc防爬虫、复制处理探究--部分实现
本文档使用 MrDoc 发布
-
+
首页
🔧 解决 cryptography 模块缺失问题
### 1. 安装缺失的依赖 **bash** ``` # 确保在虚拟环境中 source venv/bin/activate # 安装 cryptography 模块 pip install cryptography # 或者重新安装所有依赖(推荐) pip install -r requirements.txt --force-reinstall ``` ### 2. 检查系统级依赖(如果需要) **bash** ``` # 对于 CentOS/Alibaba Cloud Linux yum install gcc libffi-devel python3-devel openssl-devel -y # 对于 Ubuntu/Debian # apt-get update && apt-get install -y build-essential libssl-dev libffi-dev python3-dev ``` ### 3. 验证安装 **bash** ``` # 测试 cryptography 模块是否能正常导入 python -c "from cryptography.fernet import Fernet; print('cryptography 模块正常')" ``` ## 🚀 完整的修复流程 **bash** ``` # 1. 进入项目目录 cd /www/wwwroot/MrDoc # 2. 激活虚拟环境 source venv/bin/activate # 3. 安装系统依赖(根据你的系统选择) yum install gcc libffi-devel python3-devel openssl-devel -y # 4. 安装 Python 依赖 pip install --upgrade pip pip install -r requirements.txt --force-reinstall # 5. 验证安装 python -c "from cryptography.fernet import Fernet; print('依赖检查通过')" # 6. 重新运行 python manage.py runserver 0.0.0.0:8000 ``` ## 📝 如果仍然有问题 ### 方案 A:使用国内镜像加速安装 **bash** ``` pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple/ --trusted-host pypi.tuna.tsinghua.edu.cn --force-reinstall ``` ### 方案 B:手动安装关键依赖 **bash** ``` # 单独安装可能出问题的包 pip install cryptography --no-cache-dir pip install pillow --no-cache-dir pip install django --no-cache-dir ``` ### 方案 C:检查 Python 版本兼容性 **bash** ``` # 检查 Python 版本 python --version # MrDoc 对 Python 3.7-3.10 支持较好 # 如果你用的是 Python 3.12,可能会有兼容性问题 ``` ## 🎯 针对你的多平台发布需求 考虑到你之前提到的多平台发布和安全需求,这里有个建议: ### 如果 MrDoc 部署持续遇到问题,可以考虑 Outline **Outline 的优势:** * 部署相对简单(Docker Compose) * 原生支持更好的 API 和分享功能 * 更适合团队协作 **快速体验 Outline:** **bash** ``` # 创建目录 mkdir -p /www/wwwroot/outline cd /www/wwwroot/outline # 下载 docker-compose 文件 curl -L https://raw.githubusercontent.com/outline/outline/develop/docker-compose.yml -o docker-compose.yml # 修改配置后启动 docker-compose up -d ``` ## 💡 下一步建议 1. **先修复 MrDoc**: **bash** ``` cd /www/wwwroot/MrDoc source venv/bin/activate pip install cryptography python manage.py runserver 0.0.0.0:8000 ``` 2. **如果 MrDoc 修复顺利**:继续使用,它确实是个不错的系统 3. **如果持续遇到问题**:考虑切换到 Outline 或其他系统 4. **多平台发布方案**: * MrDoc:通过 API 自动同步到其他平台 * Outline:原生支持更好的分享功能 **现在先尝试安装 cryptography 模块**: **bash** ``` cd /www/wwwroot/MrDoc source venv/bin/activate pip install cryptography ``` 然后再次运行 `python manage.py runserver 0.0.0.0:8000` ## 🔧 解决 Django REST framework 兼容性问题 ### 1. 安装兼容的版本组合 **bash** ``` # 确保在虚拟环境中 source venv/bin/activate # 卸载当前不兼容的版本 pip uninstall django djangorestframework -y # 安装完全兼容的版本组合 pip install "django==3.2.20" "djangorestframework==3.13.1" "django-filter==21.1" ``` ## 🎯 启动服务器后,连接报错500 当前状态分析 * ✅ Django 服务已启动 * ⚠️ 有 73 个未应用的数据库迁移 * ❌ 访问页面时出现 500 错误 ## 🔧 解决步骤 ### 1. 先应用数据库迁移 **不要停止当前服务**,新开一个终端窗口执行: **bash** ``` # 在新终端中执行 cd /www/wwwroot/MrDoc source venv/bin/activate # 应用所有数据库迁移 python manage.py migrate # 输出应该显示所有迁移被成功应用 ``` ### 2. 检查 500 错误的详细原因 在当前运行服务的终端中,你应该能看到详细的错误信息。常见的 500 错误原因: #### 可能的原因和解决方案: **A. 静态文件问题** **bash** ``` # 在新终端中重新收集静态文件 python manage.py collectstatic --noinput ``` **B. 数据库表缺失** **bash** ``` # 确保迁移完全应用 python manage.py makemigrations python manage.py migrate ``` **C. 管理员账号未创建** **bash** ``` # 创建管理员账号(如果还没创建) python manage.py createsuperuser ``` ### 3. 完整的修复流程 在新终端中执行: **bash** ``` cd /www/wwwroot/MrDoc source venv/bin/activate # 1. 应用所有迁移 echo "应用数据库迁移..." python manage.py migrate # 2. 重新收集静态文件 echo "收集静态文件..." python manage.py collectstatic --noinput # 3. 检查是否有其他问题 echo "检查系统..." python manage.py check # 4. 如果还没有管理员,创建管理员 echo "如果需要,创建管理员账号..." python manage.py createsuperuser ``` ## 🚀 一键修复脚本 **bash** ``` cat > fix_mrdoc_final.sh << 'EOF' #!/bin/bash cd /www/wwwroot/MrDoc source venv/bin/activate echo "步骤1: 应用数据库迁移..." python manage.py migrate echo "步骤2: 收集静态文件..." python manage.py collectstatic --noinput echo "步骤3: 系统检查..." python manage.py check echo "修复完成!现在请:" echo "1. 刷新浏览器页面 http://你的服务器IP:8000" echo "2. 如果还有错误,查看运行服务的终端中的错误信息" EOF chmod +x fix_mrdoc_final.sh ./fix_mrdoc_final.sh python manage.py runserver 0.0.0.0:8000 ``` ## 📝 如果仍然有 500 错误 ### 查看详细错误日志 在运行服务的终端中,你应该能看到详细的错误堆栈信息。请把错误信息发给我,常见的可能包括: 1. **模板文件缺失** 2. **数据库连接问题** 3. **静态文件路径错误** 4. **应用配置问题** ### 快速诊断命令 **bash** ``` # 检查数据库连接 python manage.py dbshell # 检查静态文件 ls -la /www/wwwroot/MrDoc/static/ # 检查媒体文件目录 mkdir -p /www/wwwroot/MrDoc/media chmod 755 /www/wwwroot/MrDoc/media ``` ## 🎉 成功后的下一步 一旦服务正常启动,你可以: ### 1. 访问管理后台 **text** ``` http://你的服务器IP:8000/admin/ ``` ### 2. 配置生产环境 **bash** ``` # 停止开发服务器,配置生产环境 # 安装 uWSGI pip install uwsgi # 创建 uWSGI 配置文件 cat > mrdoc_uwsgi.ini << 'EOF' [uwsgi] chdir = /www/wwwroot/MrDoc module = MrDoc.wsgi:application home = /www/wwwroot/MrDoc/venv master = true processes = 4 socket = :8008 vacuum = true EOF ``` ### 3. 配置 Nginx **nginx** ``` server { listen 80; server_name 你的域名或IP; ``` location / { include uwsgi_params; uwsgi_pass 127.0.0.1:8008; } location /static/ { alias /www/wwwroot/MrDoc/static/; } ``` } ``` ## 💡 立即行动 **请先在新终端中执行迁移命令:** **bash** ``` cd /www/wwwroot/MrDoc source venv/bin/activate python manage.py migrate 然后刷新浏览器页面,看看是否还出现 500 错误。 ``` [ **数据迁移的作用和防爬虫** ](http://yang.aotu-mind.top/doc/4/) ``` ```
沧岚
2025年10月29日 23:19
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
PDF文档(打印)
分享
链接
类型
密码
更新密码