官网下载中心搭建步骤|文件上传下载权限设置

发布时间:2026-07-19 11:25

# 前言介绍

在企业数字化转型过程中,官网下载中心是一个高频使用的功能模块。无论是产品手册、软件安装包、技术文档还是营销素材,都需要一个集中管理、权限可控的下载平台。很多企业初期只是将文件直接放在服务器目录下,或者使用网盘链接,这种方式不仅管理混乱,而且无法控制谁可以下载、谁可以上传,容易造成敏感文件泄露或服务器资源被滥用。

本教程将手把手教你从零搭建一个功能完整的官网下载中心,重点解决文件上传与下载的权限控制问题。整个搭建过程基于常见的Web服务器环境(Nginx + PHP),使用开源的FileGator文件管理器作为核心工具,无需开发基础,按照步骤操作即可完成。

# 前置准备

在开始搭建之前,请确保你已经具备以下条件:

1. **一台云服务器或虚拟主机**:建议使用Linux系统(CentOS 7/8 或 Ubuntu 20.04/22.04),服务器配置至少1核2G内存,硬盘空间根据文件存储需求选择,建议至少20GB。

2. **域名**:一个已解析到服务器IP的域名,例如 download.yourcompany.com。

3. **SSH客户端**:推荐使用Xshell、Putty或Termius(Mac用户),用于远程连接服务器。

4. **Web环境**:服务器上已安装Nginx + PHP 7.4以上版本 + MySQL/MariaDB(非必需,但推荐用于用户管理)。如果未安装,本教程会提供安装命令。

5. **FileGator安装包**:从官网 https://filegator.io 下载最新版本,或者使用wget命令直接下载到服务器。

6. **基础Linux命令知识**:了解cd、ls、chmod、vim等基础命令用法。

# 分步操作步骤

## 第一步:安装Web运行环境

1. 使用SSH客户端连接到服务器,输入以下命令更新系统包:

```

sudo apt update && sudo apt upgrade -y # Ubuntu/Debian系统

sudo yum update -y # CentOS/RHEL系统

```

2. 安装Nginx Web服务器:

```

sudo apt install nginx -y # Ubuntu/Debian

sudo yum install nginx -y # CentOS

```

3. 启动Nginx并设置开机自启:

```

sudo systemctl start nginx

sudo systemctl enable nginx

```

4. 安装PHP及必要扩展(FileGator需要PHP 7.4+,推荐PHP 8.1):

```

sudo apt install php8.1-fpm php8.1-mysql php8.1-xml php8.1-mbstring php8.1-zip php8.1-curl -y # Ubuntu添加PHP源后执行

```

如果是CentOS系统,先安装EPEL和Remi源:

```

sudo yum install epel-release -y

sudo yum install https://rpms.remirepo.net/enterprise/remi-release-7.rpm -y # CentOS 7

sudo yum install https://rpms.remirepo.net/enterprise/remi-release-8.rpm -y # CentOS 8

sudo yum module reset php -y

sudo yum module enable php:remi-8.1 -y

sudo yum install php php-fpm php-mysqlnd php-xml php-mbstring php-zip php-curl -y

```

5. 启动PHP-FPM并设置开机自启:

```

sudo systemctl start php8.1-fpm # Ubuntu

sudo systemctl start php-fpm # CentOS

sudo systemctl enable php8.1-fpm # Ubuntu

sudo systemctl enable php-fpm # CentOS

```

6. 验证PHP是否安装成功,创建一个测试文件:

```

echo "" | sudo tee /var/www/html/info.php

```

然后在浏览器访问 http://你的服务器IP/info.php,如果看到PHP信息页面,说明环境安装成功。测试完成后删除该文件:

```

sudo rm /var/www/html/info.php

```

## 第二步:下载并部署FileGator

1. 进入Web根目录(通常为/var/www/html):

```

cd /var/www/html

```

2. 下载FileGator最新版本(建议从GitHub获取):

```

sudo wget https://github.com/filegator/filegator/releases/latest/download/filegator.zip

```

3. 解压安装包:

```

sudo unzip filegator.zip -d filegator

```

4. 设置目录权限,确保Web服务器有写入权限:

```

sudo chown -R www-data:www-data /var/www/html/filegator # Ubuntu/Debian

sudo chown -R nginx:nginx /var/www/html/filegator # CentOS/RHEL

sudo chmod -R 755 /var/www/html/filegator

sudo chmod -R 775 /var/www/html/filegator/private # 私有目录需要可写

sudo chmod -R 775 /var/www/html/filegator/repository # 文件存储目录需要可写

```

5. 进入FileGator目录,复制配置文件:

```

cd /var/www/html/filegator

sudo cp configuration.php.example configuration.php

```

6. 编辑配置文件,设置基本参数:

```

sudo vim configuration.php

```

找到以下配置项并修改:

- `'app_name' => '官网下载中心'` // 修改为你想要的站点名称

- `'app_timezone' => 'Asia/Shanghai'` // 设置时区

- `'language' => 'zh-CN'` // 设置语言为中文

