我的资料
首页
Linux技术
开发指南
前端技术
快速开始
Gitee
首页
Linux技术
开发指南
前端技术
快速开始
Gitee
  • Linux技术文档

    • Linux 技术文档
    • VSCode SSH远程连接教程
    • LNMP环境安装指南
    • phpMyAdmin 安装与配置
    • ab-test 压力测试
    • Docker Desktop 开发 & 生产部署
    • Docker 静态站点部署指南
    • WSL2 + Docker 本地开发 & 生产部署

本文档详细介绍在Ubuntu系统(VMware虚拟机)中搭建LNMP(Linux + Nginx + MySQL + PHP)环境的完整流程。


📋 环境要求

  • 操作系统:Ubuntu 20.04/22.04 LTS
  • 虚拟化平台:VMware Workstation/Player
  • PHP版本:8.3
  • 权限要求:sudo权限

🔧 系统准备

# 更新系统包
sudo apt update && sudo apt upgrade -y

🌐 1. 安装Nginx

Nginx是一个高性能的Web服务器,我们将使用它作为LNMP环境的Web服务器。

# 安装Nginx
sudo apt install nginx -y

# 启动并设置开机自启
sudo systemctl start nginx
sudo systemctl enable nginx

🗄️ 2. 安装MySQL

MySQL是流行的关系型数据库管理系统。

# 安装MySQL服务器
sudo apt install mysql-server -y

# 启动并设置开机自启
sudo systemctl start mysql
sudo systemctl enable mysql

# 安全配置(推荐)
sudo mysql_secure_installation

🔒 MySQL安全配置说明

运行安全配置脚本时,建议进行以下设置:

  • 设置root密码
  • 移除匿名用户
  • 禁止root远程登录
  • 移除测试数据库
  • 重新加载权限表

💻 3. 安装PHP 8.3

PHP是一种广泛使用的服务器端脚本语言,我们将安装PHP 8.3及其常用扩展。

# 添加PHP PPA仓库
sudo apt install software-properties-common -y
sudo add-apt-repository ppa:ondrej/php -y
sudo apt update

# 安装PHP 8.3及常用扩展
sudo apt install php8.3 php8.3-fpm php8.3-mysql php8.3-cli php8.3-curl php8.3-gd php8.3-mbstring php8.3-xml php8.3-zip -y

# 启动并设置PHP-FPM开机自启
sudo systemctl start php8.3-fpm
sudo systemctl enable php8.3-fpm

📦 PHP扩展说明

  • php8.3-fpm: FastCGI进程管理器
  • php8.3-mysql: MySQL数据库连接
  • php8.3-cli: 命令行接口
  • php8.3-curl: HTTP客户端支持
  • php8.3-gd: 图像处理
  • php8.3-mbstring: 多字节字符串处理
  • php8.3-xml: XML处理
  • php8.3-zip: ZIP文件处理

⚙️ 4. 配置Nginx支持PHP

配置Nginx以处理PHP文件,确保与PHP-FPM正确通信。

# 备份原始配置文件(重要!)
sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/default.backup

# 编辑Nginx配置文件
sudo nano /etc/nginx/sites-available/default

在server块内添加以下PHP处理配置:

location ~ \.php$ {
    include snippets/fastcgi-php.conf;
    fastcgi_pass unix:/var/run/php/php8.3-fpm.sock;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
}

💡 配置说明

  • snippets/fastcgi-php.conf: 包含FastCGI的标准配置
  • fastcgi_pass: 指定PHP-FPM的Unix套接字路径
  • fastcgi_param SCRIPT_FILENAME: 设置PHP脚本的完整路径

🎯 框架路由重写配置(可选)

如果您使用ThinkPHP或Laravel等框架,需要配置URL重写以支持友好URL。

📦 ThinkPHP框架配置

# 在server块内添加ThinkPHP路由配置(适用于TP8)
location / {
    if (!-e $request_filename){
        rewrite  ^(.*)$  /index.php?s=$1  last;   break;
    }
}

# 静态文件处理
location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg)$ {
    expires 7d;
    add_header Cache-Control "public";
}

💡 说明:此配置适用于ThinkPHP 8.x版本,使用传统的URL重写模式,能更好地兼容TP8的路由机制。

🎭 Laravel框架配置

# 在server块内添加Laravel路由配置
location / {
    try_files $uri $uri/ /index.php?$query_string;
}

# 静态资源处理
location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
    expires 1y;
    add_header Cache-Control "public";
}

# 隐藏敏感文件
location ~ /\.ht {
    deny all;
}

🔧 完整配置示例(ThinkPHP 8)

