上一篇 下一篇 分享链接 返回 返回顶部

站长从零搭建 Debian 服务器:网站部署、安全加固与运维全流程

发布人:慈云数据-客服中心 发布时间:7小时前 阅读量:0

Debian 部署完整教程|适合站长

对于站长来说,服务器系统的选择直接影响网站的稳定性、安全性、运维成本以及后续扩展能力。Debian 作为 Linux 发行版中的经典代表,以稳定、安全、轻量、软件源丰富著称,非常适合用于部署网站、博客、论坛、API 服务、数据库服务以及各类后台系统。

本文将从服务器准备、Debian 安装、基础安全配置、Web 环境部署、站点发布、SSL 证书配置、性能优化、备份与日常维护等方面,完整讲解 Debian 部署流程。无论你是个人站长,还是准备搭建生产环境服务器,都可以按照本文步骤逐步完成。


一、为什么站长适合选择 Debian?

Debian 是很多服务器环境的首选系统之一,主要优势包括:

1. 稳定性强

Debian 的软件包更新策略偏保守,正式版发布前会经过充分测试。因此相比一些更新频繁的系统,Debian 更适合长期运行的网站服务器。

2. 安全性高

Debian 拥有完善的安全更新机制,官方会及时发布安全补丁。只要站长保持系统更新,就能有效降低被攻击风险。

3. 资源占用低

Debian 默认安装较为精简,不会附带大量不必要的软件,非常适合云服务器、VPS、独立服务器等环境。

4. 软件生态成熟

Nginx、Apache、PHP、MariaDB、MySQL、Redis、Docker、Node.js 等常用服务都可以在 Debian 上顺利部署。

5. 文档丰富,社区活跃

Debian 使用历史悠久,遇到问题时,通常可以通过官方文档、社区论坛或搜索引擎找到解决方案。


二、部署前准备工作

在正式安装 Debian 之前,站长需要准备以下内容。

1. 一台服务器

可以选择以下任意一种:

  • 云服务器,例如阿里云、腾讯云、华为云、AWS、Vultr、Hetzner 等;
  • VPS 主机;
  • 独立服务器;
  • 本地物理机或虚拟机。

如果是网站生产环境,建议最低配置如下:

项目 建议配置
CPU 1 核及以上
内存 1GB 起步,推荐 2GB 以上
硬盘 20GB 起步,推荐 SSD
带宽 根据访问量选择
系统 Debian 12 或 Debian 11

如果网站访问量较大,建议选择 2 核 4GB 或更高配置。

2. 一个域名

站长部署网站通常需要绑定域名。你需要提前购买域名,并完成解析。

常见解析记录:

类型 主机记录 记录值
A @ 服务器 IPv4 地址
A www 服务器 IPv4 地址
AAAA @ 服务器 IPv6 地址
CNAME www 主域名或 CDN 地址

如果服务器在中国大陆,还需要根据相关规定完成备案。

3. SSH 工具

Windows 用户可以使用:

  • Windows Terminal;
  • PuTTY;
  • Xshell;
  • MobaXterm。

macOS 和 Linux 用户可以直接使用终端。

连接服务器命令如下:

ssh root@服务器IP

例如:

ssh root@123.123.123.123

三、安装 Debian 系统

如果你购买的是云服务器,通常可以在控制台直接选择 Debian 镜像安装。建议选择:

  • Debian 12 Bookworm;
  • Debian 11 Bullseye。

对于大多数新站长,推荐使用 Debian 12,因为它的软件版本更新,安全支持周期较长。

1. 云服务器安装方式

在云服务商控制台中:

  1. 创建云服务器;
  2. 镜像选择 Debian;
  3. 设置 root 密码或 SSH 密钥;
  4. 开放必要端口;
  5. 启动服务器。

常用端口包括:

端口 用途
22 SSH 远程连接
80 HTTP 网站访问
443 HTTPS 网站访问
3306 MySQL/MariaDB,通常不建议公网开放
6379 Redis,禁止公网开放

2. 本地安装方式

如果是在物理机或虚拟机中安装 Debian,可以到 Debian 官网下载 ISO 镜像:

https://www.debian.org/

安装过程中建议:

  • 选择最小化安装;
  • 不安装桌面环境;
  • 勾选 SSH server;
  • 分区可以使用自动分区;
  • 设置强密码。

服务器环境不建议安装图形界面,因为图形界面会占用额外资源,并增加安全风险。


四、首次登录后的基础配置

安装完成后,使用 SSH 登录服务器。

