report-detect/archive/docs/WSL_INSTALLATION_GUIDE.md

5.2 KiB
Raw Permalink Blame History

WSL环境安装指南 - RabbitMQ和OCR依赖

快速安装命令

方法1: 一键安装 (推荐)

在PowerShell或CMD中执行:

# 打开WSL并安装
wsl -d Ubuntu-22.04 -- bash -c "sudo apt-get update && sudo apt-get install -y erlang-nox rabbitmq-server && sudo service rabbitmq-server start"

方法2: 分步安装

步骤1: 打开WSL终端

# PowerShell
wsl -d Ubuntu-22.04

# 或在CMD
wsl -d Ubuntu-22.04

步骤2: 更新软件包列表

sudo apt-get update

步骤3: 安装Erlang (RabbitMQ依赖)

sudo apt-get install -y erlang-nox erlang-dev

步骤4: 安装RabbitMQ

sudo apt-get install -y rabbitmq-server

步骤5: 启动RabbitMQ服务

sudo service rabbitmq-server start

步骤6: 验证安装

# 检查RabbitMQ状态
sudo rabbitmqctl status

# 查看队列列表
sudo rabbitmqctl list_queues

步骤7: 安装Python依赖

# 安装Python包管理器
sudo apt-get install -y python3-pip

# 安装必要的Python包
pip3 install flask pika requests

验证安装

运行验证脚本:

# 在项目目录下
bash verify_installation.sh

或手动验证:

# 1. 检查Erlang
erl -version

# 2. 检查RabbitMQ
rabbitmq-server --version

# 3. 检查服务状态
sudo service rabbitmq-server status

# 4. 检查Python依赖
python3 -c "import flask, pika, requests; print('All dependencies OK')"

RabbitMQ配置

默认配置

  • 主机: localhost
  • 端口: 5672 (AMQP)
  • 管理端口: 15672 (Web UI)
  • 默认用户: guest
  • 默认密码: guest

启用管理插件 (可选)

sudo rabbitmq-plugins enable rabbitmq_management
sudo service rabbitmq-server restart

访问管理界面: http://localhost:15672 (guest/guest)

创建新用户 (可选)

# 创建用户
sudo rabbitmqctl add_user ocr_user ocr_password

# 设置为管理员
sudo rabbitmqctl set_user_tags ocr_user administrator

# 设置权限
sudo rabbitmqctl set_permissions -p / ocr_user ".*" ".*" ".*"

常用命令

RabbitMQ服务管理

# 启动
sudo service rabbitmq-server start

# 停止
sudo service rabbitmq-server stop

# 重启
sudo service rabbitmq-server restart

# 查看状态
sudo service rabbitmq-server status

队列管理

# 列出所有队列
sudo rabbitmqctl list_queues

# 列出所有交换机
sudo rabbitmqctl list_exchanges

# 列出所有绑定
sudo rabbitmqctl list_bindings

# 清空队列
sudo rabbitmqctl purge_queue queue_name

用户管理

# 列出用户
sudo rabbitmqctl list_users

# 添加用户
sudo rabbitmqctl add_user username password

# 删除用户
sudo rabbitmqctl delete_user username

# 修改密码
sudo rabbitmqctl change_password username newpass

启动OCR服务

安装完成后在WSL中启动OCR服务:

1. 进入项目目录

cd /mnt/c/Users/WIN10/Desktop/work/26th-week/report-detect-backend

2. 启动Flask API

cd python_api
python3 ocr_api_server.py

3. 启动RabbitMQ消费者 (新终端)

cd /mnt/c/Users/WIN10/Desktop/work/26th-week/report-detect-backend/python_api

# 设置环境变量
export FLASK_HOST=127.0.0.1
export FLASK_PORT=8081
export RABBITMQ_HOST=localhost
export RABBITMQ_PORT=5672

# 启动消费者
python3 ocr_task_consumer.py

4. 在Windows中启动Java应用

# PowerShell
mvn clean package
java -jar target/report-detect-backend-1.0.0.jar

故障排查

RabbitMQ无法启动

# 查看日志
sudo cat /var/log/rabbitmq/rabbit@hostname.log

# 检查Erlang版本兼容性
erl -version

连接被拒绝

# 检查RabbitMQ是否运行
sudo service rabbitmq-server status

# 检查端口是否被占用
sudo netstat -tlnp | grep 5672

Python导入错误

# 重新安装依赖
pip3 install --upgrade flask pika requests

WSL网络问题

如果WSL无法访问Windows服务:

# 检查Windows IP
cat /etc/resolv.conf | grep nameserver

# 测试连接
ping -c 3 $(cat /etc/resolv.conf | grep nameserver | awk '{print $2}')

开机自启动

设置RabbitMQ开机自启

# 方法1: 使用systemd
sudo systemctl enable rabbitmq-server

# 方法2: 使用sysvinit
sudo update-rc.d rabbitmq-server defaults

设置Flask和消费者开机自启

创建systemd服务文件:

sudo nano /etc/systemd/system/ocr-flask.service

内容:

[Unit]
Description=OCR Flask API
After=network.target rabbitmq-server.service

[Service]
Type=simple
User=your_username
WorkingDirectory=/mnt/c/Users/WIN10/Desktop/work/26th-week/report-detect-backend/ocr-resources
ExecStart=/usr/bin/python3 ocr_api_server.py
Restart=on-failure

[Install]
WantedBy=multi-user.target

启用服务:

sudo systemctl daemon-reload
sudo systemctl enable ocr-flask
sudo systemctl start ocr-flask

性能优化

RabbitMQ内存限制

编辑 /etc/rabbitmq/rabbitmq.conf:

vm_memory_high_watermark.relative = 0.6
vm_memory_high_watermark_paging_ratio = 0.75

文件描述符限制

# 检查当前限制
ulimit -n

# 增加限制
echo "* soft nofile 65536" | sudo tee -a /etc/security/limits.conf
echo "* hard nofile 65536" | sudo tee -a /etc/security/limits.conf