server {
    listen 80;
    server_name your_domain.com;
    root /var/www/html;
    index index.php index.html index.htm;

    # ThinkPHP 8路由配置
    location / {
        if (!-e $request_filename){
            rewrite  ^(.*)$  /index.php?s=$1  last;   break;
        }
    }

    # PHP处理
    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php8.3-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }

    # 静态文件缓存
    location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg)$ {
        expires 7d;
        add_header Cache-Control "public";
    }

    # 安全配置
    location ~ /\.ht {
        deny all;
    }
}

⚠️ 注意事项

  1. 将 your_domain.com 替换为您的域名或服务器IP
  2. 确保框架的入口文件权限正确
  3. 配置完成后需要重新加载Nginx:sudo systemctl reload nginx
  4. ThinkPHP 8推荐使用 rewrite ^(.*)$ /index.php?s=$1 last 的重写规则
  5. 如需使用Laravel,仍使用 try_files $uri $uri/ /index.php?$query_string 配置

🧪 5. 测试配置

验证LNMP环境是否正常工作。

# 测试Nginx配置语法
sudo nginx -t

# 重新加载Nginx配置
sudo systemctl reload nginx

# 创建PHP测试文件
echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php

✅ 验证步骤

  1. 访问 http://服务器IP - 应显示Nginx欢迎页面
  2. 访问 http://服务器IP/info.php - 应显示PHP信息页面
  3. 检查服务状态是否正常运行

📊 6. 安装phpMyAdmin(可选)

phpMyAdmin是一个基于Web的MySQL数据库管理工具,方便数据库操作。

# 安装phpMyAdmin
sudo apt install phpmyadmin -y

# 创建符号链接到Web根目录
sudo ln -s /usr/share/phpmyadmin /var/www/html/phpmyadmin

📝 安装提示

在安装过程中,系统可能会询问:

  • Web服务器选择:如果显示选项列表,选择nginx;如果没有nginx选项,直接按Tab键跳过此项
  • 数据库配置:使用dbconfig-common自动配置,选择"是"即可

⚠️ 重要提示

  • Ubuntu 22.04的phpMyAdmin安装包可能不包含nginx选项,这是正常现象
  • 直接按Tab键跳过Web服务器配置步骤即可,稍后我们会手动创建符号链接
  • 配置mysql数据库时,输入root用户密码(建议与MySQL服务器密码保持一致)

安装完成后,访问 http://服务器IP/phpmyadmin 即可使用。

🔥 7. 防火墙配置

配置防火墙以允许Web服务访问。

# 允许HTTP和HTTPS流量
sudo ufw allow 'Nginx Full'

# 检查防火墙状态
sudo ufw status

🛡️ 防火墙说明

  • Nginx Full: 同时允许HTTP(80)和HTTPS(443)端口
  • 如需SSH访问,可运行:sudo ufw allow 'OpenSSH'
  • 启用防火墙:sudo ufw enable

🛠️ 服务管理命令

常用的服务管理命令,用于日常运维和故障排查。

📊 查看服务状态

# 查看各个服务状态
sudo systemctl status nginx
sudo systemctl status mysql
sudo systemctl status php8.3-fpm

# 一次性查看所有服务状态
sudo systemctl status nginx mysql php8.3-fpm

🔄 重启服务

# 重启单个服务
sudo systemctl restart nginx
sudo systemctl restart mysql
sudo systemctl restart php8.3-fpm

# 同时重启所有服务
sudo systemctl restart nginx mysql php8.3-fpm

📝 查看日志

# 查看Nginx系统日志
sudo journalctl -u nginx -f

# 查看Nginx错误日志
sudo tail -f /var/log/nginx/error.log

# 查看MySQL日志
sudo journalctl -u mysql -f

# 查看PHP-FPM日志
sudo journalctl -u php8.3-fpm -f

🌍 访问测试

完成安装后,可以通过以下URL测试各项服务:

服务访问地址说明
Nginxhttp://服务器IP应显示Nginx欢迎页面
PHP信息http://服务器IP/info.php显示PHP配置信息
phpMyAdminhttp://服务器IP/phpmyadmin数据库管理界面

⚠️ 安全提醒

🔒 测试后清理

测试完成后,为了安全起见,建议删除PHP信息文件:

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

🛡️ 安全建议

  1. 定期更新系统:sudo apt update && sudo apt upgrade
  2. 配置MySQL安全策略
  3. 设置强密码
  4. 定期备份数据库
  5. 监控系统日志

🎉 总结

至此,LNMP环境搭建完成!本流程适用于Ubuntu系统在VMware虚拟机中的LNMP环境搭建,使用PHP 8.3版本。

如需部署Web应用,请将文件放置在 /var/www/html/ 目录下,并确保正确的文件权限。

最近更新:: 2025/12/31 14:10
Prev
VSCode SSH远程连接教程
Next
phpMyAdmin 安装与配置

MIT 许可 © 2026 我的资料

Gitee 仓库  |  快速开始

皖ICP备2026030673号-1
皖公网安备34040002000683号