在 Linux Mint 上部署 LNMP 环境

举报
Chocola 发表于 2026/09/17 09:21:23 2026/09/17
【摘要】 如果你最近在折腾 Linux Mint 上的 Web 环境,或者想给本地开发环境搭一套干净的 LNMP(Nginx + MySQL/MariaDB + PHP),这篇指南会带你一步步完成部署。相比 CentOS 或 Ubuntu Server,Mint 作为桌面发行版,配置上有一些细节需要注意,尤其是权限和 PHP-FPM 的 sock 路径。 一、环境准备首先更新系统包,确保源是最新的:s...

如果你最近在折腾 Linux Mint 上的 Web 环境,或者想给本地开发环境搭一套干净的 LNMP(Nginx + MySQL/MariaDB + PHP),这篇指南会带你一步步完成部署。相比 CentOS 或 Ubuntu Server,Mint 作为桌面发行版,配置上有一些细节需要注意,尤其是权限和 PHP-FPM 的 sock 路径。


一、环境准备

首先更新系统包,确保源是最新的:

sudo apt update && sudo apt upgrade -y

安装一些常用工具(如果还没装的话):

sudo apt install -y wget curl git vim

二、安装 Nginx

sudo apt install -y nginx

启动并设置开机自启:

sudo systemctl start nginx
sudo systemctl enable nginx

验证:浏览器访问 http://localhost,看到 “Welcome to nginx!” 即表示安装成功。


三、安装数据库(MariaDB / MySQL)

这里推荐 MariaDB,它是 MySQL 的社区分支,兼容性一致且更轻量:

sudo apt install -y mariadb-server mariadb-client

启动并设置开机自启:

sudo systemctl start mariadb
sudo systemctl enable mariadb

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

sudo mysql_secure_installation

如果想用 MySQL 官方版本,替换为:

sudo apt install -y mysql-server
sudo mysql_secure_installation

四、安装 PHP 及常用扩展

Linux Mint 基于 Ubuntu/Debian,直接用 apt 安装即可。这里以 PHP 8.1 为例(Mint 21 系列默认源通常提供 8.1):

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

启动 PHP-FPM 并设置开机自启:

sudo systemctl start php8.1-fpm
sudo systemctl enable php8.1-fpm

注意:PHP 版本号可能因 Mint 版本不同而异,可以用 php -v 确认实际版本,然后对应调整后面的配置。


五、配置 Nginx 支持 PHP

编辑默认站点配置:

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

server 块修改为以下内容(关键是把 PHP 请求转发给 PHP-FPM):

server {
    listen 80;
    server_name localhost;
    root /var/www/html;
    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;
    }

    location ~ /\.ht {
        deny all;
    }
}

关键点fastcgi_pass 的 sock 路径一定要和实际 PHP-FPM 的监听地址一致。可以用 ls /run/php/ 查看实际的 sock 文件名,不同版本可能是 php8.1-fpm.sockphp-fpm.sock

测试配置并重载 Nginx:

sudo nginx -t
sudo systemctl reload nginx

六、测试 PHP 是否正常工作

创建一个测试文件:

echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php

浏览器访问 http://localhost/info.php,能看到 PHP 信息页面即表示 LNMP 环境搭建成功。

安全提示:测试完成后记得删除 info.php,避免泄露服务器敏感信息。


七、配置防火墙(可选但推荐)

如果启用了 UFW,放行 HTTP/HTTPS:

sudo ufw allow 'Nginx Full'
sudo ufw enable

八、常见问题排查

问题 可能原因 解决方法
502 Bad Gateway PHP-FPM 未启动或 sock 路径错误 sudo systemctl status php*-fpm 检查状态,确认 fastcgi_pass 路径正确
PHP 文件直接下载 Nginx 未正确解析 PHP 检查 location ~ \.php$ 块是否配置并生效
403 Forbidden 目录权限问题或 index 文件缺失 sudo chown -R www-data:www-data /var/www/html,确认 index.php 存在
数据库连接失败 PHP 缺少 mysql 扩展 确认已安装 php-mysql 并重启 PHP-FPM

九、进阶:配置虚拟主机(多站点)

如果你需要托管多个站点,可以为每个站点创建独立配置。以 mysite 为例:

sudo mkdir -p /var/www/mysite
sudo chown -R www-data:www-data /var/www/mysite
sudo nano /etc/nginx/sites-available/mysite

配置文件示例:

server {
    listen 80;
    server_name mysite.local;
    root /var/www/mysite;
    index index.php index.html;

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

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php8.1-fpm.sock;
    }
}

启用站点:

sudo ln -s /etc/nginx/sites-available/mysite /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginx

十、可选:配置 HTTPS(Let’s Encrypt)

如果有域名,可以用 certbot 免费申请 SSL 证书:

sudo apt install -y certbot python3-certbot-n
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。