ssh root@服务器IP

登录成功后,先检查系统版本:

cat /etc/os-release

查看内核版本:

uname -a

查看磁盘空间:

df -h

查看内存:

free -h

五、更新系统软件包

新服务器上线后,第一件事就是更新软件包。

apt update
apt upgrade -y

如果涉及内核升级,建议重启服务器:

reboot

重启后重新 SSH 登录。

为了方便后续操作,可以安装常用工具:

apt install -y curl wget vim nano sudo unzip zip git htop net-tools lsof ca-certificates gnupg

这些工具的作用如下:

工具 作用
curl/wget 下载文件、测试接口
vim/nano 编辑文本
sudo 普通用户提权
unzip/zip 解压与压缩
git 拉取代码
htop 查看进程与资源
net-tools 查看网络信息
lsof 查看端口占用

六、创建普通用户并禁止 root 直接登录

生产环境中,不建议长期使用 root 用户登录服务器。更安全的做法是创建普通用户,并通过 sudo 执行管理命令。

1. 创建用户

以创建用户 webadmin 为例:

adduser webadmin

按照提示设置密码。

2. 添加 sudo 权限

usermod -aG sudo webadmin

测试切换用户:

su - webadmin
sudo whoami

如果输出:

root

说明 sudo 权限配置成功。

3. 配置 SSH 登录安全

编辑 SSH 配置文件:

sudo vim /etc/ssh/sshd_config

建议修改以下配置:

PermitRootLogin no
PasswordAuthentication yes
Port 22

如果你已经配置 SSH 密钥登录,可以将密码登录关闭:

PasswordAuthentication no

修改后重启 SSH 服务:

sudo systemctl restart ssh

注意:修改 SSH 配置前,不要关闭当前连接窗口。建议另开一个终端测试能否成功登录,避免把自己锁在服务器外面。


七、配置防火墙

Debian 可以使用 ufw 管理防火墙,操作简单,适合站长使用。

安装 UFW:

sudo apt install -y ufw

允许 SSH:

sudo ufw allow 22/tcp

允许 HTTP 和 HTTPS:

sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

启用防火墙:

sudo ufw enable

查看状态:

sudo ufw status

如果你修改了 SSH 端口,例如改为 2222,则需要允许新端口:

sudo ufw allow 2222/tcp

并确认新端口可用后,再删除旧端口规则。


八、安装 Nginx Web 服务器

Nginx 是站长最常用的 Web 服务器之一,性能好、资源占用低,非常适合部署静态网站、反向代理、PHP 站点等。

安装 Nginx:

sudo apt install -y nginx

启动并设置开机自启:

sudo systemctl start nginx
sudo systemctl enable nginx

查看状态:

sudo systemctl status nginx

在浏览器访问:

http://服务器IP

如果能看到 Nginx 默认欢迎页面,说明安装成功。

Nginx 默认网站目录一般为:

/var/www/html

默认配置文件通常位于:

/etc/nginx/sites-available/default

九、部署静态网站

如果你的网站是纯 HTML、CSS、JavaScript,可以直接部署到 Nginx 目录。

1. 创建站点目录

假设域名为 example.com

sudo mkdir -p /var/www/example.com

设置权限:

sudo chown -R www-data:www-data /var/www/example.com
sudo chmod -R 755 /var/www/example.com

2. 创建测试页面

sudo vim /var/www/example.com/index.html

写入:




    
    我的 Debian 网站


    

Debian 部署成功

这是一个运行在 Debian + Nginx 上的网站。

3. 创建 Nginx 站点配置

sudo vim /etc/nginx/sites-available/example.com

写入:

server {
    listen 80;
    server_name example.com www.example.com;

    root /var/www/example.com;
    index index.html index.htm;

    access_log /var/log/nginx/example.com.access.log;
    error_log /var/log/nginx/example.com.error.log;

    location / {
        try_files $uri $uri/ =404;
    }
}

启用站点:

sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/

测试配置:

sudo nginx -t

重新加载 Nginx:

sudo systemctl reload nginx

访问域名即可看到网站页面。


十、安装 PHP 环境

如果你要部署 WordPress、Typecho、Discuz、Laravel 等程序,通常需要 PHP 环境。

安装 PHP-FPM 和常用扩展:

sudo apt install -y php php-fpm php-mysql php-curl php-gd php-mbstring php-xml php-zip php-intl php-bcmath

查看 PHP 版本:

php -v

查看 PHP-FPM 服务:

systemctl status php*-fpm

