运维一个宝塔面板的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-fpmphp-fpm-73.service                 loaded active running LSB: starts php-fpmphp-fpm-74.service                 loaded active running LSB: starts php-fpmphp-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-fpmLoaded: 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 agoDocs: 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 wwwJun 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兼容。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vmware-17虚拟机安装教程,安装linux centos系统

下载VMware 1.进入VMware官网:https://www.vmware.com/sg/products/workstation-pro.html 2.向下翻找到,如下界面并点击“现在安装” 因官网更新页面出现误差,现提供vmware17安装包网盘链接如下: 链接:https://pan.b…

Vue17-条件渲染

一、使用v-show属性做条件渲染 控制元素的显示和隐藏 v-show里面也能是表达式,只要表达式的值是boolean就行。 或者 当时结构还在: 二、使用v-if属性做条件渲染 结构也不在了 三、示例 方式一: 方式二: 当元素有很高的切换频率&am…

从0开始学人工智能测试节选:Spark -- 结构化数据领域中测试人员的万金油技术(四)

上一章节我们了解了 shuffle 相关的概念和原理后其实可以发现一个问题,那就是 shuffle 比较容易造成数据倾斜的情况。 例如上一节我们看到的图,在这批数据中,hello 这个单词的行占据了绝大部分,当我们执行 groupByKey 的时候触发了…

刚刚❗️德勤2025校招暑期实习测评笔试SHL测评题库已发(答案)

📣德勤 2024暑期实习测评已发,正在申请的小伙伴看过来哦👀 ㊙️本次暑期实习优先考虑2025年本科及以上学历的毕业生,此次只有“审计及鉴定”“税务与商务咨询”两个部门开放了岗位~ ⚠️测评注意事项: &#x1f44…

使用Nextjs学习(学习+项目完整版本)

创建项目 运行如下命令 npx create-next-app next-create创建项目中出现的各种提示直接走默认的就行,一直回车就行了 创建完成后进入到项目运行localhost:3000访问页面,如果和我下面页面一样就是创建项目成功了 整理项目 将app/globals.css里面的样式都删除,只留下最上面三…

【LeetCode算法】第112题:路径总和

目录 一、题目描述 二、初次解答 三、官方解法 四、总结 一、题目描述 二、初次解答 1. 思路:二叉树先序遍历。首先访问根节点,若根节点是叶子节点并且值等于目标值,则返回true,否则递归访问左子树和右子树,只要左…

PG 数据库常用参数调整

1.shard_buffers Postgresql使用自己的缓冲区,也使用操作系统缓冲区。这意味着数据存储在内存中两次,首先是 Postgresql缓冲区,然后是操作系统缓冲区。 与其他数据库不同, Postgresql不提供直接IO。这称为双缓冲(就是磁盘中的时候读的时候先放在数据库的缓冲区&am…

【上下界分析 差分数组】798得分最高的最小轮调

本文涉及知识点 差分数组 本题同解 C算法前缀和的应用:798得分最高的最小轮调 LeetCode798得分最高的最小轮调 给你一个数组 nums,我们可以将它按一个非负整数 k 进行轮调,这样可以使数组变为 [nums[k], nums[k 1], … nums[nums.lengt…

Web学习_SQL注入_布尔盲注

盲注就是在SQL注入过程中,SQL语句执行后,查询到的数据不能 回显到前端页面。此时,我们需要利用一些方法进行判断或者尝 试,这个过程称之为盲注。而布尔盲注就是SQL语句执行后,页面 不返回具体数据,数据库只…

未卸载干净的proteus安装教程7.8

提醒: 针对第一次安装推荐博文:https://jingyan.baidu.com/article/656db918f8590de381249cbf.html 1、一定要以管理员身份运行软件。 2、以管理员身份运行软件后,默认的ISIS Professional路径是C:\Program Files \Labcenter Electronics\…

802.11漫游流程简单解析与笔记_Part1

最近在进行和802.11漫游有关的工作,需要对wpa_supplicant认证流程和漫游过程有更多的了解,所以通过阅读论文等方式,记录整理漫游相关知识。Part1将记录802.11漫游的基本流程、802.11R的基本流程、与认证和漫游都有关的三层秘钥基础。Part1将包…

Excel行列条件转换问题,怎么实现如图一到图二的效果?

图一 图二 如果数据比较,不建议一上来就用公式,风速值那一列的数据可以确定都是数值型数字,可以先试试用数据透视表做转换工具: 1.创建数据透视表 将采集时间放在行字段,测风放在列字段,风速放在值字段 2.…

安卓逆向经典案例——XX牛

安卓逆向经典案例——XX牛 按钮绑定方式 1.抓包 2.查看界面元素,找到控件id 通过抓包,发现点击登录后,才会出现Encrpt加密信息,所以我们通过控件找到对应id:btn_login 按钮绑定方法——第四种 public class LoginA…

python tushare股票量化数据处理:学习中

1、安装python和tushare及相关库 matplotlib pyplot pandas pandas_datareader >>> import matplotlib.pyplot as plt >>> import pandas as pd >>> import datetime as dt >>> import pandas_datareader.data as web 失败的尝试yf…

使用NetAssist网络调试助手在单台计算机上配置TCP服务器和客户端

要使用NetAssist网络调试助手在同一台计算机上配置一个实例作为服务器(server)和另一个实例作为客户端(client),可以按照以下步骤进行操作: 前提条件 确保已经安装NetAssist网络调试助手,并了…

如何制定工程战略

本文介绍了领导者如何有效制定工程战略,包括理解战略核心、如何收集信息并制定可行的策略,以及如何利用行业最佳实践和技术债务管理来提升团队效能和产品质量。原文: How to Build Engineering Strategy 如果你了解过目标框架(如 OKR&#xf…

数仓建模中的一些问题

​​​在数仓建设的过程中,由于未能完全按照规范操作, 从而导致数据仓库建设比较混乱,常见有以下问题: 数仓常见问题 ● 数仓分层不清晰:数仓的分层没有明确的逻辑,难以管理和维护。 ● 数据域划分不明确…

Duck Bro的第512天创作纪念日

Tips:发布的文章将会展示至 里程碑专区 ,也可以在 专区 内查看其他创作者的纪念日文章 我的创作纪念日第512天 文章目录 我的创作纪念日第512天一、与CSDN平台的相遇1. 为什么在CSDN这个平台进行创作?2. 创作这些文章是为了赚钱吗&#xff1f…

算法金 | AI 基石,无处不在的朴素贝叶斯算法

大侠幸会,在下全网同名「算法金」 0 基础转 AI 上岸,多个算法赛 Top 「日更万日,让更多人享受智能乐趣」 历史上,许多杰出人才在他们有生之年默默无闻, 却在逝世后被人们广泛追忆和崇拜。 18世纪的数学家托马斯贝叶斯…