lnmp环境在ubuntu上需按nginx→mysql→php顺序安装并配置协同:nginx处理请求并转发.php至php-fpm,php-fpm执行代码调用mysql,mysql持久化数据;安装前须换国内源、关防火墙、更新系统,再通过ppa安装php 8.1及扩展,最后配置socket通信、权限与测试页验证。

在Ubuntu服务器上从零搭建LNMP环境,核心是理清组件职责与协作逻辑:Nginx负责接收请求并分发(静态资源直答,PHP脚本转交PHP-FPM),PHP-FPM执行PHP代码并调用MySQL,MySQL持久化数据。整个过程不依赖面板或Docker,强调可控性、可排查性与生产就绪能力。
安装前准备:换源 + 关防火墙 + 更新系统
国内访问官方源慢,先切阿里云或清华源:
- 查系统代号:
lsb_release -sc(如 jammy、focal) - 备份原源:
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak - 写入新源(以 Ubuntu 22.04 jammy 为例):
sudo tee /etc/apt/sources.list deb https://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse<br> deb https://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse<br> deb https://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse<br> EOF
- 更新并升级:
sudo apt update && sudo apt upgrade -y - 关闭ufw防火墙(若未启用可跳过):
sudo ufw disable;如需开放端口,后续单独放行80/443即可
依次安装 Nginx、MySQL、PHP 及关键扩展
按依赖顺序安装,避免版本冲突:
-
Nginx:
sudo apt install nginx -y;验证:sudo systemctl status nginx,浏览器访问服务器IP应见欢迎页 -
MySQL(推荐 MariaDB 更轻量兼容):
sudo apt install mariadb-server -y;立即加固:sudo mysql_secure_installation,按提示禁用匿名用户、禁止root远程登录、删除test库、重置密码策略 -
PHP 及运行时:
添加 Ondřej Surý 的 PHP PPA 源(含多版本支持):sudo apt install software-properties-common -ysudo add-apt-repository ppa:ondrej/php -ysudo apt update
安装 PHP 8.1(主流稳定版)及常用扩展:sudo apt install php8.1-fpm php8.1-mysql php8.1-curl php8.1-gd php8.1-mbstring php8.1-xml php8.1-zip php8.1-opcache -y
配置 Nginx 与 PHP-FPM 协同工作
这是最容易出错的一环,关键是让 Nginx 正确把 .php 请求交给 PHP-FPM 处理:
- 确认 PHP-FPM 监听方式:
sudo cat /etc/php/8.1/fpm/pool.d/www.conf | grep listen,默认为 Unix socket:listen = /run/php/php8.1-fpm.sock - 编辑站点配置:
sudo nano /etc/nginx/sites-available/default,确保包含以下关键段落:index index.php index.html;location ~ \.php$ {<br> include snippets/fastcgi-php.conf;<br> fastcgi_pass unix:/run/php/php8.1-fpm.sock;<br> } - 测试配置语法:
sudo nginx -t;无报错则重载:sudo systemctl reload nginx - 创建测试文件:
echo '<?php phpinfo(); ?>' | sudo tee /var/www/html/info.php;浏览器访问http://你的IP/info.php应显示 PHP 信息页
权限、安全与基础可用性收尾
避免“502 Bad Gateway”或“File not found”,重点检查三处:
-
目录权限:Web 根目录(如
/var/www/html)属主设为www-data:sudo chown -R www-data:www-data /var/www/html -
PHP-FPM 用户组:检查
/etc/php/8.1/fpm/pool.d/www.conf中user和group是否均为www-data,否则修改后重启:sudo systemctl restart php8.1-fpm -
SELinux 不适用 Ubuntu:Ubuntu 默认不用 SELinux,无需处理;但务必确认 AppArmor 未误拦截(
sudo aa-status查看,一般默认宽松) - 部署一个最小 WordPress 验证全流程:
下载解压到/var/www/html→ 创建 MySQL 数据库与用户 → 修改wp-config.php→ 访问安装向导完成初始化
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











