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

站长上手 Debian:从服务器初始化到网站上线全流程指南

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

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

对于站长来说,选择一套稳定、安全、可长期维护的服务器系统,是网站长期运营的基础。Debian 作为老牌 Linux 发行版,以稳定性强、软件仓库丰富、安全维护周期长、社区资料完善等特点,长期受到服务器用户和站长群体的欢迎。无论你是部署个人博客、企业官网、论坛社区,还是搭建反向代理、数据库服务、对象存储、监控系统,Debian 都是非常可靠的选择。

本文将从站长实际使用角度出发,完整介绍 Debian 服务器的部署流程,包括服务器购买后的初始化设置、SSH 安全配置、系统更新、防火墙配置、Web 环境部署、Nginx、PHP、MariaDB、SSL 证书、网站目录、权限设置、常用运维命令以及安全加固建议。适合新手站长按照步骤操作,也适合有一定基础的用户作为检查清单使用。


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

在服务器系统选择上,常见的 Linux 发行版包括 Debian、Ubuntu、CentOS、Rocky Linux、AlmaLinux 等。对于站长来说,Debian 有以下优势:

1. 稳定性优秀

Debian 的软件包通常经过较长时间测试后才会进入稳定版仓库,因此系统运行非常稳健。网站服务器最重要的不是追求最新,而是长期稳定在线。对于生产环境来说,稳定性往往比“新功能”更重要。

2. 软件仓库丰富

Debian 官方仓库提供了大量常用软件,例如:

  • Nginx
  • Apache
  • PHP
  • MariaDB
  • PostgreSQL
  • Redis
  • Fail2ban
  • Certbot
  • Docker
  • UFW
  • Supervisor

大多数常见建站组件都可以直接通过 apt 安装,维护简单,升级方便。

3. 安全维护周期较长

Debian Stable 版本拥有长期安全维护支持。对于不想频繁重装系统的站长来说,这一点非常重要。只要定期更新安全补丁,就可以保持较好的安全状态。

4. 资源占用低

相比一些预装较多组件的系统,Debian 默认环境非常干净,占用资源少,非常适合低配置 VPS。例如 1 核 1G 内存的服务器,也可以轻松运行 Nginx、PHP、MariaDB 等基础建站环境。

5. 社区资料完善

Debian 使用历史悠久,遇到问题时很容易在官方文档、论坛、博客和问答社区找到解决方案。对站长来说,排错成本较低。


二、部署前准备工作

在正式部署 Debian 之前,你需要准备以下内容。

1. 一台 VPS 或独立服务器

可以选择国内或海外云服务器,常见服务商包括:

  • 阿里云
  • 腾讯云
  • 华为云
  • AWS
  • Google Cloud
  • Vultr
  • Linode
  • Hetzner
  • DigitalOcean

如果网站面向国内用户,建议选择国内服务器并完成备案;如果网站面向海外用户,可以选择香港、日本、新加坡、美国或欧洲节点。

2. Debian 系统版本选择

建议选择 Debian Stable 版本,例如:

  • Debian 12 Bookworm
  • Debian 11 Bullseye

如果是新部署服务器,推荐选择 Debian 12。它的软件版本更新一些,同时仍然保持稳定。

3. 本地 SSH 工具

站长需要通过 SSH 登录服务器进行管理。不同系统可以使用不同工具:

  • Windows:Windows Terminal、PowerShell、PuTTY、Xshell、MobaXterm
  • macOS:系统自带终端
  • Linux:系统自带终端

连接命令一般为:

ssh root@服务器IP

例如:

ssh root@192.0.2.10

首次连接时会提示是否信任主机,输入 yes 即可。


三、首次登录服务器后的基础检查

成功登录服务器后,先检查系统信息。

cat /etc/os-release

查看内核版本:

uname -a

查看磁盘情况:

df -h

查看内存情况:

free -h

查看 CPU 信息:

lscpu

这些命令可以帮助你确认服务器配置是否与购买时一致,也方便后续排查问题。


四、更新系统软件包

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

apt update
apt upgrade -y

如果有内核更新,可以重启服务器:

reboot

重新登录后,可以清理无用软件包:

apt autoremove -y
apt autoclean

保持系统更新是最基础的安全措施之一。建议站长养成定期执行更新的习惯,尤其是安全补丁。


五、设置服务器时区

