运维一个宝塔面板的php项目的艰辛历程【解决了http3,ssl,quic】

在这个项目的环境
使用了宝塔面板
有4个php:php5.6,php7.3,php7.4,php8.0
nignx为1.20版本

升级计划:
升级nginx1.26.0版本,添加上http3协议,添加ssl证书

遇到的问题:
升级nginx1.26版本后
无法打开php5.6的后台

原因:不详,copilot排错无法找到

刚刚找到原因了:是nginx中的配置出现了问题

nginx1.20版本中设置了[ /www/server/panel/vhost/rewrite/www.yayusoft.com.conf;]

# location / {
	if (!-e $request_filename){
		rewrite  ^(.*)$  /index.php?s=$1  last;   break;
	}
# }

nginx1.26版本中设置了[ /www/server/panel/vhost/rewrite/www.yayusoft.com.conf;]

location / {
	if (!-e $request_filename){
		rewrite  ^(.*)$  /index.php?s=$1  last;   break;
	}
}

把nginx中的配置去掉

    #REWRITE-START
	# include /www/server/panel/vhost/rewrite/www.yayusoft.com.conf;
    #REWRITE-END

这个是宝塔面板里面的设置,注释掉这个重定向的设置就好了
未注释之前显示404,返回200成功状态码
在这里插入图片描述
注释之后
在这里插入图片描述

需要配置http3协议的公司可以找我哈,按小时收300每小时。
不管结果,成功不成功都收费。
在这里插入图片描述

以下是摸这个php项目的过程

1查看当前运行着的php

2查看所有已启动的服务

3使用的php程序位置【php-fpm启动程序位置】

4PHP的PHP-FPM(FastCGI Process Manager)的配置文件

5php生成的sock连接文件所在位置

6查看这些服务的状态

7确定服务器上没有apache服务

8nginx新旧版本中的信息对比

9检查日志信息

查看当前运行着的php

ps aux | grep php-fpm

查看所有已启动的服务

使用

systemctl list-units --type=service

命令,这个命令会列出所有已启动的服务

/www/server/php/56/etc/php-fpm.conf
/www/server/php/73/etc/php-fpm.conf
/www/server/php/74/etc/php-fpm.conf
/www/server/php/80/etc/php-fpm.conf

使用的php程序位置【php-fpm启动程序位置】

php的启动在什么地方

PHP 5.6的PHP-FPM在`/www/server/php/56/sbin/php-fpm`,
PHP 7.3的PHP-FPM在`/www/server/php/73/sbin/php-fpm`,
PHP 7.4的PHP-FPM在`/www/server/php/74/sbin/php-fpm`,
PHP 8.0的PHP-FPM在`/www/server/php/80/sbin/php-fpm`,

启动某个版本的PHP-FPM

sudo /www/server/php/版本号/sbin/php-fpm start
sudo /www/server/php/56/sbin/php-fpm start
sudo /www/server/php/73/sbin/php-fpm start
sudo /www/server/php/74/sbin/php-fpm start
sudo /www/server/php/80/sbin/php-fpm start

停止某个版本的PHP-FPM:

sudo /www/server/php/版本号/sbin/php-fpm stop
sudo /www/server/php/56/sbin/php-fpm stop
sudo /www/server/php/73/sbin/php-fpm stop
sudo /www/server/php/74/sbin/php-fpm stop
sudo /www/server/php/80/sbin/php-fpm stop

确认怎么停止

- 启动服务:`systemctl start php-fpm.service`
- 停止服务:`systemctl stop php-fpm.service`
- 重启服务:`systemctl restart php-fpm.service`
sudo /www/server/php/80/sbin/php-fpm restart

"/usr/bin"路径中的相关php文件如下,我使用了 "ls -l"命令来进行查看

