> For AI agents: the complete documentation index is available at https://docs.vps.town/llms.txt, the full documentation bundle is available at https://docs.vps.town/llms-full.txt.

:::tip 温馨提示

本文由用户 `xiaoqingnian-` 撰写，并已加入 `VPS.Town 优秀原创文章激励计划`，本站享有完整版权，未经允许不得转载。

本文已通过 [VPS.Town 社区文章投稿及奖励规则 (试行稿)](https://docs.vps.town/kb/community.md) 审核，并获得 `--` 奖励。

:::

:::details 📖 本文目录

[](#准备工作)[](#第一步创建项目目录)[](#第二步创建-docker-compose-配置文件)[](#第三步启动服务)[](#第四步配置-nginx-反向代理)[](#第五步完成兰空图床初始设置)[](#1-打开浏览器访问你的域名)[](#2-数据库配置--管理员配置页面)[](#3-安装完成)[](#恭喜你)[](#常见问题解决)[](#安装过程中断或出错)[](#上传图片失败)
:::

# 新人专用：兰空图床安装配置手册

看到有人在某坛问兰空图床的问题，意识到虽然有官方文档和社区加持，但可能仍然有一些细节存在坑点，导致安装不成功。最近入了 VPS.Town 的 A2 大盘鸡，刚好要再装一次，便分享一份安装指南，回馈社区。

本指南适用于在 VPS.Town 服务器(Debian 系统) 上使用 Docker 安装兰空图床，并通过宿主机上的 Nginx 进行访问。整个过程分为 5 个简单步骤，即使是没有接触过的新人同学也可以很快上手，轻松完成。

## 准备工作

**需要的环境：**

- Debian 系统（确保你能正确使用 `SSH / VNC` 登入）
- Docke 已安装
- Nginx 已安装在宿主机
- 准备一个已经完成好 DNS 解析的域名 (例如：`img.domain.com`)

**确认 Docker 是否正常：**

```bash
# 在终端输入以下命令
Docker version
# 如果显示版本号，说明Docker已安装
```

> 未安装的话，可参考以下命令快速安装

**Docker 安装**

1. 更新系统包列表

```bash
sudo apt update
sudo apt upgrade -y
```

2. 安装必要的依赖

```bash
sudo apt install -y apt-transport-https ca-certificates curl gnupg lsb-release
```

3. 添加 Docker 官方 GPG 密钥

```bash
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
```

4. 添加 Docker 仓库

```bash
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
```

5. 安装 Docker Engine

```bash
sudo apt install -y docker-ce docker-ce-cli containerd.io
```

6. 验证

```bash
docker version
```

**确认 Nginx 是否正常：**

```bash
# 在终端输入以下命令
nginx -v
# 如果显示版本号，说明Nginx已安装
```

> 如未安装，可 Refer [nginx 安装手册](https://docs.vps.town/guide/how-to-install-nginx-vps-town.md)

## 第一步：创建项目目录

如果你没有修改挂载目录的话 ，那么你可以直接照着做就可以。建议把 Docker 数据放数据盘，不占用系统盘容量，当然如果你进行了扩容且够用的话当我没说。

**先查看挂载目录**

```bash
df -h
```

![df-h](/assets/images/c187b4412ff5/df-h.png)
可以看到数据盘是在 `/home` 路径

**然后我们来创建项目目录**

```bash
# 创建项目目录
mkdir -p /home/Docker/lsky-pro
cd /home/Docker/lsky-pro

# 创建数据目录
mkdir -p ./mysql  # MySQL数据存储
mkdir -p ./lsky   # Lsky数据存储
```

## 第二步：创建 Docker Compose 配置文件

```bash
# 在项目目录中创建Docker-compose.yml文件
nano Docker-compose.yml
```

复制以下内容到编辑器中：

```yaml
version: "3"

services:
  mysql:
    image: mysql:8.0
    container_name: lsky_mysql
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: mysql_password # 请修改为强密码
      MYSQL_DATABASE: lsky # 数据库名称
      MYSQL_USER: lsky # 数据库用户名
      MYSQL_PASSWORD: lsky_password # 请修改为强密码
    volumes:
      - ./mysql:/var/lib/mysql
    networks:
      - lsky_network
    healthcheck:
      test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-u", "root", "-p$$MYSQL_ROOT_PASSWORD"]
      interval: 5s
      timeout: 5s
      retries: 5

  lsky:
    image: halcyonazure/lsky-pro-Docker:latest
    container_name: lskypro
    restart: always
    ports:
      - "127.0.0.1:8089:8089" # 只监听本地接口，增加安全性
    volumes:
      - ./lsky:/var/www/html/storage
    depends_on:
      mysql:
        condition: service_healthy
    networks:
      - lsky_network

networks:
  lsky_network:
    driver: bridge
```

:::tip 重要提示
请将示例中的 `mysql_password` 和 `lsky_password` 修改为你自己的强密码
:::

按 `Ctrl+O` 保存文件，然后按 `Enter` 确认，最后按 `Ctrl+X` 退出编辑器。

## 第三步：启动服务

```bash
# 在/home/Docker/lsky-pro目录中运行
cd /home/Docker/lsky-pro
Docker compose up -d
```

这条命令会启动 MySQL 和兰空图床两个容器，`-d` 表示在后台运行。

**检查服务是否正常运行：**

```bash
Docker ps
```

![Docker-ps](/assets/images/c187b4412ff5/docker-ps.png)
你应该看到两个容器都处于 `Up` 状态，说明启动成功。

## 第四步：配置 Nginx 反向代理

```bash
# 创建Nginx配置文件
nano /etc/nginx/conf.d/lsky.conf
```

复制以下内容到编辑器中（包含注释）：

```bash
server {
    listen 80;                          # 监听80端口
    server_name img.example.com;        # [修改] 将这里改为你的域名

    # 日志文件位置
    access_log /var/log/nginx/lsky.access.log;
    error_log /var/log/nginx/lsky.error.log;

    location / {
        proxy_pass http://127.0.0.1:8089;      # 转发请求到兰空图床服务

        # 设置HTTP请求头
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;

        # 上传文件大小限制和超时设置
        client_max_body_size 100m;             # 允许上传的最大文件大小
        proxy_connect_timeout 120;             # 连接超时时间
        proxy_send_timeout 120;                # 发送超时时间
        proxy_read_timeout 120;                # 读取超时时间
    }
}
```

:::tip 重要提示
请将 `img.example.com` 替换为你自己的域名
:::

按 `Ctrl+O` 保存文件，然后按 `Enter` 确认，最后按 `Ctrl+X` 退出编辑器。
然后重新加载 Nginx 配置：

```bash
# 检查Nginx配置是否有错误
nginx -t

# 重新加载Nginx配置
nginx -s reload
```

## 第五步：完成兰空图床初始设置

### 1. 打开浏览器，访问你的域名

例如：`http://img.example.com`（替换为你自己的域名）
以上配置正确的话，会进入到兰空图床安装程序，请点击下一步
展示如下：
![step-1](/assets/images/c187b4412ff5/lsky-step-1.png)

### 2. 数据库配置 & 管理员配置页面

![step-2](/assets/images/c187b4412ff5/lsky-step-2.png)
填写以下信息：

| 配置项     | 填写内容            | 注意事项                       |
| ------- | --------------- | -------------------------- |
| 数据库地址   | `lsky_mysql`    | 这里填写容器名称，不要填写 127.0.0.1    |
| 数据库端口   | `3306`          | 保持默认                       |
| 数据库名称   | `lsky`          | 与`Docker-compose.yml`中设置一致 |
| 数据库用户名  | `lsky`          | 与`Docker-compose.yml`中设置一致 |
| 数据库用户密码 | `lsky_password` | 与`Docker-compose.yml`中设置一致 |

:::warning 注意

- 数据库地址必须填写 `lsky_mysql` (容器名称)，而不是 localhost 或 127.0.0.1
- 确保密码与 Docker-compose.yml 中设置的一致

:::

点击【立即安装】，等待安装完成。

### 3. 安装完成

安装成功后，系统会自动跳转到登录页面。使用刚才设置的管理员账号和密码登录系统。

## 恭喜你

现在你已经成功安装了兰空图床！你可以开始使用它来管理和分享你的图片了。

但仍然有一些安全策略需要进行，如为你的网站添加 https ，控制并发请求数，设置合理的访问控制和防火墙策略等。另外还有一些兰空图床的具体玩法，如设置用户组，设置不同的存储策略（ e.g oss 存储,sftp ），邮件配置等等，这里也都不逐一展开了。

祝你玩的愉快， Have Fun!

## 常见问题解决

### 安装过程中断或出错

如果安装过程中断或出错，可以重置数据库后重新开始：

```bash
# 停止所有服务
cd /home/Docker/lsky-pro
Docker compose down

# 删除MySQL数据目录 再重新创建
rm -rf ./mysql && mkdir ./mysql

# 重新启动服务
Docker compose up -d
```

然后重新访问你的域名，再次进行安装。

### 上传图片失败

如果上传图片失败，可能是权限问题，执行：

```bash
# 修复上传目录权限
Docker exec -it lsky-pro chown -R www-data:www-data /var/www/html/storage/app/uploads
```
