这份指南将以当前最主流的 Ubuntu/Debian 和 CentOS/RHEL 为例,并采用 LAMP (Linux, Apache, MySQL, PHP) 或 LEMP (Linux, Nginx, MySQL, PHP) 架构,这是目前最成熟的网站部署方案。
目录
-
第一步:准备工作与基础系统配置
- 服务器选择与连接
- 更新系统
- 配置静态 IP (可选)
- 设置主机名
- 创建新用户并配置
sudo - 配置防火墙
- 配置 SSH 安全 (禁用 root 登录、密钥登录)
- 安装常用工具
-
第二步:安装 Web 服务器 (Nginx 或 Apache)
- 选择 Nginx 还是 Apache?
- 安装和配置 Nginx (LEMP 架构)
- 安装和配置 Apache (LAMP 架构)
-
第三步:安装和配置数据库服务器 (MySQL/MariaDB)
- 安装 MySQL/MariaDB
- 安全配置 (设置 root 密码、移除匿名用户等)
- 创建网站数据库和用户
-
第四步:安装和配置 PHP
- 安装 PHP 及常用扩展
- 配置 PHP-FPM (与 Nginx 配合) 或
libapache2-mod-php(与 Apache 配合)
-
第五步:部署网站

- 创建网站根目录
- 设置文件权限和所有者
- 配置虚拟主机 (Nginx/Apache)
- 上传网站文件
-
第六步:配置 SSL 证书 (HTTPS)
- 安装 Certbot
- 获取和安装 Let's Encrypt 证书
-
第七步:性能优化与安全加固
- 配置 OPcache
- 配置缓存 (Nginx/Apache)
- 安装 Fail2ban 防暴力破解
- 定期备份策略
第一步:准备工作与基础系统配置
这是所有操作的基础,确保服务器安全、稳定。
服务器选择与连接
- 云服务商: 阿里云、腾讯云、AWS、Google Cloud、DigitalOcean、Vultr 等。
- 连接: 使用 SSH 客户端连接服务器。
# 格式: ssh username@server_ip ssh root@your_server_ip
更新系统
保持系统软件包为最新版本,修复安全漏洞。

# Ubuntu/Debian sudo apt update && sudo apt upgrade -y # CentOS/RHEL sudo yum update -y # 或者 (对于 CentOS 8+/RHEL 8+) sudo dnf update -y
配置静态 IP (可选)
如果使用云服务器,通常在控制台配置即可,如果是在本地虚拟机,需要修改网络配置文件。
设置主机名
# Ubuntu/Debian sudo hostnamectl set-hostname your_server_hostname # CentOS/RHEL sudo hostnamectl set-hostname your_server_hostname
创建新用户并配置 sudo
不要一直使用 root 用户操作!
# 创建一个新用户,'webadmin' adduser webadmin # 将新用户添加到 sudo 组 usermod -aG sudo webadmin # 切换到新用户 su - webadmin
配置防火墙
# UFW (Ubuntu/Debian 默认) sudo ufw allow OpenSSH sudo ufw allow 'Nginx Full' # 或者 'Apache Full' sudo ufw enable # FirewallD (CentOS/RHEL 默认) sudo firewall-cmd --permanent --add-service=ssh sudo firewall-cmd --permanent --add-service=http sudo firewall-cmd --permanent --add-service=https sudo firewall-cmd --reload
配置 SSH 安全
编辑 SSH 配置文件 /etc/ssh/sshd_config。
sudo nano /etc/ssh/sshd_config
修改以下几项:

PermitRootLogin no: 禁止 root 用户直接登录。PasswordAuthentication no: 强制使用 SSH 密钥登录,更安全。Port 22: 可以修改为其他非标准端口增加安全性。
操作流程:
- 在本地电脑生成 SSH 密钥对:
ssh-keygen -t rsa -b 4096 - 将公钥复制到服务器:
ssh-copy-id webadmin@your_server_ip - 保存并关闭
/etc/ssh/sshd_config文件后,重启 SSH 服务:sudo systemctl restart sshd
安装常用工具
# Ubuntu/Debian sudo apt install -y curl wget git unzip vim # CentOS/RHEL sudo yum install -y curl wget git unzip vim
第二步:安装和配置 Web 服务器
选择 Nginx 还是 Apache?
- Nginx (LEMP):
- 优点: 高并发性能卓越,反向代理功能强大,配置简洁,资源占用低,现代 Web 应用的首选。
- 缺点: 配置规则和
.htaccess不兼容(需要转换)。
- Apache (LAMP):
- 优点: 功能模块丰富,兼容性好(尤其是
.htaccess),历史悠久,文档齐全。 - 缺点: 在处理高并发静态文件请求时,性能通常不如 Nginx。
- 优点: 功能模块丰富,兼容性好(尤其是
建议: 除非你有特殊需求(如大量依赖 .htaccess 的旧项目),否则优先选择 Nginx。
安装和配置 Nginx (LEMP 架构)
# Ubuntu/Debian sudo apt install -y nginx # CentOS/RHEL sudo yum install -y nginx # 启动并设置开机自启 sudo systemctl start nginx sudo systemctl enable nginx
安装和配置 Apache (LAMP 架构)
# Ubuntu/Debian sudo apt install -y apache2 # CentOS/RHEL sudo yum install -y httpd # 启动并设置开机自启 sudo systemctl start httpd # CentOS/RHEL sudo systemctl start apache2 # Ubuntu/Debian sudo systemctl enable httpd sudo systemctl enable apache2
第三步:安装和配置数据库服务器
这里我们以 MariaDB (MySQL 的一个分支,完全兼容) 为例。
# Ubuntu/Debian sudo apt install -y mariadb-server mariadb-client # CentOS/RHEL sudo yum install -y mariadb-server mariadb # 启动并设置开机自启 sudo systemctl start mariadb sudo systemctl enable mariadb
安全配置
运行安全脚本,它会引导你设置 root 密码、移除匿名用户等。
sudo mysql_secure_installation
按照提示操作,通常一路 Y (Yes) 是最安全的选择。
创建网站数据库和用户
# 登录 MariaDB/MySQL sudo mysql -u root -p # 在 MariaDB/MySQL 命令行中执行以下 SQL 语句 CREATE DATABASE your_database_name CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; CREATE USER 'your_db_user'@'localhost' IDENTIFIED BY 'a_very_strong_password'; GRANT ALL PRIVILEGES ON your_database_name.* TO 'your_db_user'@'localhost'; FLUSH PRIVILEGES; EXIT;
请务必替换 your_database_name, your_db_user, 和 a_very_strong_password 为你自己的信息。
第四步:安装和配置 PHP
安装 PHP 及常用扩展
# Ubuntu/Debian sudo apt install -y php php-fpm php-mysql php-mbstring php-xml php-curl php-gd php-zip # CentOS/RHEL (需要 EPEL 源) sudo yum install -y epel-release sudo yum install -y php php-fpm php-mysqlnd php-mbstring php-xml php-curl php-gd php-zip # 启动并设置开机自启 sudo systemctl start php-fpm sudo systemctl enable php-fpm
配置 PHP-FPM (与 Nginx 配合)
编辑 PHP-FPM 的 www.conf 配置文件,找到 listen = /run/php/php8.1-fpm.sock (版本号可能不同) 或 listen = 127.0.0.1:9000,确保 Nginx 配置中的 fastcgi_pass 指令与此一致。
