走啊走
加油

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 包管理器进行安装,无需添加额外的第三方 PPA(除非你需要特定版本的 PHP)。

以下是完整的安装步骤指南:

1. 更新系统软件源

首先,确保系统的软件包列表是最新的,并升级已安装的软件包,以避免潜在的依赖冲突。

sudo apt update && sudo apt upgrade -y

2. 安装 Nginx Web 服务器

Nginx 将在 Ubuntu 24.04 的默认仓库中以较新的版本提供。安装后,服务会自动启动并开机自启。

sudo apt install nginx -y

验证安装:
检查 Nginx 状态:

systemctl status nginx

如果看到 active (running),则说明安装成功。此时,你可以通过浏览器访问服务器的公网 IP 地址,应该能看到 "Welcome to nginx!" 的默认页面。

3. 安装 MariaDB 数据库

MariaDB 是 MySQL 的开源分支,Ubuntu 官方仓库中包含它。我们将安装核心组件、客户端以及安全初始化脚本。

sudo apt install mariadb-server mariadb-client -y

安全配置(推荐):
运行 mysql_secure_installation 脚本可以设置 root 密码、移除匿名用户、禁止远程 root 登录等,以增强安全性。

sudo mysql_secure_installation
  • 输入当前 root 密码(如果是首次安装通常直接回车即可,或者提示设置新密码)。
  • 按照提示回答 YN(建议全部选 Y 以获得最佳安全配置)。

测试数据库连接:

sudo mysql -u root -p

进入 SQL 命令行后,输入 exit; 退出。

4. 安装 PHP 及 Nginx 集成模块

我们需要安装 PHP-FPM(FastCGI Process Manager),这是 Nginx 与 PHP 通信的关键组件。同时安装常用的扩展(如 mbstring, xml, curl 等),以满足大多数 CMS(如 WordPress)的需求。

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

注意:在 Ubuntu 24.04 中,PHP 8.x 是默认版本。如果你需要特定的旧版本(如 PHP 7.4),则需要添加 Ondrej Sura 的 PPA,但通常生产环境建议使用官方源的最新稳定版。

5. 配置 Nginx 以支持 PHP

默认情况下,Nginx 不会处理 .php 文件。我们需要修改站点配置文件,告诉 Nginx 将 PHP 请求转发给 PHP-FPM。

5.1 创建或编辑站点配置

假设你的网站根目录为 /var/www/html,我们先创建一个测试文件来验证 PHP 是否工作。

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

输入以下内容:

<?php
phpinfo();
?>

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

5.2 配置 Nginx 虚拟主机

我们需要修改 /etc/nginx/sites-available/default 文件,或者创建一个新的站点配置。这里以修改默认配置为例:

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

找到 location ~ .php$ { ... } 部分,确保其配置如下(如果没有,请添加;如果有,请检查路径是否正确):

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

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

    server_name _;

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

    # PHP 处理配置
    location ~ .php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php8.3-fpm.sock; # 注意:Ubuntu 24.04 默认通常是 php8.3
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

注意:php8.3-fpm.sock 的路径取决于你安装的 PHP 版本。如果不确定,可以查看 /etc/php/ 目录下的文件夹名称。

5.3 重启 Nginx 和 PHP-FPM

应用配置更改:

sudo systemctl restart nginx
sudo systemctl restart php8.3-fpm
# 如果版本不同,请将 php8.3-fpm 替换为对应的服务名

6. 验证安装

打开浏览器,访问 http://你的服务器IP/info.php

  • 成功:你将看到一个详细的 PHP 信息页面,包含版本、已加载模块等信息。
  • 失败:如果显示“404 Not Found”或"403 Forbidden”,请检查文件权限;如果显示 Nginx 默认欢迎页而不是 PHP 代码,说明 Nginx 没有正确转发给 PHP-FPM。

7. 防火墙配置 (UFW)

Ubuntu 默认可能未开启防火墙,或者开启了但限制了端口。确保允许 HTTP (80) 和 HTTPS (443) 流量。

sudo ufw allow 'Nginx Full'
sudo ufw enable

如果之前已经启用过 UFW,只需执行 sudo ufw allow 'Nginx Full' 即可。


常见问题排查

  1. 权限错误 (Permission Denied)
    如果 Nginx 无法读取 /var/www/html 下的文件,请修复所有者:

    sudo chown -R www-data:www-data /var/www/html
    sudo chmod -R 755 /var/www/html
  2. 找不到 PHP-FPM Socket
    如果在 Nginx 配置中 fastcgi_pass 路径报错,请确认 PHP 版本:

    ls /run/php/

    根据输出结果调整 Nginx 配置中的 socket 路径(例如 php8.3-fpm.sockphp8.4-fpm.sock)。

  3. SELinux/AppArmor
    Ubuntu 使用 AppArmor 而非 SELinux。如果遇到奇怪的拒绝访问,可以临时关闭 AppArmor 进行测试(不推荐生产环境长期使用):

    sudo systemctl stop apparmor

至此,你的 Ubuntu Server 24.04 LNMP 环境已成功搭建完毕。你可以开始部署 WordPress、Laravel 或其他基于 PHP 的应用了。