我们将以目前最主流的 Linux (Ubuntu) 操作系统和 Nginx (Web服务器) + MySQL (数据库) + PHP (编程语言) 的组合为例,这是目前最稳定、高效的网站环境之一。

如何在云服务器上搭建网站
(图片来源网络,侵删)

核心概念:你需要了解的几个角色

在开始之前,先简单理解一下搭建网站需要哪些“角色”:

  1. 云服务器:你的“虚拟电脑”,网站的所有程序、文件、数据库都运行在上面,我们把它当作你的网站的家。
  2. Web服务器 (Nginx/Apache):网站的“前台接待员”,它负责接收用户(通过浏览器)的请求,找到对应的网页文件,再把这些文件发送给用户。
  3. 数据库:网站的“仓库和档案室”,它用来存储网站的所有动态数据,比如用户信息、文章内容、商品信息等。
  4. 编程语言 (PHP/Python/Node.js):网站的“厨师和工程师”,它负责处理业务逻辑,比如用户登录验证、从数据库读取数据并生成最终的网页。
  5. 域名:你网站的“门牌号”,google.com,用户通过域名访问你的服务器。
  6. SSL证书:网站的“身份证”,用于加密数据传输,让浏览器显示 https://,保证用户信息安全。

搭建网站完整步骤指南

第一步:购买和准备云服务器

  1. 选择云服务商

    • 国际:Amazon Web Services (AWS), Google Cloud Platform (GCP), Microsoft Azure, DigitalOcean, Vultr。
    • 国内:阿里云, 腾讯云, 华为云。
  2. 选择服务器配置

    • 操作系统:选择 Ubuntu 22.04 LTS (长期支持版本),社区庞大,资料多,非常稳定。
    • CPU/内存:对于个人博客或小型网站,1核2G或2核4G的配置通常足够。
    • 存储:选择 SSD云硬盘,读写速度更快,对网站性能影响大。
    • 网络:选择按量计费或固定带宽,确保有足够的流量。
  3. 连接服务器

    如何在云服务器上搭建网站
    (图片来源网络,侵删)
    • 购买成功后,云服务商会提供一个 公网IP地址
    • 使用终端工具(如 macOS/Linux 的 Terminal,Windows 的 PuTTYWindows Terminal)通过 SSH (Secure Shell) 连接到你的服务器。
    • 命令格式:ssh root@你的公网IP地址
    • 首次登录需要输入密码(云服务商通常会发送到你的邮箱),强烈建议登录后立即修改密码
  4. 更新服务器

    • 这是良好的运维习惯,确保所有软件都是最新版本。
      # 更新软件包列表
      sudo apt update
      # 升级已安装的软件包
      sudo apt upgrade -y

第二步:安装 LEMP 环境 (Nginx + MySQL + PHP)

这是搭建网站的核心环境。

  1. 安装 Nginx Web 服务器

    sudo apt install nginx -y
    • 安装完成后,Nginx 会自动启动。
    • 你可以在浏览器中输入你的 公网IP地址,如果看到 "Welcome to nginx!" 页面,说明安装成功。
  2. 安装 MySQL 数据库

    sudo apt install mysql-server -y
    • 安装完成后,运行安全脚本进行安全配置:
      sudo mysql_secure_installation
    • 这个脚本会引导你设置 root 密码、移除匿名用户、禁止root远程登录等,一路按 Y (Yes) 并设置一个强密码即可。
  3. 安装 PHP 及相关扩展

    # 安装PHP和Nginx所需的PHP扩展
    sudo apt install php-fpm php-mysql php-mbstring php-xml php-gd php-curl -y
    • php-fpm (FastCGI Process Manager) 是 PHP 和 Nginx 之间的桥梁,让 Nginx 能够处理 PHP 请求。

第三步:配置 Nginx