- `'frontend_config' => ['app_name' => '官网下载中心', 'upload' => false]` // 默认关闭前端上传功能,后续权限控制会开启

保存并退出(vim中按Esc,输入:wq回车)。

## 第三步:配置Nginx虚拟主机

1. 创建Nginx站点配置文件:

```

sudo vim /etc/nginx/sites-available/download.yourcompany.com # Ubuntu

sudo vim /etc/nginx/conf.d/download.yourcompany.com.conf # CentOS

```

2. 写入以下配置内容(将域名替换为你自己的域名,路径根据实际调整):

```nginx

server {

listen 80;

server_name download.yourcompany.com;

root /var/www/html/filegator;

index index.php index.html;

# 设置上传文件大小限制(根据需求调整,这里设置为200MB)

client_max_body_size 200M;

location / {

try_files $uri $uri/ /index.php?$query_string;

}

location ~ \.php$ {

include snippets/fastcgi-php.conf; # Ubuntu路径

# include fastcgi.conf; # CentOS用这个

fastcgi_pass unix:/var/run/php/php8.1-fpm.sock; # Ubuntu

# fastcgi_pass unix:/var/run/php-fpm/www.sock; # CentOS用这个

}

# 禁止访问私有目录

location ~ /(private|repository) {

internal;

}

# 缓存静态资源

location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {

expires 30d;

add_header Cache-Control "public, no-transform";

}

}

```

3. 启用站点配置(Ubuntu需要创建软链接):

```

sudo ln -s /etc/nginx/sites-available/download.yourcompany.com /etc/nginx/sites-enabled/ # Ubuntu

```

4. 测试配置是否正确:

```

sudo nginx -t

```

5. 如果测试通过,重启Nginx:

```

sudo systemctl restart nginx

```

6. 配置防火墙,开放80端口(如果启用了防火墙):

```

sudo ufw allow 80/tcp # Ubuntu

sudo firewall-cmd --permanent --add-port=80/tcp # CentOS

sudo firewall-cmd --reload

```

## 第四步:初始化FileGator并创建管理员账号

1. 在浏览器中访问 http://download.yourcompany.com,你会看到FileGator的安装向导页面。

2. 页面会检测服务器环境是否满足要求,确保所有绿色勾号都显示通过。如果有红色叉号,根据提示安装缺失的PHP扩展或修改权限。

3. 点击“下一步”进入数据库配置。FileGator支持SQLite和MySQL。对于小规模使用,选择SQLite即可(无需额外配置数据库)。如果需要多用户管理,建议选择MySQL:

- 选择“MySQL”后,填写数据库主机(通常为localhost)、数据库名、用户名和密码。

- 如果你还没有创建MySQL数据库,先登录MySQL创建:

```

sudo mysql -u root -p

CREATE DATABASE filegator;

CREATE USER 'filegator_user'@'localhost' IDENTIFIED BY '你的密码';

GRANT ALL PRIVILEGES ON filegator.* TO 'filegator_user'@'localhost';

FLUSH PRIVILEGES;

EXIT;

```

4. 点击“下一步”创建管理员账号:

- 用户名:admin(建议修改为其他名称)

- 密码:设置一个强密码(至少8位,包含大小写字母和数字)

- 邮箱:填写管理员邮箱

5. 点击“安装”完成初始化。安装成功后,系统会提示删除安装目录:

```

sudo rm -rf /var/www/html/filegator/installation

```

6. 使用刚才创建的管理员账号登录后台。

## 第五步:配置文件上传与下载权限

1. 登录后台后,点击左侧菜单“用户管理”,你会看到默认的管理员账号。FileGator的权限体系分为三个角色:

- **管理员**:拥有所有权限,包括上传、下载、删除、管理用户

- **用户**:可以上传和下载文件,但不能管理其他用户

- **访客**:只能下载公开文件,不能上传

2. **创建普通用户(用于上传文件的人员)**:

- 点击“添加用户”

- 用户名:例如“uploader01”

- 密码:设置独立密码

- 角色:选择“用户”

- 点击“保存”

3. **配置访客下载权限**:

- 点击左侧菜单“设置”

- 找到“访客权限”部分

- 勾选“允许访客下载文件” - 这样未登录用户也能下载文件

- 取消勾选“允许访客上传文件” - 防止匿名上传

- 点击“保存设置”

4. **设置文件目录权限**:

- 点击左侧菜单“文件管理”

- 你会看到默认的根目录“/”

- 点击目录右侧的“权限”图标(锁形图标)

- 在弹出的窗口中,你可以为每个目录单独设置权限:

- **公开下载**:勾选后,该目录下的文件所有访客都可以下载

- **需要登录**:勾选后,只有登录用户才能下载

- **允许上传**:勾选后,该目录允许用户上传文件

- 例如,创建一个“产品手册”目录,设置为“公开下载”和“允许上传”,这样上传者可以上传文件,所有访客可以下载

5. **配置上传文件类型限制**:

- 在“设置”页面中,找到“文件上传”部分

- 在“允许的文件类型”输入框中,填写允许上传的扩展名,用逗号分隔,例如:pdf,doc,docx,xls,xlsx,zip,rar,exe,msi