服务器默认时区可能不是中国时间。对于日志分析、程序运行、定时任务来说,正确的时区非常重要。

查看当前时间:

date

设置为上海时区:

timedatectl set-timezone Asia/Shanghai

再次查看:

date

如果你的网站主要服务海外用户,也可以根据需要设置为 UTC 或目标地区时区。


六、创建普通用户并授予 sudo 权限

很多新手站长习惯一直使用 root 用户操作服务器,这并不安全。建议创建一个普通用户,并通过 sudo 执行管理命令。

创建用户:

adduser webmaster

根据提示设置密码。

安装 sudo:

apt install sudo -y

将用户加入 sudo 组:

usermod -aG sudo webmaster

切换到新用户测试:

su - webmaster

测试 sudo 权限:

sudo whoami

如果返回:

root

说明配置成功。


七、配置 SSH 安全登录

SSH 是服务器管理入口,必须重点加固。

1. 修改 SSH 默认端口

默认 SSH 端口是 22,经常会被扫描。可以修改为其他端口,例如 22222。

编辑 SSH 配置文件:

sudo nano /etc/ssh/sshd_config

找到或添加:

Port 22222

注意:修改端口后,一定要先配置防火墙放行新端口,否则可能无法登录。

2. 禁止 root 远程登录

在同一文件中找到:

PermitRootLogin yes

修改为:

PermitRootLogin no

这样可以降低暴力破解 root 账户的风险。

3. 禁止密码登录,使用密钥登录

如果你熟悉 SSH 密钥,建议禁用密码登录。先在本地生成密钥:

ssh-keygen -t ed25519

将公钥上传到服务器:

ssh-copy-id -p 22222 webmaster@服务器IP

确认密钥登录成功后,再修改配置:

PasswordAuthentication no
PubkeyAuthentication yes

重启 SSH 服务:

sudo systemctl restart ssh

测试新端口登录:

ssh -p 22222 webmaster@服务器IP

4. 重要提醒

修改 SSH 配置时,建议保留当前连接窗口不要关闭,另开一个终端测试新配置是否可以登录。确认无误后,再关闭旧连接。这样可以避免把自己锁在服务器外面。


八、配置防火墙 UFW

UFW 是比较适合新手站长使用的防火墙工具,命令简单直观。

安装 UFW:

sudo apt install ufw -y

放行 SSH 新端口:

sudo ufw allow 22222/tcp

放行 HTTP 和 HTTPS:

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

启用防火墙:

sudo ufw enable

查看状态:

sudo ufw status

输出类似:

Status: active

To                         Action      From
--                         ------      ----
22222/tcp                  ALLOW       Anywhere
80/tcp                     ALLOW       Anywhere
443/tcp                    ALLOW       Anywhere

如果你使用数据库远程连接、面板、监控工具等,也需要按需放行对应端口。但不建议随意开放数据库端口到公网。


九、安装常用基础工具

部署网站前,可以先安装一些常用工具。

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

常用说明:

  • curl:请求测试、下载安装脚本
  • wget:下载文件
  • vim/nano:编辑文件
  • git:拉取代码
  • unzip/zip:压缩解压
  • htop:查看系统资源
  • net-tools:提供 netstat 等命令
  • lsof:查看端口占用
  • cron:定时任务
  • ca-certificates:证书相关依赖

十、部署 Nginx Web 服务器

Nginx 是当前非常常见的高性能 Web 服务器,适合部署静态网站、PHP 网站、反向代理等。

安装 Nginx:

sudo apt install nginx -y

启动服务:

sudo systemctl start nginx

设置开机自启:

sudo systemctl enable nginx

查看状态:

sudo systemctl status nginx

浏览器访问:

http://服务器IP

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


十一、配置网站目录

站长通常会为每个站点创建独立目录。假设域名是 example.com,可以创建目录:

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

创建测试页面:

sudo nano /var/www/example.com/public/index.html

写入:




    
    Example Website


    

Debian Nginx 网站部署成功

设置目录权限:

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 {} \;

其中 www-data 是 Debian 中 Nginx/PHP 常用的 Web 服务用户。


十二、配置 Nginx 虚拟主机

创建站点配置文件:

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

写入以下内容:

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

    root /var/www/example.com/public;
    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/

测试 Nginx 配置:

sudo nginx -t

如果显示:

