凌峰创科服务平台

Ubuntu下搭建Web服务器具体步骤有哪些?

我会首先推荐 Nginx,因为它在现代应用中性能更优、资源占用更低,是当前的主流选择,我也会介绍如何安装和配置 Apache,因为它非常稳定、模块丰富,拥有悠久的历史。

Ubuntu下搭建Web服务器具体步骤有哪些?-图1
(图片来源网络,侵删)

准备工作:连接你的服务器

在开始之前,请确保你已经:

  1. 拥有一台 Ubuntu 服务器:可以是云服务器(如阿里云、腾讯云、AWS、Vultr 等)或本地虚拟机。
  2. 拥有一个域名(可选但推荐):如果你想让别人通过域名访问,而不是服务器的 IP 地址。
  3. 能够通过 SSH 连接到你的服务器:打开终端(在 macOS/Linux 上)或使用 PuTTY/Windows Terminal(在 Windows 上),使用以下命令连接:
    ssh your_username@your_server_ip

    your_username 替换为你的用户名(通常是 ubuntu),your_server_ip 替换为你的服务器公网 IP 地址。


第一步:更新系统包

这是一个好习惯,可以确保你安装的是最新的软件包和安全补丁。

# 更新软件包列表
sudo apt update
# 升级已安装的软件包
sudo apt upgrade -y

第二步:选择并安装 Web 服务器

这里我们提供两种方案,你可以根据自己的需求选择一种。

Ubuntu下搭建Web服务器具体步骤有哪些?-图2
(图片来源网络,侵删)

安装 Nginx (推荐)

Nginx (发音 "engine-x") 是一个高性能的 HTTP 和反向代理服务器。

  1. 安装 Nginx

    sudo apt install nginx -y
  2. 检查 Nginx 状态 安装完成后,Nginx 通常会自动启动,你可以检查它的状态:

    sudo systemctl status nginx

    如果看到 active (running),说明服务正在运行,按 q 键退出。

    Ubuntu下搭建Web服务器具体步骤有哪些?-图3
    (图片来源网络,侵删)
  3. 配置防火墙 为了能从外部访问 Web 服务器,需要允许 HTTP (80) 和 HTTPS (443) 端口。

    # 允许 Nginx 的流量通过 UFW 防火墙
    sudo ufw allow 'Nginx Full'

    如果你还没有开启 UFW,可以运行 sudo ufw enable 来开启(注意:这会阻止所有其他未被允许的端口)。

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

    http://your_server_ip

安装 Apache

Apache HTTP Server 是最古老、最流行、最稳定的 Web 服务器之一。

  1. 安装 Apache

    sudo apt install apache2 -y
  2. 检查 Apache 状态

    sudo systemctl status apache2

    看到 active (running) 即可,按 q 键退出。

  3. 配置防火墙 类似地,允许 Apache 的流量通过。

    # 允许 Apache 的流量通过 UFW 防火墙
    sudo ufw allow 'Apache Full'
  4. 测试 Apache 在浏览器中输入你的服务器 IP 地址,你应该能看到 Apache 的默认 Debian 页面。

    http://your_server_ip

第三步:部署你的第一个网站

Web 服务器已经运行,但它还在显示默认页面,我们需要创建一个目录来存放我们自己的网站文件,并告诉 Nginx 或 Apache 如何提供这些文件。

我们将以 Nginx 为例进行讲解,Apache 的步骤非常相似。

创建网站目录

我们将在 /var/www 目录下创建一个新的网站目录,比如叫 my-first-site

# 创建目录
sudo mkdir /var/www/my-first-site
# 将目录的所有权赋予当前用户,这样你就不需要每次都用 sudo 来操作文件了
sudo chown -R $USER:$USER /var/www/my-first-site

创建网站首页文件

使用 nano 或你喜欢的编辑器创建一个 index.html 文件。

nano /var/www/my-first-site/index.html

粘贴进去,然后按 Ctrl + X,按 Y 保存,最后按 Enter 确认。

<!DOCTYPE html>
<html>
<head>我的第一个网站!</title>
    <style>
        body { width: 70em; margin: 0 auto; font-family: Tahoma, Verdana, Arial, sans-serif; }
    </style>
</head>
<body>
    <h1>你好,世界!</h1>
    <p>这个页面是由 Nginx 提供服务的。</p>
    <p>当前时间是: <?php echo date('Y-m-d H:i:s'); ?></p>
</body>
</html>

注意:我在 HTML 中加入了一行 PHP 代码,这是为了方便我们下一步测试 PHP 支持。

