您的位置:首页 > 娱乐 > 八卦 > 打开nginx连接的php页面报错502

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

2024/12/23 10:08:12 来源:https://blog.csdn.net/Lzcsfg/article/details/139785754  浏览:    关键词:打开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

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com