Linux 网站建设全流程指南
这个指南将分为以下几个核心部分:

- 基础概念: 了解 Linux 网站建设的基本组件。
- 环境准备: 搭建你的 Linux 服务器。
- Web 服务器选择与配置: 选择并安装 Web 服务器。
- 数据库安装与配置: 安装数据库管理系统。
- 网站部署: 将你的网站文件上传到服务器。
- 域名与 DNS: 将你的域名指向服务器。
- 安全加固: 保护你的网站安全。
- 维护与管理: 日常运维和监控。
第一部分:基础概念
在开始之前,你需要了解几个关键角色,它们共同构成了一个典型的网站运行环境:
- Web 服务器: 负责接收用户的 HTTP/HTTPS 请求,并根据请求返回网页内容(如 HTML、CSS、JS 文件)或交给后端程序处理,最常见的两个是:
- Nginx (Engine-X): 性能极高,并发能力强,尤其擅长处理静态文件,是目前的主流选择。
- Apache HTTP Server: 历史悠久,功能强大,模块丰富,配置相对灵活。
- 数据库: 负责存储和管理网站的动态数据,如用户信息、文章内容、商品信息等,最常见的是:
- MySQL: 最流行的开源关系型数据库,与 PHP 结合紧密。
- MariaDB: MySQL 的一个分支,完全兼容 MySQL,社区活跃。
- PostgreSQL: 功能强大的开源关系型数据库,支持更复杂的数据类型和事务。
- 编程语言/运行环境: 用于处理动态逻辑和与数据库交互。
- LAMP/LEMP 栈: 这是最经典的网站技术栈。
- LAMP: Linux + Apache + MySQL + PHP
- LEMP: Linux + Nginx + MySQL + PHP (Nginx 替代了 Apache,是目前更推荐的组合)
- Node.js: 用于构建高性能的 I/O 密集型网络应用。
- Python (Django/Flask): 适合快速开发和复杂应用。
- Ruby (Ruby on Rails): 以开发效率高著称。
- LAMP/LEMP 栈: 这是最经典的网站技术栈。
- 服务器: 运行以上所有软件的物理机或虚拟机,我们将使用 Linux 作为操作系统。
第二部分:环境准备
你需要一个 Linux 服务器,对于初学者和中小型网站,最简单的方式是使用云服务器。
推荐选择:
- 云服务商: 阿里云、腾讯云、华为云、AWS、Google Cloud、Vultr、DigitalOcean 等。
- 操作系统: 选择一个主流的服务器版 Linux。Ubuntu Server 是最推荐的选择,因为它社区庞大、文档丰富、软件包更新及时,CentOS 也是一个稳定的选择,但 CentOS Stream 的变化使其对新手稍显复杂。
服务器配置建议:

- 入门级: 1核 CPU / 2GB 内存 / 40GB 硬盘 / 1Mbps 带宽,足够运行一个个人博客或小型企业网站。
- 操作: 在云服务商的控制台购买并创建一台服务器实例,系统选择
Ubuntu 22.04 LTS。
连接服务器:
创建服务器后,你会得到一个公网 IP 地址,使用 SSH (Secure Shell) 客户端连接到你的服务器。
# 在你的本地电脑终端(Windows 可用 PuTTY 或 MobaXterm,Mac/Linux 自带终端)中执行 ssh root@你的服务器公网IP # 首次连接会提示确认,输入 yes # 然后输入你在创建服务器时设置的 root 密码
安全第一步:创建新用户并禁用 root 登录
直接用 root 用户操作有风险,建议创建一个普通用户。