- 在“最大文件大小”输入框中,填写允许上传的最大值,例如200MB

- 点击“保存设置”

6. **配置下载限速(防止服务器带宽被占满)**:

- 在Nginx配置中增加限速设置,编辑站点配置文件:

```

sudo vim /etc/nginx/sites-available/download.yourcompany.com

```

- 在server块中添加以下内容:

```nginx

# 限制每个IP的下载速度为500KB/s

limit_rate 500k;

# 限制每个IP的连接数为5

limit_conn addr 5;

```

- 保存后重启Nginx:

```

sudo systemctl restart nginx

```

## 第六步:测试上传与下载功能

1. **测试文件上传**:

- 使用普通用户账号(例如uploader01)登录下载中心

- 进入你之前设置好的可上传目录(例如“产品手册”)

- 点击页面右上角的“上传”按钮

- 选择文件,点击“开始上传”

- 上传成功后,文件会显示在目录列表中

2. **测试文件下载**:

- 退出登录,以访客身份访问下载中心

- 进入“产品手册”目录

- 点击文件旁边的“下载”按钮

- 如果配置正确,文件应该开始下载,且下载速度受到限速配置的限制

3. **测试权限控制**:

- 创建一个新目录,设置为“需要登录”

- 以访客身份访问该目录,应该看不到文件列表或无法下载

- 登录后再次访问,应该可以正常下载

4. **测试文件删除权限**:

- 以普通用户身份登录,尝试删除其他用户上传的文件

- 默认情况下,普通用户只能删除自己上传的文件

- 管理员可以删除所有文件

# 常见问题

**问题1:上传文件时提示“413 Request Entity Too Large”**

原因:Nginx默认上传大小限制为1MB。

解决方法:按照第三步中的配置,在Nginx站点配置中添加 `client_max_body_size 200M;`,然后重启Nginx。

**问题2:访问下载中心显示503或空白页**

原因:PHP-FPM服务未运行或Nginx与PHP通信配置错误。

解决方法:检查PHP-FPM状态 `sudo systemctl status php8.1-fpm`,确认sock文件路径是否正确。在Nginx配置中,fastcgi_pass的路径必须与PHP-FPM的实际监听路径一致。

**问题3:文件上传后无法在目录中看到**

原因:文件存储目录权限不足,或者PHP用户无法写入。

解决方法:检查repository目录权限 `ls -la /var/www/html/filegator/repository`,确保所有者是www-data(Ubuntu)或nginx(CentOS)。如果权限不对,执行 `sudo chown -R www-data:www-data /var/www/html/filegator/repository`。

**问题4:访客可以下载但无法看到文件列表**

原因:FileGator默认隐藏文件列表,只提供直接下载链接。

解决方法:在后台“设置”中,找到“访客权限”,勾选“允许访客查看文件列表”。或者在前端模板中修改显示逻辑。

**问题5:下载速度太慢或太快**

原因:Nginx限速配置不准确,或者未生效。

解决方法:检查Nginx配置中limit_rate指令是否在正确的上下文中。如果限速未生效,尝试在location块中添加 `limit_rate 500k;`。注意,限速是对每个连接生效,如果用户使用多线程下载工具,实际速度会叠加。

**问题6:忘记管理员密码**

解决方法:通过数据库重置。如果使用SQLite,数据库文件在 `/var/www/html/filegator/private/filegator.sqlite`。使用SQLite客户端连接后,执行 `UPDATE users SET password = '$2y$10$...' WHERE username = 'admin';` 其中密码哈希值需要通过PHP的password_hash函数生成。更简单的方法是重新安装FileGator(注意备份文件),或者通过配置文件中的密码重置功能(如果有)。

**问题7:上传的文件名包含中文导致乱码**

原因:服务器区域设置或PHP编码问题。

解决方法:在FileGator的configuration.php中设置 `'app_charset' => 'UTF-8'`,并确保服务器系统语言为UTF-8。上传前在客户端将文件名转换为UTF-8编码。

# 收尾总结

通过以上六个步骤,你已经成功搭建了一个功能完整的官网下载中心,并实现了文件上传与下载的精细化权限控制。整个系统基于FileGator开源项目,具有以下核心能力:

- **角色权限体系**:管理员、普通用户、访客三级权限,每个角色可独立配置上传、下载、查看、删除等操作。

- **目录级权限控制**:可以为每个文件夹单独设置公开下载、需要登录、允许上传等权限,灵活应对不同业务场景。

- **上传限制**:支持文件类型白名单、文件大小上限、上传频率控制,防止服务器被恶意上传占用。

- **下载保护**:支持下载限速、连接数限制、私有目录隐藏,有效保护服务器带宽和文件安全。

- **多用户管理**:可以创建多个上传账号,每个账号只能管理自己的文件,管理员可以全局管控。

后续你可以根据业务需求进一步扩展:集成LDAP/AD用户认证、对接CDN加速下载、添加文件版本管理、实现文件预览功能(PDF/图片/视频在线查看)等。定期检查服务器日志和文件存储空间,及时清理过期文件,确保下载中心长期稳定运行。