在 Linux Mint 上部署 LNMP 环境
如果你最近在折腾 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.sock或php-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
- 点赞
- 收藏
- 关注作者
评论(0)