php在Linux怎么部署_LNMP环境搭建PHP服务的详细指南【指南】


应先确认系统类型再配置PHP环境:CentOS/RHEL需添加Remi源启用PHP 8.2,Ubuntu/Debian需启用universe源;LNMP必须用php-fpm而非mod_php;Nginx需正确配置fastcgi_pass并验证php-fpm运行状态;注意MySQL用户权限、扩展加载及SELinux等权限问题。

确认 Linux 发行版和软件源状态

不同发行版的包管理器和默认仓库内容差异很大,直接 yum install phpapt install php 可能装到过时版本(如 PHP 7.4),甚至缺关键模块(如 php-fpmphp-mysqlnd)。务必先查清系统类型:

cat /etc/os-release
。CentOS/RHEL 8+ 默认用 dnf,且官方源已移除 PHP;Ubuntu 22.04 默认带 PHP 8.1,但扩展需单独安装。

  • Debian/Ubuntu:确保启用 universe 源(/etc/apt/sources.list 中含 deb http://archive.ubuntu.com/ubuntu jammy universe
  • CentOS Stream / Rocky Linux:必须添加 Remi 仓库(dnf install https://rpms.remirepo.net/enterprise/remi-release-9.rpm),再启用 PHP 8.2 模块:dnf module enable php:remi-8.2
  • 跳过 EPEL 单独装 PHP —— 它不提供主 PHP 包,只补工具类扩展

安装 Nginx + PHP-FPM 而非 mod_php

LNMP 中 PHP 必须以 php-fpm 方式运行,Nginx 本身不解析 PHP 文件。装错成 Apache 的 libapache2-mod-php 或 Nginx 的 php-cgi(已废弃)会导致 502 Bad Gateway 或 404。

  • 安装命令示例(Ubuntu 22.04):apt install nginx php-fpm php-mysql php-curl php-gd php-mbstring php-xml php-zip
  • 关键配置文件路径:/etc/php/8.1/fpm/pool.d/www.conf(监听套接字或端口)、/etc/nginx/sites-enabled/default(Nginx 需 proxy_pass 到 unix:/run/php/php8.1-fpm.sock127.0.0.1:9000
  • 务必检查 php-fpm 是否启用并运行:systemctl is-enabled php8.1-fpmsystemctl status php8.1-fpm,否则 Nginx 请求会超时

验证 PHP 是否被 Nginx 正确调用

常见错误是 Nginx 配置里漏了 fastcgi_pass,或 fastcgi_param SCRIPT_FILENAME 指向错误路径,导致返回空白页或直接下载 .php 文件。

  • /var/www/html/info.php 写:
  • Nginx server 块中必须包含:
    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php8.1-fpm.sock;
    }
  • 若看到下载 info.php,说明 Nginx 根本没把请求交给 PHP-FPM —— 检查 location 是否被更宽泛的规则(如 location /)覆盖,或 fastcgi_pass 地址与 php-fpm 实际监听地址不一致

MySQL 连接权限与 PHP 扩展加载问题

PHP 脚本能跑 phpinfo() 不代表能连数据库。两个高频断点:MySQL 用户未授权远程(或 localhost)访问,以及 mysqlipdo_mysql 扩展未启用。

  • 检查扩展是否加载:php -m | grep -E 'mysqli|pdo_mysql';若无输出,编辑 /etc/php/8.1/fpm/php.ini,取消注释 extension=mysqliextension=pdo_mysql,然后重启 php8.1-fpm
  • MySQL 创建用户时别用 'user'@'%' 就完事 —— 若 PHP-FPM 与 MySQL 同机,Nginx 传来的连接常是 localhost,需显式建 'user'@'localhost'GRANT 权限
  • mysqli_connect() 报错 Connection refused:优先查 mysql.service 是否运行,再查 bind-address 是否设为 127.0.0.1(而非 0.0.0.0 或注释掉)
Nginx 的 root 目录权限、PHP-FPM 的 user/group(默认 www-datanginx)、SELinux 策略(RHEL 系默认开启)——这三个地方出问题,比 PHP 语法错误更难定位。


# mysql  # php  # linux  # centos  # html  # php8  # apache  # nginx  # 端口  # ubuntu  # 工具  # gateway  # xml  # cURL  # mysqli  # CGI  # var  # default  # location  # 数据库  # http  # https  # debian  # unix  # 而非  # 加载  # 发行版  # 设为  # 不代表  # 管理器  # 报错  # 重启  # 它不  # 这三个 


相关栏目: 【 Google疑问12 】 【 Facebook疑问10 】 【 网络优化76771 】 【 技术知识130152 】 【 IDC云计算60162 】 【 营销推广131313 】 【 AI优化88182 】 【 百度推广37138 】 【 网站推荐60173 】 【 精选阅读31334


相关推荐: Python对象生命周期管理_创建销毁解析【教程】  php下载安装包太大怎么下载_分卷压缩下载方法【教程】  为什么Go需要go mod文件_Go go mod文件作用说明  如何在Golang中实现自定义Benchmark_Golang testing.B自定义性能测量示例  Python类装饰器使用_元编程解析【教程】  php本地部署后session无法保存_session存储路径与权限设置技巧【技巧】  如何使用Golang捕获并记录协程panic_保证主程序稳定运行  Win11怎么开启剪贴板历史记录_Windows11 Win+V键使用技巧  如何使用Golang实现跨域请求支持_Golang CORS配置与处理方法  Win11怎么关闭自动修复_跳过Win11开机自动修复循环【技巧】  Python项目回滚策略_发布安全说明【指导】  php串口通信波特率怎么选_根据硬件手册设置正确波特率【方法】  Win11如何更改用户账户文件夹名称 Win11修改C:Users用户名【终极教程】  Go 中 defer 语句在 goroutine 内部不返回时不会执行  Win11怎么更改鼠标指针_Windows 11自定义鼠标样式与大小【美化】  Win11怎么查看wifi信号强度_检测Windows 11无线网络质量方法【详解】  GML (Geography Markup Language)是什么,它如何用XML来表示地理空间信息?  MySQL 中使用 IF 和 CASE 实现查询字段条件化显示  Python函数参数高级用法_默认值与可变参数解析【教程】  Win11怎么调整屏幕亮度_Windows 11调节显示器亮度护眼设置【步骤】  Python与Docker容器化部署实战_镜像构建与CI/CD流程  如何使用正则表达式精确匹配最多含一个换行符的 start-end 区段  Python技术债务管理_长期维护解析【教程】  如何高效识别并拦截拼接式恶意域名 spam  Mac如何开启夜览模式_Mac护眼模式设置与定时  如何在 Go 中创建包含 map 的 slice(嵌套数据结构)  php中常量能用::访问吗_类常量与作用域操作符使用场景【汇总】  如何使用Golang安装API文档生成工具_快速生成接口文档  Win11怎么快速锁屏_Win11一键锁屏快捷键Win+L【基础】  Python异步网络编程_aiohttp说明【指导】  Windows 10怎么录屏_Windows 10使用Xbox Game Bar录制屏幕视频教程  Win11声音太小怎么办_Windows 11开启响度均衡增强音量【技巧】  如何在Golang中写入JSON文件_保存结构体数据到文件  c++ std::future和std::promise c++线程间通信【教程】  c# 如何深拷贝和浅拷贝  Windows10怎么用“讲述人”读屏辅助 Windows10轻松使用开启讲述人朗读屏幕文字帮助视障用户【教程】  使用类变量定义字符串常量时如何实现类型安全的 Literal 注解  Windows蓝屏BAD_POOL_HEADER故障详解_蓝屏池损坏错误修复指南  LINUX怎么查看进程_LINUX ps命令查看运行服务  Win11如何设置文件权限 Win11 NTFS文件夹所有权与安全设置【高级】  Win11怎么查看已连接wifi密码 Win11查已连wifi密码步骤【教程】  Win11如何更改任务栏颜色 Win11自定义任务栏背景色【美化】  C++如何获取CPU核心数?(std::thread::hardware_concurrency)  Windows Defender扫描失败怎么办_安全模块损坏修复方式  如何有效拦截拼接式恶意域名的垃圾信息  php会话怎么开启_session_start函数的作用与使用时机【方法】  Windows10无法连接到Internet_Win10网络重置命令详解  Windows10电脑怎么设置电源按钮_Win10按电源键关机或休眠  Win11怎么设置右键刷新选项_Windows11显示更多选项技巧  Win11怎么设置快速访问_Windows11文件资源管理器主页 

 2026-01-01

了解您产品搜索量及市场趋势,制定营销计划

同行竞争及网站分析保障您的广告效果

点击免费数据支持

提交您的需求,1小时内享受我们的专业解答。

致胜网络推广营销网


致胜网络推广营销网

致胜网络推广营销网专注海外推广十年,是谷歌推广.Facebook广告全球合作伙伴,我们精英化的技术团队为企业提供谷歌海外推广+外贸网站建设+网站维护运营+Google SEO优化+社交营销为您提供一站式海外营销服务。

 915688610

 17370845950

 915688610@qq.com

Notice

We and selected third parties use cookies or similar technologies for technical purposes and, with your consent, for other purposes as specified in the cookie policy.
You can consent to the use of such technologies by closing this notice, by interacting with any link or button outside of this notice or by continuing to browse otherwise.