配置 Nginx 虚拟主机

虚拟主机允许你在一台服务器上托管多个网站,我们需要为我们的新网站创建一个配置文件。

# 创建一个新的配置文件
sudo nano /etc/nginx/sites-available/my-first-site

粘贴进去,请务必将 server_name 修改为你的域名或 IP 地址。

# /etc/nginx/sites-available/my-first-site
server {
    listen 80;
    listen [::]:80;
    # 将 server_name 替换为你的域名或 IP
    server_name my-first-site.com www.my-first-site.com your_server_ip;
    root /var/www/my-first-site;
    index index.html index.htm index.php;
    location / {
        try_files $uri $uri/ =404;
    }
    # 添加这个块来支持 PHP
    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php8.1-fpm.sock; # 注意:这里的版本号可能不同,见下文
    }
}

PHP-FPM 的路径fastcgi_pass 的路径取决于你安装的 PHP 版本,在 Ubuntu 22.04 上,通常是 php8.1-fpm.sock,你可以通过 ls /run/php/ 来查看你的系统上有哪些 socket 文件。

启用新的网站配置

  1. 创建一个符号链接,将 sites-available 中的配置文件链接到 sites-enabled 目录。

    sudo ln -s /etc/nginx/sites-available/my-first-site /etc/nginx/sites-enabled/
  2. 为了避免服务器名称冲突,最好禁用默认的 Nginx 配置。

    sudo rm /etc/nginx/sites-enabled/default
  3. 测试 Nginx 配置是否正确。

    sudo nginx -t

    如果看到 syntax is oktest is successful,说明配置正确。

  4. 重新加载 Nginx 以应用新配置。

    sudo systemctl reload nginx

测试你的网站

在浏览器中访问你配置的 server_namehttp://your_server_ip),你应该能看到你自定义的 "我的第一个网站!" 页面。

如果你看到 PHP 代码被原样输出了,而不是显示当前时间,说明 PHP 没有被正确处理,请确保你已经安装了 PHP 和 PHP-FPM,Nginx 配置中的 fastcgi_pass 路径正确。


第四步:安装和配置 PHP (可选)

如果你的网站需要动态功能(如 WordPress, Drupal),就需要安装 PHP。

  1. 安装 PHP 和相关模块

    # 安装 PHP-FPM 和一些常用扩展
    sudo apt install php-fpm php-mysql php-mbstring php-xml php-curl php-zip -y

    安装完成后,PHP-FPM 服务通常会自动启动。

  2. 重启 Nginx 为了让 Nginx 能够识别 PHP 模块,需要重启它。

    sudo systemctl restart nginx
  3. 再次测试 PHP 刷新你的网站页面,现在你应该能看到 PHP 代码被正确执行,并显示当前的日期和时间了。


第五步:安装 Let's Encrypt SSL 证书 (HTTPS)

为了网站安全,强烈建议启用 HTTPS,使用 Let's Encrypt 可以免费获取 SSL 证书。

  1. 安装 Certbot Certbot 是一个自动获取和续签 SSL 证书的工具。

    sudo apt install certbot python3-certbot-nginx -y
  2. 获取证书 运行以下命令,将 your_domain.com 替换成你的真实域名。

    sudo certbot --nginx -d your_domain.com -d www.your_domain.com

    Certbot 会自动检测你的 Nginx 配置,并引导你完成证书的申请和安装过程,它会询问你是否将 HTTP 流量重定向到 HTTPS,选择 2 (Redirect) 是最安全的选择。

  3. 验证自动续签 Let's Encrypt 证书的有效期为 90 天,Certbot 会自动设置一个定时任务来续签证书,你可以用以下命令测试续签是否正常工作:

    sudo certbot renew --dry-run

    如果没有错误输出,说明自动续签已经配置好了。


总结与后续步骤

恭喜!你已经成功在 Ubuntu 上搭建了一个功能齐全的 Web 服务器,支持 HTTP、PHP 和 HTTPS。

接下来的事情可以包括:

  • 部署 WordPress:这是最流行的内容管理系统,你可以轻松搭建博客或企业网站。
  • 部署其他应用:如 Nextcloud (私有云)、GitLab (代码托管) 等。
  • 学习更多 Nginx/Apache 配置:如配置重写规则、设置缓存、配置负载均衡等。
  • 使用 Git 部署:将你的网站代码放在 Git 仓库中,通过 Git hooks 实现自动部署。

希望这个指南对你有帮助!如果你在某个步骤遇到问题,可以随时提问。

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