凌峰创科服务平台

服务器上搭建网站需要哪些步骤?

我们将使用目前最主流、最简单的组合:Linux (Ubuntu) + Nginx + MySQL + PHP,这套组合通常被称为 LEMP,是搭建动态网站的首选方案。

服务器上搭建网站需要哪些步骤?-图1
(图片来源网络,侵删)

核心概念:网站是如何运行的?

在开始之前,你需要了解网站在服务器上的基本工作流程:

  1. 用户请求:你在浏览器输入 www.yourdomain.com
  2. DNS 解析:DNS 服务器将域名解析到你服务器的 IP 地址。
  3. Web 服务器接收:服务器上的 Web 服务器软件(如 Nginx)接收这个请求。
  4. 处理请求
    • 如果请求的是一个静态文件(如 .html, .css, .jpg),Nginx 直接将其发送给浏览器。
    • 如果请求的是一个动态文件(如 .php),Nginx 会把这个请求交给 PHP 处理器。
  5. PHP 处理器:PHP 处理器执行 PHP 代码,可能会向数据库(如 MySQL)查询或写入数据。
  6. 返回结果:PHP 处理器将生成最终的 HTML 内容,并返回给 Nginx。
  7. Nginx 发送响应:Nginx 将最终的 HTML 内容发送回用户的浏览器,浏览器将其渲染成你看到的网页。

准备工作

在开始之前,你需要准备以下几样东西:

  1. 一台云服务器

    • 推荐服务商:阿里云、腾讯云、华为云、Vultr、DigitalOcean、Linode 等。
    • 推荐系统:选择 Ubuntu 22.04 LTS04 LTS 版本,社区支持好,教程多,稳定。
    • 配置要求:新手入门,1核CPU、1GB或2GB内存、20GB左右硬盘即可起步。
  2. 一个域名

    服务器上搭建网站需要哪些步骤?-图2
    (图片来源网络,侵删)
    • 在域名注册商(如 GoDaddy、Namecheap、阿里云万网等)购买一个你喜欢的域名。
    • 将域名的 DNS 解析 指向你的服务器公网 IP 地址,通常在域名服务商的控制面板里设置,类型为 A 记录,主机记录为 或 www,记录值填你的服务器 IP。
  3. 连接服务器的工具

    • Windows:使用 PuTTYWindows Terminal + SSH (Windows 10/11 已内置)。
    • macOS / Linux:直接使用自带的 Terminal,输入 ssh 命令。

详细步骤:一步步搭建你的网站

第一步:连接服务器并更新系统

  1. 连接服务器:打开你的终端工具,输入以下命令(将 your_server_ip 替换为你的服务器实际 IP)。

    ssh root@your_server_ip

    首次连接会提示你确认主机指纹,输入 yes,然后输入你在购买服务器时设置的 root 密码。

  2. 更新系统软件包:为了安全和稳定,首先更新服务器的软件包列表和已安装的软件。

    服务器上搭建网站需要哪些步骤?-图3
    (图片来源网络,侵删)
    # 更新软件包列表
    apt update
    # 升级已安装的软件包
    apt upgrade -y

第二步:创建一个非 root 用户(安全最佳实践)

直接使用 root 用户操作有风险,我们创建一个普通用户来执行日常操作。

  1. 创建新用户(用户名为 webadmin):

    adduser webadmin

    按提示设置密码和用户信息(可以直接回车跳过)。

  2. 授予用户 sudo 权限:这样 webadmin 就可以使用 sudo 命令获得 root 权限。

    usermod -aG sudo webadmin
  3. 切换到新用户

    su - webadmin

    后续的所有操作,我们都将在 webadmin 用户下进行。

第三步:安装 LEMP 环境

现在我们来安装网站运行所需的核心组件:Nginx, MySQL, PHP。

安装 Nginx

Nginx 是一个高性能的 Web 服务器和反向代理服务器。

# 更新包列表
sudo apt update
# 安装 Nginx
sudo apt install nginx -y

安装完成后,Nginx 会自动启动,你可以通过浏览器访问你的服务器 IP 地址,如果看到 "Welcome to Nginx!" 的欢迎页面,说明安装成功。

如果打不开,请检查服务器的安全组(防火墙)是否放行了 80 (HTTP) 和 443 (HTTPS) 端口。

安装 MySQL

MySQL 是一个流行的关系型数据库,用于存储网站数据(如用户信息、文章内容等)。

# 安装 MySQL
sudo apt install mysql-server -y

安装完成后,运行安全脚本,它会帮你设置 root 密码、移除匿名用户等,强烈建议执行。

sudo mysql_secure_installation

按照提示操作:

  • 输入 root 密码(如果刚装完可能没有,直接按回车)
  • 设置 root 密码 (Y)
  • 移除匿名用户
  • 不允许 root 远程登录 (推荐 Y)
  • 移除 test 数据库
  • 重新加载权限表

安装 PHP

PHP 是一种服务器端脚本语言,用于处理动态内容。

# 安装 PHP 和一些常用扩展
sudo apt install php-fpm php-mysql php-curl php-gd php-mbstring php-xml php-xmlrpc php-zip -y
  • php-fpm (FastCGI Process Manager) 是 Nginx 与 PHP 通信的桥梁。
  • php-mysql 等扩展是让 PHP 能够连接数据库、处理图片、解析 XML 等功能的模块。

第四步:配置 Nginx

