当前位置: 首页 > news >正文

打开nginx连接的php页面报错502

 

目录

问题描述:

原因:

1. 使用 Unix 域套接字(Unix Socket)

区别和优势:

2. 使用 TCP/IP 套接字

区别和优势:

如何选择

扩展:Rocky_Linux9.4安装PHP的步骤:

使用Remi存储库安装PHP


问题描述:

遇到安装的php服务,查看端口有些版本linux发现有9000端口,有些版本没有查到9000端口,但是php-fpm是在运行的,然后检查nginx的配置和php都没啥问题,但是打开网页显示显示502网关错误。

原因:

PHP在不同Linux发行版或者不同版本中,对应的PHP的监听方式不同,然后和Nginx配置的location中fastcgi_pass参数配置不一致导致的。

在配置Nginx与PHP-FPM时,可以选择两种不同的方式来指定PHP-FPM的监听方式,分别是使用Unix域套接字(Unix socket)和TCP/IP套接字(IP socket)。

 

 

1. 使用 Unix 域套接字(Unix Socket)

  • 配置方式fastcgi_pass unix:/run/php-fpm/www.sock;
  • PHP-FPM 配置listen = /run/php-fpm/www.sock
区别和优势:
  • 性能:Unix套接字通常比TCP/IP套接字性能更好,因为它们避免了TCP/IP协议栈的开销。
  • 安全性:Unix套接字只能在同一台服务器上的进程之间使用,因此在安全性上比TCP/IP更好。
  • 通信方式:使用Unix套接字时,Nginx与PHP-FPM之间的通信是通过本地文件系统进行的,而不是网络通信,这可能更快速和可靠。

 

 

2. 使用 TCP/IP 套接字

  • 配置方式fastcgi_pass 127.0.0.1:9000;
  • PHP-FPM 配置listen = 127.0.0.1:9000
区别和优势:
  • 灵活性:TCP/IP套接字允许PHP-FPM与Nginx运行在不同的服务器上,只要网络连通性正常。
  • 监控和管理:TCP/IP套接字使得PHP-FPM的管理和监控更加灵活,可以通过网络远程管理和监控。
  • 复杂性:相对于Unix套接字,使用TCP/IP套接字可能会增加一些网络协议和通信的复杂性和开销。

如何选择

  • 性能需求:如果性能是首要考虑因素,且Nginx与PHP-FPM运行在同一台服务器上,推荐使用Unix套接字。
  • 分布式架构:如果有分布式架构的需求或者希望灵活管理和监控PHP-FPM服务,可以选择TCP/IP套接字。
  • 默认选择:大多数情况下,Unix套接字是默认选择,因为它通常能提供更好的性能和安全性。

 

即如果php默认使用listen = 127.0.0.1:9000监听方式,那么对应的Nginx配置文件就应该使用fastcgi_pass 127.0.0.1:9000;

反之若使用listen = /run/php-fpm/www.sock监听方式,那么对应的Nginx配置文件就应该使用fastcgi_pass unix:/run/php-fpm/www.sock;

 

扩展:Rocky_Linux9.4安装PHP的步骤:

php配置文件路径:/etc/php-fpm.d/www.conf

使用Remi存储库安装PHP

  1. 安装Remi存储库

    Rocky Linux 9.4 可以使用Remi存储库来安装最新的PHP版本。以下是安装Remi存储库的步骤:

    # 安装epel-release存储库 
    sudo dnf -y install epel-release 
    # 安装Remi存储库 
    sudo dnf -y install https://rpms.remirepo.net/enterprise/remi-release-9.rpm

    请注意,此处使用的是 remi-release-9.rpm,适用于Rocky Linux 9.x版本。

  2. 启用PHP模块

    安装完Remi存储库后,您需要启用特定版本的PHP。假设您想要安装PHP 7.4,可以使用以下命令启用对应版本的PHP模块:

    sudo dnf module reset php sudo dnf module enable php:remi-7.4

    如果您想安装更高版本的PHP(如PHP 8.0或更高),则需要调整上述命令中的版本号。

  3. 安装PHP和相关扩展

    一旦启用了PHP模块,您可以安装PHP及其常用扩展,例如:

    sudo dnf -y install php php-cli php-fpm php-mysqlnd php-zip php-devel php-gd php-mcrypt php-mbstring php-curl php-xml php-pear php-bcmath php-json

    这是安装PHP及其一些常用扩展。也可以根据您的需求和项目需要选择安装更多的PHP扩展。

  4. 启动PHP-FPM服务(如果安装了PHP-FPM):

    sudo systemctl start php-fpm sudo systemctl enable php-fpm

    将启动PHP-FPM服务并设置为在系统启动时自动启动。

  5. 验证安装

    安装完成后,您可以通过以下命令验证PHP是否成功安装:

    php -v

    将会显示PHP的版本信息,确认安装成功。

[root@localhost ~]# php -v
PHP 8.1.29 (cli) (built: Jun  5 2024 05:51:57) (NTS gcc x86_64)
Copyright (c) The PHP Group
Zend Engine v4.1.29, Copyright (c) Zend Technologieswith Zend OPcache v8.1.29, Copyright (c), by Zend Technologies
http://www.lryc.cn/news/380410.html

相关文章:

  • Qt之文件操作(QFile、QFileInfo、QTemporaryFile)
  • Python爬虫初试
  • ARM-V9 RME(Realm Management Extension)系统架构之系统初始化流程
  • 软件工程考试题备考
  • 一款基于WordPress开发的高颜值的自适应主题Puock
  • 浙教版 七年级下册 科学复习干货
  • 罗盘时钟lua迷你世界
  • 【Java】Java基础语法
  • 利用golang_Consul代码实现Prometheus监控目标的注册以及动态发现与配置
  • Python爬虫介绍
  • Linux 进程管理
  • 【车载测试】CAN协议、CAN- FD协议和FlexRay协议 区别
  • 对日期的处理
  • 赵丽颖纯白茉莉绽放温柔之美
  • 软考高级论文真题“论湖仓一体架构及其应用”
  • CentOS系统查看版本的各个命令
  • [保姆级教程]uniapp实现底部导航栏
  • STM32多功能交通灯系统:从原理到实现
  • Pip换源秘籍:让你的Python包飞行起来!
  • Flutter TIM 项目配置
  • 【深海王国】小学生都能玩的单片机?零基础入门单片机Arduino带你打开嵌入式的大门!(8)
  • 第5天:视图与模板进阶
  • 线程间通信方式(互斥(互斥锁)与同步(无名信号量、条件变量))
  • Android使用data uri启动activity或service
  • 能理解你的意图的自动化采集工具——AI和爬虫相结合
  • 基于SpringBoot+大数据城市景观画像可视化设计和实现
  • Oracle表中的数据量达到30万条
  • 【python】python学生成绩数据分析可视化(源码+数据+论文)【独一无二】
  • 如何定期更新系统以保护网络安全
  • 华为数通——OSPF