# 1. 创建一个新用户,webadmin adduser webadmin # 2. 为新用户设置密码 passwd webadmin # 3. 赋予新用户管理员权限(使其可以使用 sudo) usermod -aG sudo webadmin # 4. 退出 root 登录 exit # 5. 用新用户重新登录 ssh webadmin@你的服务器公网IP
第三部分:Web 服务器选择与配置 (以 Nginx 为例)
我们选择 Nginx,因为它在现代网站部署中更具优势。
更新系统包列表
sudo apt update sudo apt upgrade -y
安装 Nginx
sudo apt install nginx -y
检查 Nginx 状态
sudo systemctl status nginx
如果看到 active (running),说明安装成功。
配置防火墙
允许 HTTP (80) 和 HTTPS (443) 端口通过防火墙。
sudo ufw allow 'Nginx Full'
创建你的第一个网站配置
Nginx 的网站配置文件存放在 /etc/nginx/sites-available/ 目录下,我们创建一个名为 mywebsite 的配置文件。
sudo nano /etc/nginx/sites-available/mywebsite
在文件中输入以下基本配置(请将 your_domain.com 替换成你的域名,如果没有域名,先用服务器 IP):
server {
listen 80;
server_name your_domain.com www.your_domain.com; # 如果没有域名,写 server_name _;
# 网站根目录
root /var/www/mywebsite;
index index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
}
创建网站根目录并设置权限
# 创建目录 sudo mkdir -p /var/www/mywebsite # 设置所有者为当前用户 (webadmin) sudo chown -R webadmin:webadmin /var/www/mywebsite # 给予目录读、写、执行权限 sudo chmod -R 755 /var/www/mywebsite
启用网站配置
Nginx 使用 sites-enabled 目录来管理启用的站点,我们需要创建一个指向 sites-available 中配置文件的软链接。
sudo ln -s /etc/nginx/sites-available/mywebsite /etc/nginx/sites-enabled/
测试并重载 Nginx
# 测试配置文件语法是否正确 sudo nginx -t # 如果输出 successful,则重载 Nginx 以应用新配置 sudo systemctl reload nginx
如果你在浏览器中访问你的服务器 IP 或域名,应该会看到一个 Nginx 的默认欢迎页面,我们刚才创建的配置文件还没有内容,所以访问可能会出错或显示默认页面,接下来我们将部署网站文件。
第四部分:数据库安装与配置 (以 MySQL/MariaDB 为例)
安装 MariaDB (MySQL 的一个优秀分支)
sudo apt install mariadb-server mariadb-client -y
安全配置
运行安全脚本,它会帮你设置 root 密码、移除匿名用户等。
sudo mysql_secure_installation
根据提示操作:
- 输入当前 root 密码(首次安装时可能为空,直接回车)
- 设置 root 密码 (建议设置)
- 移除匿名用户 (Y)
- 不允许 root 远程登录 (N,除非你有特殊需求,推荐 N)
- 移除 test 数据库 (Y)
- 重新加载权限表 (Y)
为你的网站创建数据库和用户
# 登录 MariaDB sudo mysql # 在 MariaDB 命令行中执行以下 SQL 语句 CREATE DATABASE mywebsite_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; CREATE USER 'mywebsite_user'@'localhost' IDENTIFIED BY '一个强密码'; GRANT ALL PRIVILEGES ON mywebsite_db.* TO 'mywebsite_user'@'localhost'; FLUSH PRIVILEGES; EXIT;
请务必替换 '一个强密码' 为一个复杂的密码。
第五部分:网站部署
我们将你的网站文件放到服务器的指定位置。
准备网站文件
在你的本地电脑上,准备好你的网站文件(例如一个用 HTML/CSS/JS 或 WordPress 等框架构建的网站)。
上传文件到服务器
有多种方式,这里推荐使用 scp (Secure Copy) 或 rsync。
使用 scp (适合一次性上传)
# 在你的本地电脑终端执行 # 将本地文件夹 my_local_website 上传到服务器的 /var/www/mywebsite/ 目录下 scp -r my_local_webroot/* webadmin@你的服务器公网IP:/var/www/mywebsite/
使用 rsync (适合增量同步)
# 在你的本地电脑终端执行 # -r: 递归, -v: 显示详情, -z: 压缩传输 rsync -avz my_local_webroot/ webadmin@你的服务器公网IP:/var/www/mywebsite/
设置正确的文件权限
确保 Web 服务器进程(Nginx)可以读取和写入你的网站文件。
# 将网站目录的所有者改为当前用户
sudo chown -R webadmin:webadmin /var/www/mywebsite
# 设置目录权限为 755,文件权限为 644
sudo find /var/www/mywebsite -type d -exec chmod 755 {} \;
sudo find /var/www/mywebsite -type f -exec chmod 644 {} \;
# 如果你的网站需要写入权限(例如上传文件夹),需要单独设置
# sudo chmod -R 775 /var/www/mywebsite/uploads
再次访问你的域名或 IP,就应该能看到你的网站了!
第六部分:域名与 DNS
如果你购买了域名,需要将域名指向你的服务器。
- 登录你的域名注册商的控制台 (如阿里云、GoDaddy 等)。
- 找到 DNS 管理 或 域名解析 功能。
- 添加两条 A 记录:
- 记录类型:
A - 主机记录: (代表根域名) 或
www - 记录值: 你的服务器公网 IP 地址
- 记录类型:
- 保存后,DNS 解析可能需要几分钟到几小时生效,你可以使用
ping your_domain.com来检查是否指向了正确的 IP。
第七部分:安全加固
安全是网站运维的重中之重。
安装和配置 SSL 证书 (HTTPS)
使用 Let's Encrypt 提供的免费证书。
# 安装 Certbot sudo apt install certbot python3-certbot-nginx -y # 自动获取证书并配置 Nginx sudo certbot --nginx -d your_domain.com -d www.your_domain.com
Certbot 会自动检测你的 Nginx 配置,并修改它以启用 HTTPS,它会自动续订证书,非常方便。
配 Fail2Ban 防暴力破解
Fail2ban 可以监控日志,并自动封禁恶意 IP。
# 安装 sudo apt install fail2ban -y # 创建一个本地配置文件 sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local # 编辑配置文件,启用 Nginx 的保护 sudo nano /etc/fail2ban/jail.local
在 [nginx-http-auth], [nginx-limit-req] 等部分取消注释或进行配置,具体配置可以参考 Fail2ban 的官方文档。
定期更新系统
# 每周运行一次 sudo apt update && sudo apt upgrade -y
第八部分:维护与管理
备份
定期备份你的网站文件和数据库,以防数据丢失。
- 备份网站文件:
tar -czvf backup_$(date +%Y%m%d).tar.gz /var/www/mywebsite
- 备份数据库:
# 登录数据库 mysql -u mywebsite_user -p mywebsite_db > db_backup_$(date +%Y%m%d).sql # 输入密码
监控
使用 htop (CPU/内存监控) 或 df -h (磁盘空间监控) 等命令定期检查服务器状态。
总结与进阶
就是一个完整的、从零开始的 Linux 网站建设流程,你已经掌握了:
- 如何购买和连接 Linux 服务器。
- 如何安装和配置 Nginx、MariaDB。
- 如何部署网站文件。
- 如何绑定域名和配置 HTTPS。
- 基本的安全和维护措施。
进阶方向:
- 使用 Docker: 学习使用 Docker 和 Docker Compose,可以将 Nginx、数据库、应用环境打包成容器,实现环境一致性和快速部署。
- 使用版本控制: 将你的网站代码托管在 Git (如 GitHub, GitLab) 上,通过 Git 部署到服务器。
- 使用 CI/CD: 学习 GitHub Actions 或 Jenkins,实现代码提交后自动测试和部署。
- 性能优化: 学习 Nginx 缓存、Gzip 压缩、使用 CDN 等技术提升网站访问速度。
Linux 世界非常广阔,这是一个不断学习和探索的过程,希望这份指南能为你提供一个坚实的起点!