Debian 12 默认 PHP 版本通常为 PHP 8.2。

配置 Nginx 支持 PHP

创建站点配置:

sudo vim /etc/nginx/sites-available/php-example.com

示例配置:

server {
    listen 80;
    server_name php-example.com www.php-example.com;

    root /var/www/php-example.com;
    index index.php index.html index.htm;

    access_log /var/log/nginx/php-example.com.access.log;
    error_log /var/log/nginx/php-example.com.error.log;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php8.2-fpm.sock;
    }

    location ~ /\.ht {
        deny all;
    }
}

如果你的 PHP 版本不是 8.2,需要将 php8.2-fpm.sock 改成实际版本。可以使用下面命令查看:

ls /run/php/

创建网站目录:

sudo mkdir -p /var/www/php-example.com
sudo chown -R www-data:www-data /var/www/php-example.com

创建测试文件:

sudo vim /var/www/php-example.com/index.php

写入:

启用站点并重载 Nginx:

sudo ln -s /etc/nginx/sites-available/php-example.com /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx

访问域名,如果看到 PHP 信息页面,说明 PHP 环境部署成功。

上线后建议删除 phpinfo() 页面,避免泄露服务器信息。


十一、安装 MariaDB 数据库

很多网站程序需要数据库。Debian 上常用 MariaDB,它与 MySQL 高度兼容。

安装 MariaDB:

sudo apt install -y mariadb-server mariadb-client

启动并设置开机自启:

sudo systemctl enable mariadb
sudo systemctl start mariadb

执行安全初始化:

sudo mysql_secure_installation

按照提示设置:

  • 设置 root 密码;
  • 移除匿名用户;
  • 禁止 root 远程登录;
  • 删除测试数据库;
  • 刷新权限表。

登录数据库:

sudo mysql

创建数据库和用户:

CREATE DATABASE site_db DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'site_user'@'localhost' IDENTIFIED BY '强密码';
GRANT ALL PRIVILEGES ON site_db.* TO 'site_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;

站长部署网站程序时,可以填写:

数据库名:site_db
数据库用户:site_user
数据库密码:你设置的强密码
数据库主机:localhost

十二、部署 WordPress 示例

WordPress 是站长最常见的网站程序之一。下面以 Debian + Nginx + PHP + MariaDB 部署 WordPress 为例。

进入网站目录:

cd /var/www/example.com

下载 WordPress:

sudo wget https://wordpress.org/latest.tar.gz
sudo tar -zxvf latest.tar.gz
sudo mv wordpress/* .
sudo rm -rf wordpress latest.tar.gz

设置权限:

sudo chown -R www-data:www-data /var/www/example.com
sudo find /var/www/example.com -type d -exec chmod 755 {} \;
sudo find /var/www/example.com -type f -exec chmod 644 {} \;

Nginx 配置示例:

server {
    listen 80;
    server_name example.com www.example.com;

    root /var/www/example.com;
    index index.php index.html index.htm;

    access_log /var/log/nginx/example.com.access.log;
    error_log /var/log/nginx/example.com.error.log;

    client_max_body_size 64M;

    location / {
        try_files $uri $uri/ /index.php?$args;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php8.2-fpm.sock;
    }

    location ~ /\.ht {
        deny all;
    }
}

测试并重载:

sudo nginx -t
sudo systemctl reload nginx

然后访问:

http://example.com

根据页面提示填写数据库信息,即可完成 WordPress 初始化。


十三、配置 HTTPS SSL 证书

HTTPS 已经是现代网站的基本要求。可以使用 Let’s Encrypt 免费证书。

安装 Certbot:

sudo apt install -y certbot python3-certbot-nginx

申请证书:

sudo certbot --nginx -d example.com -d www.example.com

根据提示选择是否强制跳转 HTTPS。建议选择自动跳转。

申请成功后,Certbot 会自动修改 Nginx 配置,并配置证书续期任务。

测试自动续期:

sudo certbot renew --dry-run

查看证书:

sudo certbot certificates

Let’s Encrypt 证书有效期为 90 天,但 Certbot 会自动续期。站长只需要确保服务器 80 和 443 端口正常开放即可。


十四、常用安全加固措施

网站上线后,安全配置非常重要。以下措施建议站长尽量完成。

1. 使用强密码

服务器、数据库、后台管理账号都应使用强密码。强密码建议包含:

  • 大写字母;
  • 小写字母;
  • 数字;
  • 特殊符号;
  • 长度不少于 12 位。

2. 修改 SSH 默认端口

编辑配置文件:

sudo vim /etc/ssh/sshd_config

将端口改为例如:

Port 2222

放行防火墙:

sudo ufw allow 2222/tcp

重启 SSH:

sudo systemctl restart ssh

确认新端口可登录后,再关闭旧端口。

3. 安装 Fail2ban

Fail2ban 可以自动封禁暴力破解 IP。

sudo apt install -y fail2ban

复制配置文件:

sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

启动服务:

sudo systemctl enable fail2ban
sudo systemctl start fail2ban

查看状态:

sudo fail2ban-client status

4. 隐藏 Nginx 版本信息

编辑 Nginx 配置:

sudo vim /etc/nginx/nginx.conf

http 模块中加入:

server_tokens off;

测试并重载:

sudo nginx -t
sudo systemctl reload nginx

5. 数据库禁止公网访问

检查 MariaDB 监听地址:

sudo ss -lntp | grep 3306

如果只监听本地 127.0.0.1,通常是安全的。不要在云服务器安全组中开放 3306 给公网,除非你非常清楚风险并已做好访问控制。


十五、性能优化建议

对于站长来说,服务器性能不仅影响访问速度,也会影响 SEO 和用户体验。

1. 开启 Gzip 压缩

编辑 Nginx 配置:

sudo vim /etc/nginx/nginx.conf

http 模块中配置:

gzip on;
gzip_comp_level 5;
gzip_min_length 1024;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript image/svg+xml;

重载 Nginx:

sudo nginx -t
sudo systemctl reload nginx

2. 配置静态资源缓存

在站点配置中加入:

location ~* \.(jpg|jpeg|png|gif|ico|css|js|webp|svg|woff|woff2)$ {
    expires 30d;
    access_log off;
}

这样可以减少重复请求,提高访问速度。

3. 调整 PHP 上传限制

编辑 PHP 配置文件:

sudo vim /etc/php/8.2/fpm/php.ini

修改:

upload_max_filesize = 64M
post_max_size = 64M
memory_limit = 256M
max_execution_time = 300

重启 PHP-FPM:

sudo systemctl restart php8.2-fpm

4. 使用 CDN

如果网站面向全国或全球用户,建议使用 CDN。CDN 可以:

  • 加速静态资源访问;
  • 减轻源站压力;
  • 隐藏源站 IP;
  • 抵御部分恶意流量。

常见 CDN 服务包括 Cloudflare、阿里云 CDN、腾讯云 CDN、百度云加速等。


十六、备份策略

很多站长忽视备份,直到网站数据丢失才后悔。生产环境一定要建立备份机制。

1. 备份网站文件

例如备份 /var/www/example.com

sudo tar -zcvf /backup/example.com-files-$(date +%F).tar.gz /var/www/example.com

2. 备份数据库

mysqldump -u site_user -p site_db > /backup/site_db-$(date +%F).sql

3. 自动备份脚本

创建备份目录:

sudo mkdir -p /backup

创建脚本:

sudo vim /usr/local/bin/backup-site.sh

写入:

#!/bin/bash

DATE=$(date +%F)
WEB_DIR="/var/www/example.com"
BACKUP_DIR="/backup"
DB_NAME="site_db"
DB_USER="site_user"
DB_PASS="数据库密码"

tar -zcf $BACKUP_DIR/example.com-files-$DATE.tar.gz $WEB_DIR
mysqldump -u$DB_USER -p$DB_PASS $DB_NAME > $BACKUP_DIR/site_db-$DATE.sql

find $BACKUP_DIR -type f -mtime +7 -delete

添加执行权限:

sudo chmod +x /usr/local/bin/backup-site.sh

设置定时任务:

sudo crontab -e

加入:

0 3 * * * /usr/local/bin/backup-site.sh

表示每天凌晨 3 点自动备份,并删除 7 天前的旧备份。

更安全的做法是将备份同步到对象存储、另一台服务器或云盘,不要只保存在本机。


十七、日志查看与问题排查

站长日常维护中,经常需要查看日志。

1. 查看 Nginx 日志

访问日志:

sudo tail -f /var/log/nginx/access.log

错误日志:

sudo tail -f /var/log/nginx/error.log

指定站点日志:

sudo tail -f /var/log/nginx/example.com.error.log

2. 查看 PHP-FPM 日志

sudo journalctl -u php8.2-fpm

3. 查看 MariaDB 状态

sudo systemctl status mariadb

查看数据库日志:

sudo journalctl -u mariadb

4. 查看端口占用

sudo ss -lntp

或:

sudo lsof -i:80

5. 查看服务器负载

htop

如果服务器负载过高,可以检查:

  • 是否有异常进程;
  • 是否遭遇恶意爬虫;
  • 是否数据库查询过慢;
  • 是否 PHP 插件占用过多资源;
  • 是否需要升级配置或使用缓存。

十八、常见问题解决

1. 域名无法访问

可能原因:

  • 域名 DNS 未解析;
  • 解析未生效;
  • 服务器安全组未开放 80/443;
  • UFW 防火墙未放行;
  • Nginx 配置错误;
  • 网站目录权限错误。

可以依次检查:

ping example.com
sudo ufw status
sudo nginx -t
sudo systemctl status nginx

2. HTTPS 证书申请失败

常见原因:

  • 域名没有解析到当前服务器;
  • 80 端口没有开放;
  • Nginx 配置冲突;
  • CDN 开启了代理导致验证失败。

建议先确保:

http://example.com

可以正常访问,再申请证书。

3. PHP 页面下载而不是执行

说明 Nginx 没有正确转发 PHP 到 PHP-FPM。检查配置中是否包含:

location ~ \.php$ {
    include snippets/fastcgi-php.conf;
    fastcgi_pass unix:/run/php/php8.2-fpm.sock;
}

并确认 PHP-FPM socket 路径正确:

ls /run/php/

4. WordPress 无法上传文件

可能是权限或 PHP 上传限制问题。

检查权限:

sudo chown -R www-data:www-data /var/www/example.com

检查 PHP 配置:

upload_max_filesize
post_max_size

修改后重启 PHP-FPM。

5. 数据库连接失败

检查:

  • 数据库名是否正确;
  • 用户名和密码是否正确;
  • 数据库用户权限是否正确;
  • MariaDB 是否正在运行。

命令:

sudo systemctl status mariadb
mysql -u site_user -p

十九、站长上线前检查清单

网站正式上线前,建议按照下面清单检查:

  • [ ] Debian 系统已更新;
  • [ ] 已创建普通用户;
  • [ ] root 远程登录已禁用;
  • [ ] 防火墙已开放必要端口;
  • [ ] Nginx 正常运行;
  • [ ] PHP-FPM 正常运行;
  • [ ] MariaDB 正常运行;
  • [ ] 域名解析正确;
  • [ ] HTTPS 证书已配置;
  • [ ] 网站目录权限正确;
  • [ ] 已删除测试文件,例如 phpinfo()
  • [ ] 已配置备份;
  • [ ] 已安装 Fail2ban;
  • [ ] 数据库未向公网开放;
  • [ ] 网站后台密码足够安全;
  • [ ] CDN 或缓存策略已规划。

二十、日常维护建议

Debian 服务器部署完成后,并不代表工作结束。站长还需要做好长期维护。

1. 定期更新系统

sudo apt update
sudo apt upgrade -y

建议每周或每月执行一次。

2. 定期检查磁盘空间

df -h

如果磁盘占用过高,重点检查:

  • 日志文件;
  • 备份文件;
  • 上传文件;
  • 数据库文件;
  • 缓存目录。

3. 定期检查 SSL 证书

sudo certbot certificates

确保证书没有过期。

4. 定期检查备份可用性

备份不是只生成文件就可以,必须定期测试恢复流程。否则真正出现故障时,可能发现备份不可用。

5. 监控网站状态

可以使用:

  • UptimeRobot;
  • Better Stack;
  • 云服务商监控;
  • Prometheus + Grafana;
  • 自建监控脚本。

至少要监控:

  • 网站是否在线;
  • CPU 使用率;
  • 内存使用率;
  • 磁盘空间;
  • HTTPS 证书过期时间。

结语

Debian 是非常适合站长使用的服务器系统。它稳定、轻量、安全,适合部署从个人博客到中小型商业网站的各种服务。通过本文的步骤,你可以完成从 Debian 初始化、安全加固、Nginx 安装、PHP 和数据库配置、网站部署、HTTPS 证书申请,到备份与日常维护的一整套流程。

对于新手站长来说,建议先从 Debian + Nginx + PHP + MariaDB 这一经典组合开始,熟悉服务器基础操作后,再逐步尝试 Docker、Redis、对象存储、CDN、负载均衡等更高级的方案。

最后提醒一句:服务器部署最重要的不是“能跑起来”,而是“长期稳定、安全地跑下去”。做好更新、备份、安全和监控,才是一个合格站长真正需要掌握的核心能力。

目录结构
全文