lrwxrwxrwx    1 root root        26 May  8  2023 php -> /www/server/php/74/bin/php
lrwxrwxrwx    1 root root        26 May 27 16:08 php56 -> /www/server/php/56/bin/php
lrwxrwxrwx    1 root root        31 Jun  8 05:02 php56-composer -> /www/server/php/56/bin/composer
lrwxrwxrwx    1 root root        27 May 27 16:08 php56-pear -> /www/server/php/56/bin/pear
lrwxrwxrwx    1 root root        27 May 27 16:08 php56-pecl -> /www/server/php/56/bin/pecl
lrwxrwxrwx    1 root root        31 May 27 16:08 php56-php-fpm -> /www/server/php/56/sbin/php-fpm
lrwxrwxrwx    1 root root        29 May 27 16:08 php56-phpize -> /www/server/php/56/bin/phpize
lrwxrwxrwx    1 root root        26 May 27 16:08 php73 -> /www/server/php/73/bin/php
lrwxrwxrwx    1 root root        27 May 27 16:08 php73-pear -> /www/server/php/73/bin/pear
lrwxrwxrwx    1 root root        27 May 27 16:08 php73-pecl -> /www/server/php/73/bin/pecl
lrwxrwxrwx    1 root root        31 May 27 16:08 php73-php-fpm -> /www/server/php/73/sbin/php-fpm
lrwxrwxrwx    1 root root        29 May 27 16:08 php73-phpize -> /www/server/php/73/bin/phpize
lrwxrwxrwx    1 root root        26 May 27 16:08 php74 -> /www/server/php/74/bin/php
lrwxrwxrwx    1 root root        31 May 27 16:08 php74-php-fpm -> /www/server/php/74/sbin/php-fpm
lrwxrwxrwx    1 root root        29 May 27 16:08 php74-phpize -> /www/server/php/74/bin/phpize
lrwxrwxrwx    1 root root        26 May 27 16:08 php80 -> /www/server/php/80/bin/php
lrwxrwxrwx    1 root root        31 May 27 16:08 php80-php-fpm -> /www/server/php/80/sbin/php-fpm
lrwxrwxrwx    1 root root        29 May 27 16:08 php80-phpize -> /www/server/php/80/bin/phpize
lrwxrwxrwx    1 root root        31 May  8  2023 php-fpm -> /www/server/php/74/sbin/php-fpm
lrwxrwxrwx    1 root root        29 May  8  2023 phpize -> /www/server/php/74/bin/phpize

PHP的PHP-FPM(FastCGI Process Manager)的配置文件

自定义的配置文件

/www/server/php/56/etc/php-fpm.conf
/www/server/php/73/etc/php-fpm.conf
/www/server/php/74/etc/php-fpm.conf
/www/server/php/80/etc/php-fpm.conf

当没有使用自定义配置文件时会使用以下默认的配置文件

/www/server/php/56/etc/php-fpm.conf.default
/www/server/php/73/etc/php-fpm.d/www.conf.default
/www/server/php/74/etc/php-fpm.d/www.conf.default
/www/server/php/80/etc/php-fpm.d/www.conf.default

php生成的sock连接文件所在位置

这个sock文件在tmp文件夹中

/tmp/php-cgi-56.sock
/tmp/php-cgi-73.sock
/tmp/php-cgi-74.sock
/tmp/php-cgi-80.sock

查看当前php启动的服务状态

从【查看所有已经启动的服务】中

systemctl list-units --type=service

找到了启动的各个php服务

  php-fpm-56.service                 loaded active running LSB: starts php-fpm
  php-fpm-73.service                 loaded active running LSB: starts php-fpm
  php-fpm-74.service                 loaded active running LSB: starts php-fpm
  php-fpm-80.service                 loaded active running LSB: starts php-fpm

查看这些服务的状态

  1. 查看服务当前状态
systemctl status php-fpm.service
systemctl status php-fpm-56.service
systemctl status php-fpm-73.service
systemctl status php-fpm-74.service
systemctl status php-fpm-80.service

php5.6的服务状态

