凌峰创科服务平台

Linux网站建设如何快速搭建与维护?

Linux 网站建设全流程指南

这个指南将分为以下几个核心部分:

Linux网站建设如何快速搭建与维护?-图1
(图片来源网络,侵删)
  1. 基础概念: 了解 Linux 网站建设的基本组件。
  2. 环境准备: 搭建你的 Linux 服务器。
  3. Web 服务器选择与配置: 选择并安装 Web 服务器。
  4. 数据库安装与配置: 安装数据库管理系统。
  5. 网站部署: 将你的网站文件上传到服务器。
  6. 域名与 DNS: 将你的域名指向服务器。
  7. 安全加固: 保护你的网站安全。
  8. 维护与管理: 日常运维和监控。

第一部分:基础概念

在开始之前,你需要了解几个关键角色,它们共同构成了一个典型的网站运行环境:

  • 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): 以开发效率高著称。
  • 服务器: 运行以上所有软件的物理机或虚拟机,我们将使用 Linux 作为操作系统。

第二部分:环境准备

你需要一个 Linux 服务器,对于初学者和中小型网站,最简单的方式是使用云服务器。

推荐选择:

  • 云服务商: 阿里云、腾讯云、华为云、AWS、Google Cloud、Vultr、DigitalOcean 等。
  • 操作系统: 选择一个主流的服务器版 Linux。Ubuntu Server 是最推荐的选择,因为它社区庞大、文档丰富、软件包更新及时,CentOS 也是一个稳定的选择,但 CentOS Stream 的变化使其对新手稍显复杂。

服务器配置建议:

Linux网站建设如何快速搭建与维护?-图2
(图片来源网络,侵删)
  • 入门级: 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 用户操作有风险,建议创建一个普通用户。

Linux网站建设如何快速搭建与维护?-图3
(图片来源网络,侵删)
# 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

如果你购买了域名,需要将域名指向你的服务器。

  1. 登录你的域名注册商的控制台 (如阿里云、GoDaddy 等)。
  2. 找到 DNS 管理域名解析 功能。
  3. 添加两条 A 记录:
    • 记录类型: A
    • 主机记录: (代表根域名) 或 www
    • 记录值: 你的服务器公网 IP 地址
  4. 保存后,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 世界非常广阔,这是一个不断学习和探索的过程,希望这份指南能为你提供一个坚实的起点!

分享:
扫描分享到社交APP
上一篇
下一篇