速卖通素材
努力

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

服务器

在 Ubuntu Server 24.04 (Noble Numbat) 上搭建 LNMP 环境(Linux + Nginx + MariaDB + PHP)是一个非常标准的运维任务。Ubuntu 24.04 默认的软件源中已经包含了较新的稳定版本,我们可以直接使用 apt 进行安装和配置。

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

1. 更新系统软件包

首先,确保系统的软件包列表是最新的,并安装必要的工具(如 curl, wget, software-properties-common)。

sudo apt update && sudo apt upgrade -y
sudo apt install curl wget gnupg software-properties-common -y

2. 安装 Nginx

Nginx 是 Web 服务器组件。

sudo apt install nginx -y

启动并设置开机自启:

sudo systemctl start nginx
sudo systemctl enable nginx

检查状态:

sudo systemctl status nginx

如果看到 "active (running)",说明 Nginx 安装成功。

防火墙配置(可选):
如果你开启了 UFW 防火墙,需要放行 HTTP 流量:

sudo ufw allow 'Nginx Full'
# 或者只允许 HTTP 和 HTTPS
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

3. 安装 MariaDB

MariaDB 是 MySQL 的开源分支,作为数据库后端。

sudo apt install mariadb-server mariadb-client -y

安全初始化脚本:
运行 mysql_secure_installation 来设置 root 密码、移除匿名用户等。

sudo mysql_secure_installation

建议操作:

  • 输入 Y 启用 VALIDATE PASSWORD PLUGIN(可选,生产环境建议开启)。
  • 设置一个强密码作为 root 用户密码。
  • 回答 Y 移除 anonymous-user。
  • 回答 Y 移除 remote-root-login。
  • 回答 Y 删除 test database。
  • 回答 Y 重新加载权限表。

验证数据库服务:

sudo systemctl status mariadb

4. 安装 PHP 及扩展

Ubuntu 24.04 默认可能包含 PHP 8.2。为了配合 Nginx 使用,我们需要安装 php-fpm 以及常用的扩展(如 mbstring, xml, curl, zip 等)。

安装 PHP 核心及 FPM:

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

注意:Ubuntu 24.04 默认通常已安装 PHP 8.2。如果你需要特定版本(如 8.3),可能需要添加 Ondrej PPA 源,但通常官方源版本已足够稳定。

验证 PHP 版本:

php -v

5. 配置 Nginx 以支持 PHP

这是最关键的一步,需要将 Nginx 配置为将 .php 文件请求转发给 PHP-FPM 处理。

备份默认配置:

sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/default.bak

编辑配置文件:

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

找到 location ~ .php$ { ... } 部分,并确保它看起来像下面这样(Ubuntu 24.04 默认配置通常已正确,但需确认 socket 路径):

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-FPM 配置
    location ~ .php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php8.2-fpm.sock; # 注意:版本号需与安装的 PHP 版本一致
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

如何确认 Socket 路径?
查看 /etc/php/8.2/fpm/pool.d/www.conf 文件中的 listen = 行,或者运行 ls /run/php/ 查看实际存在的 socket 文件名。如果是 PHP 8.2,通常是 php8.2-fpm.sock

测试配置并重启 Nginx:

sudo nginx -t
# 如果测试通过,执行以下命令
sudo systemctl restart nginx
sudo systemctl restart php8.2-fpm

6. 创建测试页面

创建一个简单的 PHP 文件来验证整个链路是否通畅。

sudo nano /var/www/html/info.php

粘贴以下内容:

<?php
phpinfo();
?>

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

访问测试:
在浏览器中访问服务器的 IP 地址:
http://<你的服务器IP>/info.php

  • 如果看到 PHP 信息页面,说明 LNMP 环境搭建成功
  • 如果显示代码或 404 错误,请检查 Nginx 日志 (/var/log/nginx/error.log) 和 PHP-FPM 日志 (/var/log/php8.2-fpm.log)。

7. 清理工作(可选)

测试完成后,建议删除测试文件以防止泄露敏感信息:

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

常见问题排查

  1. 502 Bad Gateway:

    • 通常是因为 Nginx 找不到 PHP-FPM 的 socket。请检查 nginx.conf 或站点配置中的 fastcgi_pass 路径是否正确(例如 unix:/run/php/php8.2-fpm.sock vs unix:/run/php/php8.1-fpm.sock)。
    • 检查 PHP-FPM 服务是否运行:systemctl status php8.2-fpm
  2. 权限问题:

    • 确保 /var/www/html 目录的所有者是 www-data
      sudo chown -R www-data:www-data /var/www/html
  3. 防火墙拦截:

    • 确保端口 80 和 443 已开放:sudo ufw status

至此,你的 Ubuntu Server 24.04 LNMP 环境已完全就绪,可以开始部署 WordPress、Laravel 或其他 Web 应用了。

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