凌峰创科服务平台

Linux下搭建Web服务器具体步骤是什么?

  1. 选择你的服务器组合:Nginx 还是 Apache?
  2. 准备工作:在云服务器或本地虚拟机上操作。
  3. 详细搭建步骤:分别以 Nginx 和 Apache 为核心,搭建一个完整的网站环境。
  4. 配置与安全加固:让你的服务器更安全、更好用。
  5. 部署你的第一个网站:一个完整的实战案例。

选择你的服务器组合:Nginx 还是 Apache?

在开始之前,你需要选择一个 Web 服务器软件和一个后端环境。

Linux下搭建Web服务器具体步骤是什么?-图1
(图片来源网络,侵删)
组合 名称 描述 优点 缺点 适用场景
Nginx + MySQL + PHP LEMP (Linux, Nginx, MySQL, PHP) 目前非常流行的高性能组合。 高并发性能优异,资源占用低,配置简洁,反向代理功能强大。 配置相对复杂,特别是伪静态规则。 高流量网站、API 服务、需要处理大量静态资源的网站。
Apache + MySQL + PHP LAMP (Linux, Apache, MySQL, PHP) 经典、稳定、用户量最大的组合。 配置简单,模块极其丰富(特别是 .htaccess),兼容性好。 在高并发场景下性能不如 Nginx,内存占用稍高。 个人博客、中小型企业官网、初学者入门。

我的建议:

  • 如果你是初学者,或者搭建一个个人博客、公司官网,LAMP (Apache) 是最简单、最不容易出错的选择。
  • 如果你追求性能、高并发,或者未来有扩展需求,LEMP (Nginx) 是更现代、更强大的选择。

本指南将以 LEMP 为重点进行详细讲解,同时也会提供 LAMP 的关键步骤。


准备工作

你需要一台已经安装好 Linux 系统的机器,推荐使用 Ubuntu 22.04CentOS 8/9,因为它们的软件包管理非常成熟。

  • 云服务器:阿里云、腾讯云、华为云等都可以。
  • 本地虚拟机:使用 VirtualBox 或 VMware 安装一个 Linux 系统。
  • 远程连接:使用 ssh 命令连接到你的服务器。
    ssh username@your_server_ip

第一步:更新系统

Linux下搭建Web服务器具体步骤是什么?-图2
(图片来源网络,侵删)

在开始安装任何软件之前,最好先更新系统软件包列表和已安装的包。

  • 对于 Debian/Ubuntu 系统:

    sudo apt update && sudo apt upgrade -y
  • 对于 CentOS/RHEL 系统:

    sudo dnf update -y  # CentOS 8/9 使用 dnf
    # 或者
    sudo yum update -y  # CentOS 7 使用 yum

详细搭建步骤 (以 Ubuntu 22.04 + LEMP 为例)

我们将安装 Nginx、MySQL (MariaDB) 和 PHP。

Linux下搭建Web服务器具体步骤是什么?-图3
(图片来源网络,侵删)

安装 Nginx

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

  1. 安装 Nginx

    sudo apt install nginx -y
  2. 启动 Nginx 并设置为开机自启

    sudo systemctl start nginx
    sudo systemctl enable nginx
  3. 检查状态

    sudo systemctl status nginx

    如果看到绿色的 active (running) 字样,说明安装成功。

  4. 测试 在浏览器中输入你的服务器公网 IP 地址,你应该能看到 Nginx 的欢迎页面。

安装 MySQL (MariaDB)

MySQL 是世界上最流行的开源数据库系统,在 Ubuntu 中,我们通常安装它的分支 MariaDB,它是 MySQL 的完全替代品。

  1. 安装 MariaDB 服务器

    sudo apt install mariadb-server mariadb-client -y
  2. 启动并设置开机自启

    sudo systemctl start mariadb
    sudo systemctl enable mariadb
  3. 安全配置 (非常重要!) 运行安全脚本,它会帮你设置 root 密码、移除匿名用户、禁止远程 root 登录等。

    sudo mysql_secure_installation

    按照提示操作:

    • Enter current password for root (enter for none): 直接回车(初始密码为空)。
    • Switch to unix_socket authentication [Y/n]n
    • Set root password? [Y/n]y 并设置一个强密码。
    • 接下来一路输入 Y 即可。

安装 PHP

PHP 是一种服务器端脚本语言,用于创建动态网页。

  1. 安装 PHP 和一些常用扩展

    # 安装 PHP 8.1 和一些必要的扩展
    sudo apt install php-fpm php-mysql php-mbstring php-xml php-gd php-curl -y
    • php-fpm (FastCGI Process Manager) 是 Nginx 运行 PHP 所必需的。
    • php-mysql 让 PHP 能够连接 MySQL 数据库。
    • 其他扩展是很多 WordPress 等程序需要的。
  2. 启动 PHP-FPM 并设置开机自启

    sudo systemctl start php8.1-fpm  # 版本号可能是 php8.0-fpm 等
    sudo systemctl enable php8.1-fpm

