LNMP如何部署
部署LNMP环境是Web应用上线的基础步骤,涵盖Ubuntu/Debian与CentOS两大系统。流程包括:更新系统后安装Nginx、MySQL/MariaDB数据库及PHP-FPM与扩展;配置Nginx以支持PHP处理;最后创建测试文件验证环境运行。成功后可进行防火墙设置、SSL证书部署等优化操作。
部署一套稳定、高效的LNMP环境,是许多Web应用上线的第一步。这份指南将带你走通从系统准备到验证上线的完整流程,涵盖Ubuntu/Debian和CentOS两大主流发行版的操作差异。

1. 准备基础环境
首先,确保你的服务器已经安装了Linux操作系统。推荐使用稳定的发行版,例如Ubuntu 22.04/20.04或CentOS Stream 9/8。开始安装前,最好先更新一下系统软件包,这能有效避免后续可能出现的兼容性问题。
- 对于Ubuntu或Debian系统,执行:
sudo apt update && sudo apt upgrade -y - 对于CentOS系统,执行:
sudo yum update -y
2. 安装Nginx(Web服务器)
Nginx将作为我们网站的入口和静态文件服务器。
- Ubuntu/Debian系统:直接通过包管理器安装:
sudo apt install nginx -y。安装完成后,启动Nginx服务并设置为开机自启:sudo systemctl start nginx,sudo systemctl enable nginx。 - CentOS系统:需要先添加EPEL仓库以获取最新版本:
sudo yum install epel-release -y,然后再安装Nginx:sudo yum install nginx -y。同样,启动并设置开机自启。
安装完成后,打开浏览器,访问你的服务器IP地址。如果能看到Nginx的默认欢迎页面(比如“Welcome to nginx!”),那就说明Web服务器已经成功运行了。
3. 安装MySQL/MariaDB(数据库)
接下来是数据库部分,它将负责存储和管理应用数据。
- Ubuntu/Debian系统:执行
sudo apt install mysql-server -y。安装后,强烈建议运行安全配置脚本:sudo mysql_secure_installation。根据提示,设置root用户的强密码、移除匿名用户、禁止root账户远程登录等,这些步骤能极大提升数据库的安全性。 - CentOS系统:默认使用MariaDB,执行
sudo yum install mariadb-server -y。安装后启动服务并设置开机自启:sudo systemctl start mariadb,sudo systemctl enable mariadb。同样,运行sudo mysql_secure_installation完成安全配置。
最后,可以通过 mysql -u root -p 命令尝试登录数据库,验证服务是否正常。
4. 安装PHP及扩展(后端脚本)
PHP是处理动态请求的核心。我们需要安装PHP及其与Nginx、MySQL协作所必需的扩展。
- Ubuntu/Debian系统:执行
sudo apt install php-fpm php-mysql php-xml php-curl php-gd -y。这里安装了PHP-FPM进程管理器、MySQL驱动、XML解析、cURL和GD图像处理等常用扩展。 - CentOS系统:执行
sudo yum install php php-fpm php-mysqlnd -y。注意,php-mysqlnd是MySQL的原生驱动,性能上通常更有优势。
安装完成后,启动PHP-FPM服务并设置开机自启:sudo systemctl start php-fpm,sudo systemctl enable php-fpm。Nginx正是通过FastCGI协议与PHP-FPM进行通信的。
5. 配置Nginx支持PHP
这是让Nginx和PHP“握手”的关键一步。你需要编辑Nginx的默认站点配置文件。
- Ubuntu/Debian:配置文件通常在
/etc/nginx/sites-a vailable/default - CentOS:配置文件通常在
/etc/nginx/conf.d/default.conf
使用文本编辑器(如nano)打开对应文件,找到 location ~ \.php$ 这个代码块。确保其内容如下(注意根据你的PHP版本调整fastcgi_pass的路径,例如PHP 8.2对应 /run/php/php8.2-fpm.sock):
location ~ \.php$ {
include snippets/fastcgi-php.conf; # 包含FastCGI配置片段
fastcgi_pass unix:/run/php/php-fpm.sock; # 与PHP-FPM通信的socket路径
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; # 设置脚本文件路径
include fastcgi_params; # 包含通用FastCGI参数
}
保存文件后,先测试一下配置语法是否正确:sudo nginx -t。如果输出显示“syntax is ok”,就说明配置无误。最后,重启Nginx服务使配置生效:sudo systemctl restart nginx。
6. 验证LNMP环境
环境搭建好了,是时候验收成果了。在Nginx的默认网站根目录(通常是 /var/www/html)创建一个PHP测试文件:
sudo nano /var/www/html/info.php
在文件中写入以下内容并保存:
现在,打开浏览器,访问 http://你的服务器IP/info.php。如果一切顺利,你将看到一个详细的PHP信息页面,上面列出了PHP版本、已加载的扩展等信息。看到这个页面,恭喜你,LNMP环境已经成功搭建!
7. 后续优化(可选但重要)
基础环境跑通后,还有几个优化步骤能让你的服务器更安全、更专业。
- 配置防火墙:开放Web服务所需的端口。以Ubuntu的UFW防火墙为例,执行
sudo ufw allow 'Nginx Full'(允许HTTP 80和HTTPS 443端口),然后启用防火墙:sudo ufw enable。 - 部署SSL证书:为你的域名启用HTTPS加密。Let’s Encrypt提供了免费的SSL证书。在Ubuntu上,可以安装Certbot工具:
sudo apt install certbot python3-certbot-nginx -y,然后为你的域名配置SSL:sudo certbot --nginx -d yourdomain.com。 - 创建网站目录:如果你要部署自己的网站,建议在
/var/www/html下为每个站点创建独立的目录,例如sudo mkdir -p /var/www/html/yourdomain.com。别忘了设置正确的文件所有权,确保Nginx有权限读取:sudo chown -R www-data:www-data /var/www/html/yourdomain.com(www-data是Nginx在Ubuntu/Debian上的默认运行用户,CentOS上通常是nginx用户)。


