[root@iZbp167fcodoa79ps85uwgZ bin]# systemctl status php-fpm-56.service
● php-fpm-56.service - LSB: starts php-fpm
   Loaded: loaded (/etc/rc.d/init.d/php-fpm-56; bad; vendor preset: disabled)
   Active: active (running) since Sat 2024-06-08 05:01:58 CST; 1 day 11h ago
     Docs: man:systemd-sysv-generator(8)
   CGroup: /system.slice/php-fpm-56.service
           ├─1884 php-fpm: master process (/www/server/php/56/etc/php-fpm.conf)
           ├─1894 php-fpm: pool www
           ├─1895 php-fpm: pool www
           ├─1896 php-fpm: pool www
           ├─1897 php-fpm: pool www
           ├─1898 php-fpm: pool www
           ├─2444 php-fpm: pool www
           └─6678 php-fpm: pool www

Jun 08 05:01:56 iZbp167fcodoa79ps85uwgZ systemd[1]: Starting LSB: starts php-fpm...
Jun 08 05:01:58 iZbp167fcodoa79ps85uwgZ php-fpm-56[1009]: Starting php-fpm  done
Jun 08 05:01:58 iZbp167fcodoa79ps85uwgZ systemd[1]: Started LSB: starts php-fpm.

服务信息解释

- `   Loaded: loaded (/etc/rc.d/init.d/php-fpm-80; bad; vendor preset: disabled)`:
这一行表示`php-fpm-80.service`服务的配置文件已经被加载。配置文件的路径是`/etc/rc.d/init.d/php-fpm-80`。
`bad`表示配置文件有错误,但是不影响服务的运行。
`vendor preset: disabled`表示这个服务的厂商预设是禁用。
    
- `Active: active (running) since Sat 2024-06-08 05:01:58 CST; 1 day 11h ago`:这一行表示`php-fpm-80.service`服务当前正在运行,自从202468日星期六05:01:58 CST开始运行,已经运行了111小时。
    
- `Docs: man:systemd-sysv-generator(8)`:
这一行提供了关于`systemd-sysv-generator`的man手册的链接,你可以通过`man systemd-sysv-generator`命令来查看这个手册。
    
- `CGroup: /system.slice/php-fpm-80.service`:
这一行表示`php-fpm-80.service`服务的控制组(CGroup)的路径是`/system.slice/php-fpm-80.service`。
    
- `├─1902 php-fpm: master process (/www/server/php/80/etc/php-fpm.conf)`:
这一行表示`php-fpm-80.service`服务的主进程的进程ID是1902,主进程的命令是`php-fpm: master process (/www/server/php/80/etc/php-fpm.conf)`。
    
- `├─1903 php-fpm: pool www`到`└─1907 php-fpm: pool www`:
这些行表示`php-fpm-80.service`服务的子进程的进程ID分别是19031904190519061907,子进程的命令都是`php-fpm: pool www`。
    
- `Jun 08 05:01:56 iZbp167fcodoa79ps85uwgZ systemd[1]: Starting LSB: starts php-fpm...`:这一行表示在202468日星期六05:01:56 CST,`systemd[1]`开始启动`php-fpm-80.service`服务。
    
- `Jun 08 05:01:58 iZbp167fcodoa79ps85uwgZ php-fpm-80[1012]: Starting php-fpm done`:这一行表示在202468日星期六05:01:58 CST,`php-fpm-80[1012]`完成了启动`php-fpm-80.service`服务。
    
- `Jun 08 05:01:58 iZbp167fcodoa79ps85uwgZ systemd[1]: Started LSB: starts php-fpm.`:这一行表示在202468日星期六05:01:58 CST,`systemd[1]`已经启动了`php-fpm-80.service`服务。
    
  1. 查看开机自启动设置:这个命令会显示PHP-FPM服务是否设置为开机自启动