配置 Nginx 以支持 PHP

Nginx 和 PHP 都已经安装,但它们还不知道如何协同工作,我们需要修改 Nginx 的配置文件来告诉它,当请求 .php 文件时,应该把请求转发给 PHP-FPM 处理。

  1. 创建一个新的网站配置文件 我们为你的网站创建一个独立的配置文件,而不是修改默认的。

    sudo nano /etc/nginx/sites-available/your_project

    粘贴进去,并替换 your_domain.com 为你的域名或 IP,/var/www/your_project 为你的网站根目录。

    server {
        listen 80;
        server_name your_domain.com www.your_domain.com;
        root /var/www/your_project;
        index index.php index.html index.htm;
        location / {
            try_files $uri $uri/ =404;
        }
        location ~ \.php$ {
            include snippets/fastcgi-php.conf;
            fastcgi_pass unix:/run/php/php8.1-fpm.sock; # 确保 PHP 版本号和 socket 路径正确
        }
        location ~ /\.ht {
            deny all;
        }
    }
  2. 创建网站根目录并设置权限

    sudo mkdir -p /var/www/your_project
    sudo chown -R $USER:$USER /var/www/your_project
    sudo chmod -R 755 /var/www/your_project
  3. 启用配置 创建一个符号链接来启用这个站点配置。

    sudo ln -s /etc/nginx/sites-available/your_project /etc/nginx/sites-enabled/
  4. 测试并重载 Nginx

    # 测试配置文件语法是否正确
    sudo nginx -t
    # 如果测试通过,重载 Nginx 使配置生效
    sudo systemctl reload nginx

配置与安全加固

配置防火墙

为了安全,我们应该只开放必要的端口(如 HTTP 的 80 端口和 HTTPS 的 443 端口)。

  1. 安装 UFW (Uncomplicated Firewall)

    sudo apt install ufw -y
  2. 设置规则

    # 允许 SSH 连接(非常重要,否则可能把自己锁在外面)
    sudo ufw allow OpenSSH
    # 允许 HTTP (80) 端口
    sudo ufw allow 'Nginx Full'
    # 启用防火墙
    sudo ufw enable

    输入 y 确认。


部署你的第一个网站

让我们在网站根目录下创建一个 info.php 文件来测试 PHP 是否正常工作。

  1. 创建测试文件

    nano /var/www/your_project/info.php
  2. 输入 PHP 代码

    <?php
    phpinfo();
    ?>
  3. 保存并退出 (在 nano 中是 Ctrl+X, 然后按 Y, 再按 Enter)

  4. 在浏览器中访问 在浏览器中访问 http://your_server_ip/info.phphttp://your_domain.com/info.php,你应该能看到一个详细的 PHP 配置信息页面。

安全提醒: 测试成功后,请务必删除 info.php 文件,因为它会暴露服务器的敏感信息!

sudo rm /var/www/your_project/info.php

附:LAMP (Apache) 快速搭建指南

如果你想使用 Apache,步骤非常相似,只需要替换 Nginx 的部分即可。

安装 Apache

sudo apt install apache2 -y
sudo systemctl start apache2
sudo systemctl enable apache2

访问你的 IP 地址,你应该能看到 Apache 的默认页面。

安装 MySQL (MariaDB)

与 LEMP 步骤完全相同。

安装 PHP

sudo apt install php libapache2-mod-php php-mysql php-mbstring php-xml php-gd php-curl -y
sudo systemctl restart apache2 # 重启 Apache 以加载 PHP 模块

注意:LAMP 中不需要 php-fpm,因为 Apache 内置了处理 PHP 的模块。

配置 Apache

Apache 的配置文件通常在 /etc/apache2/sites-available/000-default.conf,你可以编辑它来设置网站根目录(DocumentRoot)。

测试 PHP

与 LEMP 步骤完全相同,创建 /var/www/html/info.php (Apache 默认根目录) 并访问。

恭喜!你已经成功在 Linux 下搭建了一个功能完备的 Web 服务器。

  • 如果你选择了 LEMP,你的服务器现在可以通过 Nginx 提供静态文件,并将动态 PHP 请求交给 PHP-FPM 处理,数据存储在 MySQL 数据库中。
  • 如果你选择了 LAMP,你的服务器使用 Apache 来处理所有请求,包括 PHP。

接下来的步骤可以是:

  1. 安装 WordPress:将 WordPress 文件解压到网站根目录,然后通过浏览器进行安装。
  2. 配置域名解析:在域名提供商后台将你的域名解析到服务器的 IP 地址。
  3. 申请 SSL 证书:使用 Let's Encrypt 免费为你的网站启用 HTTPS,这是现代网站的标配,可以使用 Certbot 工具一键完成。
  4. 部署 Node.js/Python/Java 应用:你可以使用 Nginx 的反向代理功能,将请求转发到运行在其他端口(如 3000, 5000, 8080)的后端应用上。
分享:
扫描分享到社交APP
上一篇
下一篇