syntax is ok
test is successful

重载 Nginx:

sudo systemctl reload nginx

然后将域名解析到服务器 IP。等待 DNS 生效后,访问:

http://example.com

即可看到网站页面。


十三、安装 PHP 环境

如果你要部署 WordPress、Typecho、Discuz、Laravel 等 PHP 程序,需要安装 PHP。

Debian 12 默认可安装 PHP 8.2:

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

查看 PHP 版本:

php -v

查看 PHP-FPM 服务:

sudo systemctl status php8.2-fpm

设置开机自启:

sudo systemctl enable php8.2-fpm

如果你的版本不是 PHP 8.2,需要根据实际版本调整服务名称,例如 php8.1-fpm


十四、配置 Nginx 支持 PHP

修改站点配置:

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

将配置改为:

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

    root /var/www/example.com/public;
    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;

    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;
    }
}

测试配置:

sudo nginx -t

重载 Nginx:

sudo systemctl reload nginx

创建 PHP 测试文件:

sudo nano /var/www/example.com/public/info.php

写入:

浏览器访问:

http://example.com/info.php

如果能看到 PHP 信息页面,说明 PHP 配置成功。

测试完成后,务必删除该文件:

sudo rm /var/www/example.com/public/info.php

因为 phpinfo() 会暴露服务器环境信息,不适合长期公开。


十五、安装 MariaDB 数据库

MariaDB 是 MySQL 的一个常用分支,兼容性好,适合多数 PHP 建站程序。

安装 MariaDB:

sudo apt install mariadb-server mariadb-client -y

启动并设置开机自启:

sudo systemctl start mariadb
sudo systemctl enable mariadb

执行安全初始化:

sudo mysql_secure_installation

根据提示操作。常见选择如下:

Switch to unix_socket authentication? n
Change the root password? y
Remove anonymous users? y
Disallow root login remotely? y
Remove test database and access to it? y
Reload privilege tables now? y

登录数据库:

sudo mysql

创建数据库和用户:

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

注意:数据库密码一定要使用强密码,避免使用简单密码、域名、生日、手机号等。


十六、申请 HTTPS SSL 证书

现在网站基本都需要 HTTPS。可以使用 Let’s Encrypt 免费证书。

安装 Certbot:

sudo apt install certbot python3-certbot-nginx -y

申请证书:

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

根据提示输入邮箱、同意协议,并选择是否将 HTTP 自动跳转到 HTTPS。

申请完成后,访问:

https://example.com

即可验证证书是否生效。

查看自动续期:

sudo certbot renew --dry-run

Let’s Encrypt 证书有效期为 90 天,Certbot 通常会自动配置续期任务。站长仍然建议定期检查证书状态,避免网站证书过期影响访问。


十七、部署 WordPress 示例

很多站长使用 Debian 部署 WordPress,这里给出一个简单流程。

进入网站目录:

cd /var/www/example.com/public

下载 WordPress:

sudo wget https://wordpress.org/latest.zip

解压:

sudo unzip latest.zip

移动文件:

sudo mv wordpress/* .

删除多余文件:

sudo rm -rf wordpress latest.zip

设置权限:

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 {} \;

然后浏览器访问:

https://example.com

根据页面提示填写数据库信息:

  • 数据库名:exampledb
  • 用户名:exampleuser
  • 密码:你设置的强密码
  • 数据库主机:localhost
  • 表前缀:建议不要使用默认 wp_,可以改为随机前缀,例如 exwp_

十八、常用网站权限建议

权限设置不当会导致网站无法访问,或者存在安全风险。一般建议:

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 {} \;

对于某些框架,例如 Laravel,需要给特定目录写权限:

sudo chown -R www-data:www-data storage bootstrap/cache
sudo chmod -R 775 storage bootstrap/cache

不建议随意使用:

chmod -R 777

777 意味着任何用户都可以读写执行,存在严重安全隐患。除非临时排查问题,否则不要用于生产环境。


十九、配置网站日志与排错

Nginx 常用日志位置:

/var/log/nginx/access.log
/var/log/nginx/error.log

如果你为站点单独配置了日志,则类似:

/var/log/nginx/example.com.access.log
/var/log/nginx/example.com.error.log

查看实时访问日志:

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

查看错误日志:

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

PHP-FPM 日志通常可通过服务状态查看:

sudo systemctl status php8.2-fpm

也可以查看相关日志目录:

ls /var/log/

常见错误包括:

1. 403 Forbidden

可能原因:

  • 网站目录权限不正确
  • Nginx root 路径写错
  • 缺少 index 文件
  • SELinux/AppArmor 或安全策略限制

2. 404 Not Found

可能原因:

  • 域名配置不匹配
  • root 路径错误
  • 文件不存在
  • 伪静态配置错误

3. 502 Bad Gateway

可能原因:

  • PHP-FPM 没有启动
  • PHP socket 路径错误
  • PHP 程序崩溃
  • 权限问题

检查 PHP-FPM:

sudo systemctl status php8.2-fpm

检查 socket:

ls /run/php/

二十、安装 Fail2ban 防止暴力破解

Fail2ban 可以监控 SSH、Nginx 等日志,对恶意 IP 自动封禁。

安装:

sudo apt install fail2ban -y

创建本地配置:

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

编辑:

sudo nano /etc/fail2ban/jail.local

找到 SSH 配置部分,确保启用:

[sshd]
enabled = true
port = 22222

启动并设置开机自启:

sudo systemctl start fail2ban
sudo systemctl enable fail2ban

查看状态:

sudo fail2ban-client status
sudo fail2ban-client status sshd

Fail2ban 对开放 SSH 的服务器非常有帮助,尤其是公网服务器每天都会遭遇大量扫描和尝试登录。


二十一、配置自动安全更新

为了减少手动维护成本,可以安装自动安全更新工具。

sudo apt install unattended-upgrades -y

启用配置:

sudo dpkg-reconfigure unattended-upgrades

选择:

Yes

查看配置文件:

sudo nano /etc/apt/apt.conf.d/50unattended-upgrades

通常默认会自动应用安全更新。对于生产环境,自动更新虽然方便,但也建议定期检查系统日志,避免极少数情况下更新影响服务。


二十二、配置 Swap 交换空间

如果你的 VPS 内存较小,例如 1GB 或 2GB,建议配置 Swap,避免内存耗尽导致服务崩溃。

查看是否已有 Swap:

swapon --show

创建 2GB Swap 文件:

sudo fallocate -l 2G /swapfile

如果 fallocate 不可用,可以使用:

sudo dd if=/dev/zero of=/swapfile bs=1M count=2048

设置权限:

sudo chmod 600 /swapfile

格式化为 Swap:

sudo mkswap /swapfile

启用:

sudo swapon /swapfile

写入开机自动挂载:

echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

查看:

free -h

对于数据库和 PHP 网站来说,Swap 可以在内存紧张时提供缓冲,但它不能替代真实内存。如果网站访问量较大,仍然应该升级服务器配置。


二十三、设置定时备份

站长必须重视备份。很多网站事故并不是黑客攻击,而是误删文件、数据库损坏、插件更新失败、服务器到期或磁盘异常。

1. 备份网站文件

创建备份目录:

sudo mkdir -p /backup

备份网站目录:

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

2. 备份数据库

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

3. 编写备份脚本

创建脚本:

sudo nano /usr/local/bin/backup-example.sh

写入:

#!/bin/bash

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

mkdir -p $BACKUP_DIR

tar -czf $BACKUP_DIR/example.com-files-$DATE.tar.gz $WEB_DIR

mysqldump -u$DB_USER -p$DB_PASS $DB_NAME > $BACKUP_DIR/exampledb-$DATE.sql

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

赋予执行权限:

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

添加定时任务:

sudo crontab -e

每天凌晨 3 点执行:

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

更推荐将备份同步到远程存储,例如另一台服务器、对象存储、云盘或 S3 兼容存储。只在本机备份是不够的,因为服务器磁盘损坏或被入侵时,本地备份也可能丢失。


二十四、站长常用运维命令

查看系统负载:

uptime

查看内存:

free -h

查看磁盘:

df -h

查看目录占用:

du -sh /var/www/*

查看端口监听:

sudo ss -tulnp

查看 Nginx 状态:

sudo systemctl status nginx

重启 Nginx:

sudo systemctl restart nginx

重载 Nginx:

sudo systemctl reload nginx

查看 PHP-FPM 状态:

sudo systemctl status php8.2-fpm

重启 PHP-FPM:

sudo systemctl restart php8.2-fpm

查看数据库状态:

sudo systemctl status mariadb

重启数据库:

sudo systemctl restart mariadb

查看最近登录记录:

last

查看失败登录:

sudo lastb

查看当前登录用户:

who

二十五、Debian 服务器安全加固建议

1. 使用强密码和密钥登录

服务器密码、数据库密码、后台密码都应该足够复杂。SSH 尽量使用密钥登录,并禁用密码登录。

2. 不要随意开放端口

开放端口越多,攻击面越大。只开放必要端口,例如:

  • SSH 自定义端口
  • 80
  • 443

数据库、Redis、面板端口尽量不要直接暴露公网。

3. 定期更新系统和程序

系统要更新,网站程序也要更新。尤其是 WordPress、插件、主题等,经常是攻击目标。

4. 做好备份

至少保留最近 7 天备份,并定期将备份存储到远程位置。备份不仅要能生成,还要定期测试能否恢复。

5. 限制上传目录执行权限

对于 PHP 网站,上传目录如果允许执行 PHP 文件,会有较大风险。可以在 Nginx 中限制 uploads 目录执行 PHP。

例如 WordPress:

location ~* /wp-content/uploads/.*\.php$ {
    deny all;
}

6. 隐藏敏感文件

禁止访问 .env.git、备份文件等:

location ~ /\.(?!well-known).* {
    deny all;
}

location ~* \.(sql|bak|old|zip|tar|gz)$ {
    deny all;
}

7. 使用 HTTPS

HTTPS 不只是加密传输,也有利于浏览器信任和 SEO。现在主流浏览器对 HTTP 网站越来越不友好。

8. 监控资源与日志

定期查看 CPU、内存、磁盘、访问日志、错误日志。如果磁盘满了,数据库和网站都可能异常。


二十六、是否需要安装宝塔等服务器面板?

很多站长喜欢使用宝塔面板、1Panel、aaPanel 等工具管理服务器。面板的优点是操作简单,适合不熟悉命令行的新手;缺点是会增加额外服务和安全风险。

如果你只是部署一个简单网站,使用面板可以提高效率。但如果你希望更好地理解服务器运行机制,建议至少掌握本文中的命令行部署方式。

对于生产环境,使用面板时要注意:

  • 面板端口不要使用默认端口
  • 设置强密码
  • 开启二次验证
  • 限制面板访问 IP
  • 定期更新面板版本
  • 不要安装来源不明的插件

二十七、部署完成后的检查清单

服务器部署完成后,建议按照以下清单检查:

  • [ ] Debian 系统已更新
  • [ ] 时区设置正确
  • [ ] 已创建普通 sudo 用户
  • [ ] SSH 已修改默认端口
  • [ ] 已禁止 root 远程登录
  • [ ] 已启用 UFW 防火墙
  • [ ] 仅开放必要端口
  • [ ] Nginx 正常运行
  • [ ] PHP-FPM 正常运行
  • [ ] MariaDB 正常运行
  • [ ] 域名已解析到服务器
  • [ ] HTTPS 证书已申请
  • [ ] Certbot 自动续期正常
  • [ ] 网站目录权限正确
  • [ ] 已删除 phpinfo 测试文件
  • [ ] 已安装 Fail2ban
  • [ ] 已配置备份脚本
  • [ ] 已测试备份恢复流程
  • [ ] 已记录服务器登录信息和维护文档

二十八、总结

Debian 是非常适合站长使用的服务器系统。它稳定、轻量、安全、资料丰富,能够满足从个人博客到中小型网站的绝大多数部署需求。对于新手站长而言,掌握 Debian 的基础部署流程,不仅可以降低对面板和第三方工具的依赖,也能在网站出现问题时更快定位故障。

本文介绍了从服务器初始化到 Web 环境部署的完整流程,包括系统更新、用户管理、SSH 安全、防火墙、Nginx、PHP、MariaDB、SSL 证书、WordPress 示例、备份与安全加固等内容。按照这些步骤操作后,你就可以在 Debian 上搭建一套较为完整、稳定、安全的网站运行环境。

最后提醒一句:服务器部署不是一次性工作,而是持续维护过程。站长应定期更新系统、检查日志、备份数据、优化配置,并关注网站程序的安全公告。只有把安全和维护放在日常运营中,网站才能长期稳定运行。

目录结构
全文