LNMP环境部署笔记
一、LNMP环境核心概述LNMP是LinuxNginxMySQL/MariaDBPHP的经典Web服务组合属于轻量高效、开源免费的生产级Web运行环境相比LAMP架构Nginx占用资源更少、高并发处理能力更强广泛用于搭建博客、电商、企业官网等各类PHP动态网站。核心组件分工Linux底层操作系统提供稳定运行载体主流版本为CentOS 7/8、Alibaba Cloud Linux、Ubuntu 20.04/22.04Nginx高性能Web服务器负责接收HTTP请求、分发静态资源、转发PHP请求至PHP-FPMMySQL/MariaDB关系型数据库存储网站数据MariaDB兼容MySQL且开源更友好生产环境优先选用PHP-FPMPHP进程管理器专门处理PHP脚本解析实现Nginx与PHP的高效联动部署前提建议服务器内存≥2GB具备root或sudo权限网络通畅提前放行80/443端口公网访问必备关闭SELinux和防火墙或配置放行规则。二、部署前前置准备必做2.1 系统初始化与依赖安装先清理系统自带冲突软件更新系统并安装基础工具避免后续安装报错。CentOS/Alibaba Cloud Linux系统# 卸载自带Apache、旧版PHP、Nginx yum remove httpd php* nginx -y # 关闭SELinux临时永久 setenforce 0 sed -i s/SELINUXenforcing/SELINUXdisabled/ /etc/selinux/config # 关闭防火墙或放行端口 systemctl stop firewalld systemctl disable firewalld # 更新系统并安装基础依赖 yum update -y yum install wget curl vim gcc gcc-c pcre-devel zlib-devel openssl-devel -yUbuntu/Debian系统# 卸载自带Apache、旧版PHP apt-get remove apache2 php* nginx -y # 更新软件源 apt update -y apt upgrade -y # 安装基础依赖 apt install wget curl vim build-essential libpcre3 libpcre3-dev zlib1g-dev openssl libssl-dev -y2.2 端口与网络配置云服务器需在控制台安全组放行TCP 80端口HTTP、443端口HTTPS本地服务器关闭防火墙或放行对应端口确保公网可访问。三、手动分步部署LNMP推荐定制化手动部署可灵活调整组件版本、配置参数适合有一定Linux基础、需要个性化定制环境的场景以CentOS 7为例Ubuntu系统仅需替换包管理命令yum换apt。3.1 安装Nginx# 添加Nginx官方源 cat /etc/yum.repos.d/nginx.repo EOF [nginx-stable] namenginx stable repo baseurlhttps://nginx.org/packages/centos/7/\$basearch/ gpgcheck1 enabled1 gpgkeyhttps://nginx.org/keys/nginx_signing.key EOF # 安装Nginx yum install -y nginx # 启动并设置开机自启 systemctl enable --now nginx # 验证Nginx状态 systemctl status nginx # 浏览器访问服务器IP出现Nginx欢迎页即安装成功3.2 安装MySQL/MariaDB生产环境优先选MariaDB兼容MySQL且无版权风险安装更简便。# 安装MariaDB服务端和客户端 yum install -y mariadb-server mariadb # 启动并设置开机自启 systemctl enable --now mariadb # 数据库安全加固必做提升安全性 mysql_secure_installation # 加固步骤设置root强密码、移除匿名用户、禁止root远程登录、删除测试数据库、重载权限验证数据库输入 mysql -u root -p输入设置的密码能正常登录即成功。3.3 安装PHP与PHP-FPMPHP版本推荐8.0以上需安装PHP-FPM和常用扩展确保Nginx联动和网站功能正常。# 安装Remi源提供新版PHP yum install -y http://rpms.remirepo.net/enterprise/remi-release-7.rpm # 启用PHP8.2版本 yum install -y yum-utils yum-config-manager --enable remi-php82 # 安装PHP及核心扩展 yum install -y php php-fpm php-mysqlnd php-gd php-mbstring php-xml php-curl php-zip php-bcmath php-opcache # 启动并设置开机自启 systemctl enable --now php-fpm # 验证PHP版本 php -v3.4 Nginx与PHP-FPM联动配置默认Nginx不支持PHP解析需修改配置文件转发PHP请求至PHP-FPM。# 备份默认配置 cp /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf.bak # 编辑Nginx配置 vim /etc/nginx/conf.d/default.conf # 修改核心配置如下 server { listen 80; server_name 服务器IP或域名; root /usr/share/nginx/html; index index.php index.html index.htm; location / { try_files \$uri \$uri/ /index.php?$query_string; } # 解析PHP文件 location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME \$document_root\$fastcgi_script_name; include fastcgi_params; } } # 检查配置是否有误 nginx -t # 重启Nginx生效 systemctl restart nginx3.5 环境验证# 创建PHP测试文件 echo ?php phpinfo(); ? /usr/share/nginx/html/phpinfo.php # 浏览器访问 http://服务器IP/phpinfo.php # 出现PHP环境信息页面即LNMP环境部署成功 # 测试完成后删除测试文件防止敏感信息泄露 rm -rf /usr/share/nginx/html/phpinfo.php四、一键部署LNMP新手推荐使用官方LNMP一键安装包无需手动配置适合快速搭建环境全程自动化安装步骤极简。# 下载一键安装包 wget http://soft.vpser.net/lnmp/lnmp1.9.tar.gz # 解压安装包 tar -zxvf lnmp1.9.tar.gz # 进入目录 cd lnmp1.9 # 赋予执行权限并安装 chmod x install.sh ./install.sh lnmp # 安装过程中按提示设置MySQL root密码、选择PHP版本、是否安装其他组件等待10-20分钟即可完成 # 安装完成后输入lnmp start/stop/restart 可管理服务一键安装包默认路径Nginx配置/usr/local/nginx/conf/MySQL路径/usr/local/mysql/PHP路径/usr/local/php/网站根目录/home/wwwroot/。五、核心服务管理命令操作NginxMariaDB/MySQLPHP-FPM一键包通用启动服务systemctl start nginxsystemctl start mariadbsystemctl start php-fpmlnmp start停止服务systemctl stop nginxsystemctl stop mariadbsystemctl stop php-fpmlnmp stop重启服务systemctl restart nginxsystemctl restart mariadbsystemctl restart php-fpmlnmp restart查看状态systemctl status nginxsystemctl status mariadbsystemctl status php-fpmlnmp status开机自启systemctl enable nginxsystemctl enable mariadbsystemctl enable php-fpm默认自启六、常见故障排查6.1 访问网站显示502 Bad Gateway原因PHP-FPM未启动或Nginx配置中fastcgi_pass地址错误解决启动php-fpm服务核对www.conf中listen地址与Nginx配置一致6.2 访问PHP文件直接下载不解析原因Nginx未配置PHP解析规则或配置文件未生效解决重新检查Nginx配置执行nginx -t校验重启Nginx6.3 无法连接数据库原因数据库服务未启动、密码错误、权限不足解决启动数据库服务核对账号密码给PHP用户授予数据库权限6.4 公网无法访问网站原因安全组未放行80端口、防火墙未关闭、Nginx未启动解决放行端口、关闭防火墙、启动Nginx服务七、生产环境安全加固与优化数据库安全禁止root远程登录创建专用数据库用户设置强密码定期备份数据Nginx优化开启gzip压缩、设置缓存策略、隐藏Nginx版本号PHP优化开启opcache加速调整进程数限制文件上传大小权限管控网站目录权限设为755文件权限644避免root用户直接运行Web服务日志管理开启Nginx、PHP、MySQL日志定期清理日志文件排查异常访问八、部署总结LNMP环境部署分为手动定制和一键快速两种方式新手建议优先使用一键包效率高、出错率低有定制需求的用户可选择手动部署灵活调整组件版本和配置。部署完成后务必做好安全加固和服务优化保证网站稳定运行同时定期备份数据防止数据丢失。