GEO 源码部署搭建详细操作教程(2026 最新版)
2026/4/22 20:46:14 网站建设 项目流程

本教程以云罗 GEO 3.0 / 抖去推 GEO(主流 GEO 优化系统)为例,提供从环境准备到生产上线的完整部署流程,包含Docker 容器化部署(推荐)和宝塔面板快速部署两种方案,兼顾新手与企业级需求。


一、部署前准备

1.1 硬件配置要求

表格

环境类型CPU内存硬盘网络备注
测试环境2 核4GB20GB SSD100Mbps最低配置,仅用于功能测试
生产环境4 核 +8GB+50GB+ SSD1Gbps推荐配置,支持高并发访问
大规模部署8 核 +16GB+100GB+ SSD 阵列10Gbps适配大数据量与高并发场景
1.2 软件环境要求

表格

组件版本要求用途
操作系统CentOS 7/8、Ubuntu 20.04+/24.04 LTS推荐 Linux 系统,兼容性更优
Docker20.10+容器化部署核心工具
Docker Compose2.10+多容器编排管理
Git2.30+源码拉取工具
MySQL8.0+主数据库(存储业务数据)
Redis6.2+缓存数据库(支持 GEO 数据类型)
Nginx1.21+反向代理与负载均衡
1.3 必备资源
  1. 服务器(公网 IP,开放 80/443/3306/6379 端口)
  2. 已备案域名(生产环境必需)
  3. GEO 源码包(官方授权获取)
  4. HTTPS 证书(Let's Encrypt 免费证书或商业证书)

二、Docker 容器化部署方案(推荐)

2.1 安装 Docker 与 Docker Compose

bash

运行

# 1. 安装依赖 sudo yum install -y yum-utils device-mapper-persistent-data lvm2 # CentOS sudo apt update && sudo apt install -y apt-transport-https ca-certificates curl software-properties-common # Ubuntu # 2. 添加Docker源 curl -fsSL https://download.docker.com/linux/centos/docker-ce.repo | sudo tee /etc/yum.repos.d/docker-ce.repo # CentOS curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/docker.gpg # Ubuntu sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" # Ubuntu # 3. 安装Docker sudo yum install -y docker-ce docker-ce-cli containerd.io # CentOS sudo apt install -y docker-ce docker-ce-cli containerd.io # Ubuntu # 4. 启动Docker并设置开机自启 sudo systemctl start docker sudo systemctl enable docker # 5. 安装Docker Compose sudo curl -L "https://github.com/docker/compose/releases/download/v2.24.5/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose # 6. 验证安装 docker --version docker-compose --version
2.2 拉取 GEO 源码与配置文件

bash

运行

# 1. 创建项目目录 mkdir -p /data/geo && cd /data/geo # 2. 克隆源码(替换为实际仓库地址) git clone https://github.com/yunluogeo/geo-core-3.0.git . # 3. 复制配置文件模板 cp .env.example .env cp docker-compose.example.yml docker-compose.yml
2.3 配置系统参数(关键步骤)
  1. 修改.env 文件(核心配置):

    bash

    运行

    vi .env

    ini

    # 基础配置 APP_NAME=YunLuoGeo APP_ENV=production # 生产环境设为production,测试环境设为local APP_KEY=base64:your_application_key # 执行php artisan key:generate生成 APP_DEBUG=false # 生产环境设为false APP_URL=https://yourdomain.com # 替换为你的域名 # 数据库配置 DB_CONNECTION=mysql DB_HOST=mysql DB_PORT=3306 DB_DATABASE=yunluogeo DB_USERNAME=geo_user DB_PASSWORD=your_secure_password # 自定义强密码 # Redis配置 REDIS_HOST=redis REDIS_PASSWORD=null REDIS_PORT=6379 # GEO核心配置 GEO_API_KEY=your_geo_api_key # 官方授权密钥 GEO_MAX_DISTANCE=100 # 最大搜索距离(公里) GEO_DEFAULT_RADIUS=5 # 默认搜索半径(公里)
  2. 修改 docker-compose.yml

    bash

    运行

    vi docker-compose.yml

    yaml

    version: '3.8' services: web: build: . ports: - "80:80" - "443:443" volumes: - ./nginx/ssl:/etc/nginx/ssl # 挂载HTTPS证书 - ./storage:/var/www/html/storage depends_on: - mysql - redis restart: always mysql: image: mysql:8.0 volumes: - ./mysql/data:/var/lib/mysql - ./mysql/conf:/etc/mysql/conf.d environment: MYSQL_ROOT_PASSWORD: your_root_password MYSQL_DATABASE: yunluogeo MYSQL_USER: geo_user MYSQL_PASSWORD: your_secure_password restart: always redis: image: redis:6.2-alpine volumes: - ./redis/data:/data command: redis-server --appendonly yes restart: always
2.4 部署 HTTPS 证书

bash

运行

# 1. 创建证书目录 mkdir -p /data/geo/nginx/ssl # 2. 复制证书文件(替换为你的证书路径) cp /path/to/your/cert.pem /data/geo/nginx/ssl/ cp /path/to/your/key.pem /data/geo/nginx/ssl/ # 3. 或使用Let's Encrypt生成免费证书 sudo apt install -y certbot # Ubuntu sudo yum install -y certbot # CentOS certbot certonly --standalone -d yourdomain.com cp /etc/letsencrypt/live/yourdomain.com/fullchain.pem /data/geo/nginx/ssl/cert.pem cp /etc/letsencrypt/live/yourdomain.com/privkey.pem /data/geo/nginx/ssl/key.pem
2.5 启动服务与初始化系统

bash

运行

# 1. 构建并启动容器 docker-compose up -d --build # 2. 验证容器状态(确保所有服务为Up状态) docker-compose ps # 3. 进入Web容器执行初始化 docker-compose exec web bash # 4. 生成应用密钥 php artisan key:generate # 5. 数据库迁移(创建表结构) php artisan migrate --seed # 6. 导入初始数据(行业关键词库、GeoIP数据库) php artisan db:seed --class=GeoSeed php artisan geo:import:geoip php artisan geo:import:keywords # 7. 清除缓存 php artisan cache:clear php artisan config:clear php artisan route:clear # 8. 退出容器 exit
2.6 访问系统与验证功能
  1. 打开浏览器访问:https://yourdomain.com
  2. 输入管理员账号密码(默认 admin/admin123,建议立即修改)
  3. 验证核心功能:
    • 位置搜索测试
    • 数据导入导出
    • API 接口调用测试(https://yourdomain.com/api/geo/search?lat=39.90&lng=116.40&radius=5

三、宝塔面板快速部署方案(适合新手)

3.1 安装宝塔面板

bash

运行

# CentOS系统 yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh # Ubuntu/Debian系统 wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh

安装完成后,记录面板地址、用户名和密码。

3.2 配置服务器环境
  1. 登录宝塔面板,安装 LNMP 环境:

    • Nginx 1.21+
    • MySQL 8.0+
    • PHP 8.1+(需安装 fileinfo、redis 扩展)
    • Redis 6.2+
  2. 开放端口:在面板安全设置中开放 80、443、3306、6379 端口

3.3 上传源码与配置站点
  1. 新建站点

    • 域名:填写已备案域名
    • 数据库:创建 MySQL 数据库(记录账号密码)
    • PHP 版本:选择 8.1+
  2. 上传源码

    • 将 GEO 源码包上传到站点根目录
    • 解压源码,设置运行目录为public
  3. 配置伪静态:选择 ThinkPHP 规则并保存

3.4 系统安装与初始化
  1. 访问域名进入安装向导
  2. 填写数据库信息(宝塔创建的数据库账号密码)
  3. 设置管理员账号密码(建议强密码)
  4. 完成 GeoIP 地域数据库、关键词库导入
  5. 登录系统,验证功能正常

四、生产环境优化与安全加固

4.1 性能优化
  1. 数据库优化

    • 开启 MySQL 慢查询日志,优化 SQL 语句
    • 为地理位置字段添加空间索引
    • 配置 MySQL 主从复制,实现读写分离
  2. Redis 优化

    • 设置最大内存策略(maxmemory-policy allkeys-lru
    • 开启持久化(RDB+AOF 混合模式)
    • 配置连接池参数,提升并发性能
  3. Nginx 优化

    • 开启 gzip 压缩
    • 配置缓存策略
    • 启用 HTTP/2 协议
4.2 安全加固
  1. 修改默认端口

    • MySQL 端口改为非 3306
    • Redis 端口改为非 6379,并设置密码
  2. 权限控制

    • 限制数据库用户仅能访问指定数据库
    • 设置网站目录权限为 755,文件权限为 644
    • 禁用 PHP 危险函数(exec、system 等)
  3. 数据备份

    • 配置定时备份脚本,每日备份数据库
    • 备份文件异地存储
    • 定期测试恢复流程

五、常见问题与避坑指南

  1. 编译错误undefined reference to xxx

    • 原因:依赖库版本不兼容
    • 解决:核对 GEO 源码文档中的依赖版本要求,重新安装对应版本的库
  2. 连接数据库失败

    • 原因:数据库配置错误、网络不通、权限问题
    • 解决:
      • 检查.env 文件中的数据库配置
      • 确保数据库容器正常运行
      • 验证数据库用户权限
  3. GEO 搜索功能异常

    • 原因:GeoIP 数据库未导入、Redis 未启用 GEO 功能
    • 解决:
      • 执行php artisan geo:import:geoip导入 GeoIP 数据库
      • 确保 Redis 版本≥6.2,且配置正确
  4. 性能问题

    • 原因:服务器配置不足、缓存未启用、SQL 语句未优化
    • 解决:
      • 升级服务器配置
      • 启用 Redis 缓存
      • 优化慢查询 SQL 语句

六、总结与下一步

本教程提供了两种主流的 GEO 源码部署方案,Docker 容器化部署适合企业级生产环境,宝塔面板部署适合新手快速上手。部署完成后,建议:

  1. 进行全面的功能测试和压力测试
  2. 配置监控系统(如 Prometheus+Grafana),实时监控服务状态
  3. 定期更新系统和依赖库,修复安全漏洞
  4. 参考官方文档,深入学习 GEO 系统的高级功能和 API 接口

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询