----
systemctl is-enabled php-fpm.service
----
systemctl is-enabled php-fpm-56.service
systemctl is-enabled php-fpm-73.service
systemctl is-enabled php-fpm-74.service
systemctl is-enabled php-fpm-80.service
[root@iZbp167fcodoa79ps85uwgZ bin]# systemctl is-enabled php-fpm-56.service
php-fpm-56.service is not a native service, redirecting to /sbin/chkconfig.
Executing /sbin/chkconfig php-fpm-56 --level=5
enabled
[root@iZbp167fcodoa79ps85uwgZ bin]# 
解释:
- `php-fpm-56.service is not a native service, redirecting to /sbin/chkconfig.`:
这一行表示`php-fpm-56.service`不是一个原生的systemd服务,因此系统将其重定向到`/sbin/chkconfig`来处理。
- `Executing /sbin/chkconfig php-fpm-56 --level=5`:
这一行表示系统正在执行`/sbin/chkconfig php-fpm-56 --level=5`命令来检查`php-fpm-56.service`服务在运行级别5(即多用户模式,带图形界面)是否被设置为开机自启动。
- `enabled`:
这一行表示`php-fpm-56.service`服务已经被设置为开机自启动。

检查nginx与PHP-FPM的sock是否连接正常

检查 Unix socket
1:查看 Unix socket 的状态。
如果 socket 存在并且权限设置正确,那么 Nginx 应该能够与 PHP-FPM 正常通信。

ls -l /tmp/php-cgi-56.sock

在服务器中尝试访问这个php管理后台

curl http://localhost/yayusoft.php
curl http://localhost/【xxx.php的管理后台入口】

确定服务器上没有apache服务

sudo systemctl status apache2
systemctl status httpd
service httpd status
ps -ef | grep httpd
ps -aux | grep httpd

都没有显示apache服务

[root@iZbp167fcodoa79ps85uwgZ /]# sudo systemctl status apache2
Unit apache2.service could not be found.
[root@iZbp167fcodoa79ps85uwgZ /]# systemctl status httpd
Unit httpd.service could not be found.
[root@iZbp167fcodoa79ps85uwgZ /]# service httpd status
Redirecting to /bin/systemctl status httpd.service
Unit httpd.service could not be found.
[root@iZbp167fcodoa79ps85uwgZ /]# ps -ef | grep httpd
root      3886  2658  0 18:07 pts/3    00:00:00 grep --color=auto httpd
[root@iZbp167fcodoa79ps85uwgZ /]# ps -aux | grep httpd
root      3951  0.0  0.0 112812   980 pts/3    R+   18:08   0:00 grep --color=auto httpd
[root@iZbp167fcodoa79ps85uwgZ /]# 

查找centos服务器中包含 "yayusoft.php"的字段

cd /
grep -rnl "yayusoft.php" .
这个命令的含义如下:
- `grep`:这是你要运行的命令,它用于在文件中搜索特定的字符串。
- `-r`:这个选项告诉`grep`命令递归地搜索目录。
- `-n`:这个选项让`grep`命令在输出结果中包含匹配行的行号。
- `-l`:这个选项让`grep`命令只输出包含匹配字符串的文件名。
- `"yayusoft.php"`:这是你要搜索的字符串。
- `.`:这表示`grep`命令应该在当前目录(以及其所有子目录)中搜索。
这个命令会输出所有包含字符串`"yayusoft.php"`的文件的路径。希望这些信息能帮助你解决问题!

yayusoft.php文件所在位置

/www/wwwroot/www.yayusoft.com/yayusoft.php

index.php文件所在位置

/www/wwwroot/www.yayusoft.com/index.php

环境变量-对比升级nginx前与升级后【没变化】

导出环境变量进行对比

printenv > environment_variables.txt

nginx新旧版本中的信息对比

- `include fastcgi.conf;`:这行包含了一个预定义的FastCGI配置文件,它设置了一些常用的FastCGI参数。
- `include pathinfo.conf;`:这行包含了一个预定义的配置文件,它可能包含了处理PHP PATH_INFO的规则。

