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


相关推荐: 如何在 Go 中高效缓存与分发网络视频流  Win11怎么设置默认邮件客户端 Win11修改Mail应用关联【教程】  Win10如何卸载微软拼音输入法 Win10只保留一个输入法【教程】  如何在 PHP 单元测试中正确模拟带方法的图像处理门面(Facade)  Win11怎么激活Windows10_Win11激活Win10系统方法【步骤】  Win11怎么设置鼠标宏_Win11鼠标按键自定义编程教程【详解】  Mac的访达(Finder)怎么用_Mac文件管理入门教程【详解】  Win11怎么设置任务栏图标大小_Windows11注册表TaskbarSi修改  php转exe用什么工具打包快_高效打包软件推荐【汇总】  PHP主流架构如何做单元测试_工具与流程【详解】  Win10怎么卸载鲁大师_Win10彻底卸载鲁大师方法【步骤】  C#怎么使用委托和事件 C# delegate与event编程方法  Windows10电脑怎么设置虚拟光驱_Win10右键装载ISO镜像文件  php本地部署支持nodejs吗_php与nodejs混合开发环境搭建教程【教程】  windows 10专注助手怎么关闭_windows 10禁用通知提醒功能方法  Win11怎么关闭触摸键盘图标_Windows11任务栏系统托盘设置  Win11文件扩展名怎么显示_Win11查看文件后缀名设置【基础】  如何将文本文件中的竖排字符串转换为横排字符串  Win11怎么开启远程桌面连接_Windows11系统属性远程设置  PHP主流架构怎么处理表单验证_规则与自定义【技巧】  php删除数据怎么清空表_truncate与delete区别及用法【汇总】  如何在JavaScript中动态拼接PHP的base_url与前端变量  php485返回数据不完整怎么办_php485数据分包重组处理方法【教程】  Win11如何设置系统语言_Win11系统语言切换教程【攻略】  Win11怎么关闭右下角弹窗_Win11拦截系统通知广告【设置】  Win11怎么开启窗口对齐助手_Windows11系统多任务处理设置  Python异步编程高级项目教程_asyncio协程任务管理实战  Win11怎么查看硬盘型号_Windows 11检测硬盘信息方法【技巧】  mac怎么右键_MAC鼠标右键设置与触控板手势技巧【入门】  Python数据挖掘核心算法实践_聚类分类与特征工程  如何使用正则表达式提取以编号开头、后接多个注解的逻辑分组块  MySQL 中使用 IF 和 CASE 实现查询字段的条件映射  Win11怎么设置任务栏透明_Windows11使用工具美化任务栏  Win11怎么查看显卡温度 Win11任务管理器查看GPU温度【技巧】  c++ std::atomic如何保证原子性 c++ CAS操作原理【底层】  Python对象比较与排序_集合使用说明【指导】  Win11如何设置省电模式 Win11开启电池节电功能【优化】  VSC怎么在PHP中调试MySQL_数据库交互排查技巧【教程】  PythonDocker高级项目部署教程_多容器管理与CI/CD流水线  Python多线程使用规范_线程安全解析【教程】  c++ unordered_map怎么用 c++哈希表用法【教程】  如何使用Golang操作指针变量_Golang解引用与赋值实践  电脑的“网络和共享中心”去哪了_Windows 11新版网络设置指南【新手】  Laravel 查询 JSON 列:高效筛选包含数组中任意值的记录  Win11怎么更改默认打开方式_Win11关联文件格式教程【详解】  Mac自带的词典App怎么用_Mac添加和使用多语言词典【技巧】  Win11怎么关闭任务栏小图标_Windows11任务栏角溢出设置  php查询数据怎么分组_groupby分组查询配合聚合函数【技巧】  Win11怎么退出高对比度模式_Win11取消反色显示快捷键【修复】  windows如何禁用驱动程序强制签名_windows高级启动设置指南 

 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.