现在我们需要告诉 Nginx 如何处理你的网站,我们将创建一个虚拟主机配置文件。

  1. 创建网站根目录:这是存放你网站所有文件的地方。

    # 在 /var/www 目录下创建一个以你的域名命名的文件夹
    sudo mkdir /var/www/yourdomain.com
  2. 设置目录权限:确保 webadmin 用户对这个目录有读写权限。

    # 将目录所有者改为 webadmin
    sudo chown -R webadmin:webadmin /var/www/yourdomain.com
    # 设置最终权限
    sudo chmod -R 755 /var/www/yourdomain.com
  3. 创建一个测试页面

    nano /var/www/yourdomain.com/index.html

    在打开的编辑器中,输入以下内容:

    <!DOCTYPE html>
    <html>
    <head>
        <title>我的第一个网站!</title>
    </head>
    <body>
        <h1>恭喜!网站已成功部署!</h1>
    </body>
    </html>

    Ctrl + X,然后按 Y,再按 Enter 保存并退出。

  4. 创建 Nginx 配置文件

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

    粘贴以下配置,并将 yourdomain.com 替换成你的真实域名:

    server {
        listen 80;
        server_name yourdomain.com www.yourdomain.com;
        root /var/www/yourdomain.com;
        index index.html index.htm index.php;
        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
        }
    }
    • listen 80;:监听 80 端口(HTTP)。
    • server_name:你的域名。
    • root:指向你刚才创建的网站根目录。
    • location ~ \.php$:将所有 .php 结尾的请求交给 PHP-FPM 处理。
  5. 启用站点并测试配置

    # 创建一个链接到 sites-enabled 目录,以启用站点
    sudo ln -s /etc/nginx/sites-available/yourdomain.com /etc/nginx/sites-enabled/
    # 删除默认的欢迎页面(可选)
    sudo unlink /etc/nginx/sites-enabled/default
    # 测试 Nginx 配置文件是否有语法错误
    sudo nginx -t

    如果显示 syntax is oktest is successful,说明配置正确。

  6. 重新加载 Nginx:让新配置生效。

    sudo systemctl reload nginx

在浏览器中访问 http://yourdomain.com,你应该能看到你刚才创建的 "恭喜!" 页面了!

第五步:部署你的网站代码

假设你有一个用 WordPress 或其他 PHP 框架开发的网站项目,你需要将代码上传到服务器。

  1. 获取你的网站代码:通常是一个压缩包(如 .zip.tar.gz)。

  2. 上传到服务器

    • 使用 Git(如果你的代码在 GitHub/GitLab 上)

      # 进入网站根目录
      cd /var/www/yourdomain.com
      # 克隆你的代码仓库
      git clone https://github.com/your-username/your-project.git .
    • 使用 SFTP/FTP 客户端(如 FileZilla)

      • 服务器地址:你的服务器 IP
      • 用户名:webadmin
      • 密码:webadmin 的密码
      • 端口:22
      • 连接后,将本地代码文件拖拽到 /var/www/yourdomain.com 目录下。
    • 使用 wgetcurl(如果代码包有直接下载链接)

      cd /var/www/yourdomain.com
      wget https://example.com/your-website-files.zip
      # 然后解压
      unzip your-website-files.zip

第六步:配置数据库

如果你的网站需要数据库(如 WordPress),你需要创建一个数据库和数据库用户。

  1. 登录 MySQL

    sudo mysql
  2. 执行 SQL 命令

    -- 创建一个新数据库(数据库名可以自定义)
    CREATE DATABASE my_website_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
    -- 创建一个新用户(用户名和密码请自定义)
    CREATE USER 'my_user'@'localhost' IDENTIFIED BY 'a_very_strong_password';
    -- 给新用户授予对新数据库的所有权限
    GRANT ALL PRIVILEGES ON my_website_db.* TO 'my_user'@'localhost';
    -- 刷新权限,使更改生效
    FLUSH PRIVILEGES;
    -- 退出 MySQL
    EXIT;
  3. 配置网站:打开你的网站代码中的配置文件(WordPress 的 wp-config.php),填入你刚刚创建的数据库名、用户名和密码。

第七步:可选 - 配置 HTTPS (SSL 证书)

为了网站安全,强烈建议为你的域名配置 HTTPS,这可以通过免费的 Let's Encrypt 证书实现。

  1. 安装 Certbot

    sudo apt install certbot python3-certbot-nginx -y
  2. 获取并安装证书

    # Certbot 会自动检测 Nginx 配置并为你设置好 HTTPS
    sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com

    按照提示操作,它会要求你输入邮箱地址,并同意服务条款,完成后,它会自动修改你的 Nginx 配置,启用 HTTPS,并设置自动续期。


恭喜!你已经成功在服务器上搭建了一个完整的网站,回顾一下,我们完成了以下步骤:

  1. 准备:购买服务器和域名,并连接服务器。
  2. 安全:创建非 root 用户。
  3. 安装环境:安装 Nginx、MySQL、PHP (LEMP)。
  4. 配置 Web 服务器:创建网站目录,配置 Nginx 虚拟主机。
  5. 部署代码:将你的网站文件上传到服务器。
  6. 配置数据库:为网站创建数据库和用户。
  7. 安全加固:配置 HTTPS (SSL)。

这是一个基础但完整的流程,后续你还可以学习如何使用 Docker 来简化部署流程,或者配置 监控和日志 来更好地管理你的服务器,祝你搭建顺利!

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