Ubuntu server 24.04安装LNMP环境(Linux+Nginx+MariaDB+PHP)?

在 Ubuntu Server 24.04 (Noble Numbat) 上安装 LNMP(Linux + Nginx + MariaDB + PHP)环境是一个非常标准的运维任务。Ubuntu 24.04 默认的软件源中已经包含了较新版本的 Nginx、MariaDB 和 PHP,因此可以直接使用 apt 进行安装,无需添加额外的第三方源即可满足大多数开发需求。

以下是详细的分步操作指南:

1. 更新系统软件包

首先,确保系统的软件包列表是最新的,并升级已安装的软件,以减少潜在的安全漏洞和兼容性问题。

sudo apt update && sudo apt upgrade -y

2. 安装 Nginx Web 服务器

Ubuntu 24.04 的官方源中包含 Nginx 的稳定版本。

sudo apt install nginx -y

安装完成后,检查 Nginx 状态并启动服务:

sudo systemctl status nginx

如果显示 active (running),则说明安装成功。

配置防火墙(可选但推荐)
如果你启用了 UFW 防火墙,需要允许 HTTP 流量:

sudo ufw allow 'Nginx HTTP'

3. 安装 MariaDB 数据库

MariaDB 是 MySQL 的开源分支,性能优秀且完全兼容。Ubuntu 24.04 默认使用 MariaDB 作为替代方案。

sudo apt install mariadb-server -y

安装后,建议运行安全脚本以增强数据库安全性(设置 root 密码、移除匿名用户等):

sudo mysql_secure_installation

按照提示操作:

  1. 询问是否启用 VALIDATE PASSWORD COMPONENT?输入 N(除非你有严格的合规要求)。
  2. 设置 root 用户密码。
  3. 删除匿名账户?输入 Y
  4. 禁止 root 远程登录?输入 Y
  5. 删除测试数据库?输入 Y
  6. 重新加载权限表?输入 Y

4. 安装 PHP 及相关模块

我们需要安装 PHP-FPM(FastCGI Process Manager),这是 Nginx 与 PHP 交互的标准方式。同时,为了支持常见的网站功能(如 MySQL 连接、字符串处理、GD 图像处理等),需要安装一系列扩展。

sudo apt install php-fpm php-mysql php-gd php-curl php-mbstring php-xml php-zip php-intl -y

注意:在安装过程中,系统可能会询问你选择哪个 PHP 版本。通常直接回车选择默认版本(通常是最新稳定版)即可。

5. 配置 Nginx 以支持 PHP

默认情况下,Nginx 配置文件可能指向默认的静态文件目录,我们需要修改它来启用 PHP 解析。

A. 创建测试目录

创建一个简单的 PHP 测试文件来验证配置:

sudo mkdir -p /var/www/html/test
sudo nano /var/www/html/test/info.php

在文件中粘贴以下内容:

<?php
phpinfo();
?>

保存并退出 (Ctrl+O, Enter, Ctrl+X)。

B. 修改 Nginx 站点配置

编辑默认站点的配置文件(通常位于 /etc/nginx/sites-available/default):

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

找到 location ~ .php$ { ... } 部分。如果不存在,请添加;如果存在,请确保配置如下所示(关键是将 fastcgi_pass 指向 unix:/run/php/php8.x-fpm.sock,具体版本号需根据实际安装的 PHP 版本调整):

server {
    listen 80 default_server;
    listen [::]:80 default_server;

    root /var/www/html;
    index index.php index.html index.htm index.nginx-debian.html;

    server_name _;

    location / {
        try_files $uri $uri/ =404;
    }

    # 以下部分是 PHP 处理逻辑
    location ~ .php$ {
        include snippets/fastcgi-php.conf;

        # 关键点:确保 socket 路径与安装的 PHP 版本一致
        # Ubuntu 24.04 默认通常是 php8.3
        fastcgi_pass unix:/run/php/php8.3-fpm.sock; 

        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

注:如果不确定 PHP 版本,可以运行 ls /run/php/ 查看具体的 socket 文件名(例如 php8.3-fpm.sock)。

C. 测试并重载 Nginx

在重启服务前,先检查配置文件语法是否正确:

sudo nginx -t

如果输出 syntax is oktest is successful,则继续重载:

sudo systemctl reload nginx

6. 验证安装结果

现在打开浏览器,访问你的服务器 IP 地址或域名:

  • 访问 http://<你的服务器IP>/test/info.php

如果看到一张包含详细 PHP 信息的表格,说明 LNMP 环境已成功搭建

为了进一步测试数据库连接,你可以修改 info.php 添加一段代码:

<?php
phpinfo();
// 测试数据库连接
try {
    $pdo = new PDO('mysql:host=localhost;dbname=test', 'root', '你的Root密码');
    echo "<h3 style='color:green'>Database Connection Successful!</h3>";
} catch (PDOException $e) {
    echo "<h3 style='color:red'>Connection Failed: " . $e->getMessage() . "</h3>";
}
?>

(注意:生产环境中请勿将测试文件保留在公开目录下)

常见问题排查

  1. PHP-FPM 未启动
    如果 Nginx 报错 502 Bad Gateway,通常是 PHP-FPM 没启动。

    sudo systemctl status php8.3-fpm
    sudo systemctl restart php8.3-fpm
  2. 权限问题
    如果无法上传文件或写入日志,可能需要调整目录权限:

    sudo chown -R www-data:www-data /var/www/html
    sudo chmod -R 755 /var/www/html
  3. 防火墙拦截
    确保云服务器厂商(如阿里云、AWS、腾讯云)的安全组中也放行了 80 (HTTP)443 (HTTPS) 端口。

至此,你的 Ubuntu 24.04 LNMP 环境已准备就绪,可以开始部署网站了。

未经允许不得转载:云知识CLOUD » Ubuntu server 24.04安装LNMP环境(Linux+Nginx+MariaDB+PHP)?