fastcgi.conf文件所在位置【新版本】

/www/server/nginx/conf/fastcgi.conf

新版本nignx1.26版本中多出了

fastcgi_param  HTTP_HOST          $host;

pathinfo.conf文件新旧版本没有变化

/www/server/nginx/conf/pathinfo.conf

检查日志信息

1. Nginx和PHP-FPM的错误日志**:这些日志可能包含有关问题的有用信息。
2. PHP应用的代码:检查是否有代码依赖特定的网络行为,这些行为在QUIC下可能与TCP不同。
3. PHP扩展:如果你安装了PHP扩展,检查这些扩展是否与QUIC兼容。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/697030.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

力扣hot100:295. 数据流的中位数(两个优先队列维护中位数)

LeetCode:295. 数据流的中位数 这个题目最快的解法应该是维护中位数,每插入一个数都能快速得到一个中位数。 根据数据范围,我们应当实现一个 O ( n l o g n ) O(nlogn) O(nlogn)的算法。 1、超时—插入排序 使用数组存储,维持数…

MySQL数据库(二)和java复习

一.MySQL数据库学习(二) (一).DQL查询数据 DQL(Data Query Language)是用于从数据库中检索数据的语言。常见的 DQL 语句包括 SELECT、FROM、WHERE、GROUP BY、HAVING 和 ORDER BY 等关键字,用于指定要检索的数据、数据源、过滤条件、分组方…

ROS云课三分钟外传之CoppeliaSim_Edu_V4_1_0_Ubuntu16_04

三分钟热度试一试吧,走过路过不要错过。 参考之前: 从云课五分钟到一分钟之v-rep_pro_edu_v3_6_2-CSDN博客 git clone https://gitcode.net/ZhangRelay/v-rep_pro_edu_v3_6_2_ubuntu16_04.gittar -xf v-rep_pro_edu_v3_6_2_ubuntu16_04/V-REP_PRO_EDU…

字符串常量池字符串常量的几种创建方式及其位置

从JDK7开始,字符串常量池被移到了堆区中,因此Java程序中的字符串常量对象要么在堆区的字符串常量池之中,要么在堆区的字符串常量池之外。为了做区分,下文将堆区的字符串常量池区域称为字符串常量池,将堆区字符串常量池…

Zabbix配置中文显示及乱码问题

页面配置为中文显示 在zabbix 5.0版本开始用户菜单更改为左侧栏显示,找到并点击 User Settings,Language 修改语言为 Chinese (zh_CN) 即可。 PS:一般在部署后初始配置时,未找到 Chinese (zh_CN) 这一项,修改如下&…

分享一个 .NET Core Console 项目中应用 NLog 写日志的详细例子

前言 日志在软件开发中扮演着非常重要的角色,通常我们用它来记录应用程序运行时发生的事件、错误信息、警告以及其他相关信息,帮助在调试和排查问题时更快速地定位和解决 Bug。 通过日志,我们可以做到: 故障排除和调试&#xff…

探索智慧景区的总体架构与应用

背景: 在旅游业快速发展的今天,智慧景区已成为提升景区管理水平、提高游客体验的重要手段之一。智慧景区系统的总体架构设计与应用,将现代信息技术与景区管理相结合,为景区的运营管理和游客服务提供了新的思路和解决方案。本文将…

按键精灵在Win11中弹窗出现乱码并且自带的部分系统插件不能使用的解决方法

按键精灵中出现以下问题: 提示信息的弹窗出现乱码: 系统自带的部分像 plugin. 开头的插件不能使用,如下:s Plugin.Sys.GetDateTime() screenX Plugin.GetSysInfo.GetScreenResolutionX screenY Plugin.GetSysInfo.GetScreenRe…

在Linux or Windows中如何优雅的写出对拍