现在需要告诉 Nginx,当有用户访问时,去哪里找我们的网站文件。

  1. 创建网站目录

    • 我们把网站文件放在 /var/www/ 目录下,并创建一个项目文件夹,my-website
      sudo mkdir -p /var/www/my-website
  2. 设置目录权限

    • 为了安全,将网站目录的所有者设置为当前用户($USER 是一个环境变量,代表当前登录用户)。
      sudo chown -R $USER:$USER /var/www/my-website
  3. 创建 Nginx 配置文件

    • Nginx 的站点配置文件在 /etc/nginx/sites-available/ 目录下,我们创建一个新文件 my-website

      sudo nano /etc/nginx/sites-available/my-website
    • 粘贴进去,并根据你的实际情况修改(特别是 root 路径和 server_name)。

      server {
      listen 80;
      root /var/www/my-website;
      index index.php index.html index.htm;
      server_name 你的公网IP; # 或者你的域名,如果已经解析了的话
      location / {
          try_files $uri $uri/ =404;
      }
      location ~ \.php$ {
          include snippets/fastcgi-php.conf;
          fastcgi_pass unix:/var/run/php/php8.1-fpm.sock; # 注意版本号,可能是 php8.0-fpm.sock
      }
      location ~ /\.ht {
          deny all;
      }
      }
    • Ctrl + X,然后按 Y,再按 Enter 保存并退出。

  4. 启用站点

    • 创建的文件在 sites-available 目录下,需要创建一个符号链接到 sites-enabled 目录才能被 Nginx 加载。
      sudo ln -s /etc/nginx/sites-available/my-website /etc/nginx/sites-enabled/
    • 测试 Nginx 配置是否正确,然后重新加载 Nginx:
      sudo nginx -t
      sudo systemctl reload nginx

第四步:创建一个测试 PHP 页面

为了验证 Nginx 和 PHP 是否能正常协同工作。

  1. 在网站目录下创建 info.php 文件
    nano /var/www/my-website/info.php
  2. 输入以下内容并保存
    <?php
    phpinfo();
    ?>
  3. 在浏览器中访问
    • 打开浏览器,访问 http://你的公网IP/info.php
    • 如果看到一个显示 PHP 详细信息的页面,恭喜你!你的 LEMP 环境已经完全配置成功!出于安全考虑,测试完成后请务必删除这个文件!
      rm /var/www/my-website/info.php

第五步:部署你的网站

你可以把你的网站文件上传到服务器了。

  1. 使用 FTP/SFTP 客户端

    • 安装 FileZilla 等软件,使用服务器的公网IP、用户名和密码连接。
    • 将你的网站文件(HTML, CSS, JS, PHP 文件等)上传到 /var/www/my-website/ 目录下。
  2. 使用 Git

    • 如果你的代码托管在 GitHub/GitLab,可以在服务器上克隆代码。
      cd /var/www/my-website
      git clone 你的代码仓库地址 .
  3. 配置数据库

    • 登录 MySQL:sudo mysql -u root -p
    • 创建数据库和用户:
      CREATE DATABASE my_wp_db; -- 替换成你的数据库名
      CREATE USER 'wp_user'@'localhost' IDENTIFIED BY 'your_strong_password'; -- 替换成你的用户名和密码
      GRANT ALL PRIVILEGES ON my_wp_db.* TO 'wp_user'@'localhost';
      FLUSH PRIVILEGES;
      EXIT;
    • 在你的网站安装程序(如 WordPress)填写这些数据库信息即可。

第六步:绑定域名和配置 HTTPS

  1. 解析域名

    • 登录你的域名注册商的控制台(如阿里云、GoDaddy)。
    • 找到 DNS 解析管理,添加一条 A 记录:
      • 类型:A
      • 主机记录www (或者 代表主域名)
      • 记录值:你的云服务器的 公网IP地址
    • 等待几分钟到几小时,DNS 生效。
  2. 配置 Nginx 使用域名

    • 修改之前创建的 Nginx 配置文件 /etc/nginx/sites-available/my-website,将 server_name 改为你的域名。
      server_name yourdomain.com www.yourdomain.com;
  3. 安装 Let's Encrypt 免费 SSL 证书

    • 使用 Certbot 工具可以轻松获取和配置 SSL 证书。
      sudo apt install certbot python3-certbot-nginx -y
      sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com
    • Certbot 会自动检测你的 Nginx 配置,并修改它,启用 HTTPS,它会询问你是否将 HTTP 流量重定向到 HTTPS,选择 2 (Redirect) 是个不错的选择。
    • 完成后,你的网站就可以通过 https://yourdomain.com 安全访问了!

总结与后续

恭喜!你已经成功在云服务器上搭建并部署了一个完整的网站。

后续你可能需要学习的:

  • 网站管理:学习使用 systemctl 命令管理 Nginx (nginx start/stop/restart) 和 MySQL (mysql start/stop/restart) 服务。
  • 安全加固:配置防火墙 (ufw),只开放 80 (HTTP), 443 (HTTPS) 和 22 (SSH) 端口。
  • 备份:定期备份你的网站文件和数据库,防止数据丢失。
  • 性能优化:配置缓存 (如 Redis)、使用 CDN 等。

这个过程看起来步骤很多,但每一步都有其明确的目的,跟着指南一步步操作,你一定能成功!祝你搭建顺利!