在Linux or Windows中如何优雅的写出对拍 一、前言二、结论1、对拍 三、对拍详解1、什么是对拍呢?🧐2、对拍的组成部分3、输入数据生成4、对拍程序5、操作流程 四、最后 一、前言 网上的对拍程序层出不穷,大多Linux和Windows中的对拍程序都是…

MySQL 函数与约束

MySQL 函数与约束 文章目录 MySQL 函数与约束1 函数1.1 字符串函数1.2 数值函数1.3 日期函数1.4 流程函数 2 约束2.1 概述2.2 约束演示2.3 外键约束2.4 删除/更新行为 1 函数 函数是指一段可以直接被另一程序调用的程序或代码。 1.1 字符串函数 MySQL中内置了很多字符串函数&…

LabVIEW开发实验室超导体电流特性测试系统

本系统旨在为学校实验室提供一个基于LabVIEW的超导体电流特性测试平台,通过精确测量超导体在不同温度和电流条件下的电学特性,帮助学生和研究人员深入理解超导体的物理性质。本文将从背景、目标、工作原理、使用方法、操作流程和注意事项等方面详细介绍该…

《python程序语言设计》2018版第5章第36题改造4.17 石头 剪刀 布某一方超过2次就结束。

代码编写记录 2024.05.04 05.36.01version 换一个什么数代替剪子 我先建立一个函数judgement condition 石头3 剪子2 布1 如何构建一个循环进行的架构,是我们最需要的想法 循环以什么条件开始呢 是小于2个还是大于2个。 guess_num random.randint(1, 3) computer…

已解决Error || RuntimeError: size mismatch, m1: [32 x 100], m2: [500 x 10]

已解决Error || RuntimeError: size mismatch, m1: [32 x 100], m2: [500 x 10] 原创作者: 猫头虎 作者微信号: Libin9iOak 作者公众号: 猫头虎技术团队 更新日期: 2024年6月6日 博主猫头虎的技术世界 🌟 欢迎来…

浅解Reids持久化

Reids持久化 RDB redis的存储方式: rdb文件都是二进制,很小,里面存的是数据 实现方式 redis-cli链接到redis服务端 使用save命令 注:不推荐 因为save命令是直接写到磁盘里面,速度特别慢,一般都是redis…

创新案例|创新实时零售模式,千亿时尚巨头Shein的全球扩张之路

SHEIN,一家估值千亿美元的快时尚电商独角兽,是全球增长最快的服饰平台。它通过数据和平台的双轮驱动,构建了全新的“实时零售”模式,实现了数据与商业的紧密衔接。同时,通过领导力和组织能力建设,打造了独特…

Python 全栈体系【四阶】(五十八)

第五章 深度学习 十三、自然语言处理(NLP) 3. 文本表示 3.1 One-hot One-hot(独热)编码是一种最简单的文本表示方式。如果有一个大小为V的词表,对于第i个词 w i w_i wi​,可以用一个长度为V的向量来表示…

[C++数据结构之看懂就这一篇]图(上)

📚博客主页:Zhui_Yi_🔍:上期回顾:JAVA面向对象(上)❤️感谢大家点赞👍🏻收藏⭐评论✍🏻,您的三连就是我持续更新的动力❤️🎇追当今朝…

C++面向对象程序设计 - 输入输出流进一步研究

在C中&#xff0c;输入输出流&#xff08;I/O&#xff09;是一个强大的特性&#xff0c;它允许程序与各种输入/输出设备&#xff08;如键盘、显示器、文件等&#xff09;进行交互。C标准库中的<iostream>头文件定义了基本的输入输出流类&#xff0c;如std::cin&#xff0…

从河流到空气,BL340工控机助力全面环保监测网络构建

在环保监测领域&#xff0c;智能化、高效率的监测手段正逐步成为守护绿水青山的新常态。其中&#xff0c;ARMxy工业计算机BL340凭借其强大的处理能力、高度的灵活性以及广泛的兼容性&#xff0c;在水质监测站、空气质量检测、噪音污染监控等多个环保应用场景中脱颖而出&#xf…