运维一个宝塔面板的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.rhkb.cn/news/345738.html

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

相关文章

PromptPort:为大模型定制的创意AI提示词工具库

PromptPort:为大模型定制的创意AI提示词工具库 随着人工智能技术的飞速发展,大模型在各行各业的应用越来越广泛。而在与大模型交互的过程中,如何提供精准、有效的提示词成为了关键。今天,就为大家介绍一款专为大模型定制的创意AI…

Llama模型家族之Stanford NLP ReFT源代码探索 (二)Intervention Layers层

LlaMA 3 系列博客 基于 LlaMA 3 LangGraph 在windows本地部署大模型 (一) 基于 LlaMA 3 LangGraph 在windows本地部署大模型 (二) 基于 LlaMA 3 LangGraph 在windows本地部署大模型 (三) 基于 LlaMA…

QT error: allocation of incomplete type ‘Ui::Server‘

目录 前言 报错内容: 过程解析: 原因分析: daisy.skye的博客 QT合集http://t.csdnimg.cn/wEVbu 前言 最近又开始需要做上位机了,要知道qt上位机对我来说已经3年没有接触了,最开始接触还是毕业时工作中的简单学习和…

数据结构 -- 树状数组

前言 树状数组或二叉索引树(Binary Indexed Tree),又以其发明者命名为 Fenwick 树。其初衷是解决数据压缩里的累积频率的计算问题,现多用于高效计算数列的前缀和、区间和。它可以以 O(logn) 的时间得到任意前缀和。并同时支持在 …

计算机毕业设计python+spark知识图谱音乐推荐系统 音乐数据分析可视化大屏 音乐爬虫 LSTM情感分析 大数据毕设 深度学习 机器学习

流程: 1.Python采集网易云音乐歌手、歌词、音乐、评论等约10-20万海量数据,存入mysql数据库; 2.使用pandasnumpy/MapReduce对mysql中四类数据进行数据清洗,写入.csv文件并上传至hdfs(含评论NLP文本分类/lsm情感分析); 3.使用hive建…

关于科技的总结与思考

文章目录 互联网时代有趣的数字数据驱动大数据的两个特性数据保护互联网免费模式的再探讨平台互联网的意义人工智能伦理的思考语言理性人梅特卡夫定律冲浪的神奇之处AR的恐怖之处叙词表、受控词表和大众分类法六度/十九度的解读知识图谱是真正的仿生智能幂次法则和优先连接现代…

MyBatis插件机制

MyBatis插件机制是该框架提供的一种灵活扩展方式,允许开发者在不修改框架源代码的情况下对MyBatis的功能进行定制和增强。这种机制主要通过拦截器(Interceptor)实现,使得开发者可以拦截和修改MyBatis在执行SQL语句过程中的行为。 …

【AI大模型】Transformers大模型库(五):AutoModel、Model Head及查看模型结构

目录​​​​​​​ 一、引言 二、自动模型类(AutoModel) 2.1 概述 2.2 Model Head(模型头) 2.3 代码示例 三、总结 一、引言 这里的Transformers指的是huggingface开发的大模型库,为huggingface上数以万计的预…

ChatGPT Prompt技术全攻略-总结篇:Prompt工程技术的未来发展

系列篇章💥 No.文章1ChatGPT Prompt技术全攻略-入门篇:AI提示工程基础2ChatGPT Prompt技术全攻略-进阶篇:深入Prompt工程技术3ChatGPT Prompt技术全攻略-高级篇:掌握高级Prompt工程技术4ChatGPT Prompt技术全攻略-应用篇&#xf…

DNS协议 | NAT技术 | 代理服务器

目录 一、DNS协议 1、DNS背景 2、DNS协议 域名 域名解析 二、NAT技术 1、NAT技术 2、NAPT技术 3、NAT技术的缺陷 三、代理服务器 1、正向代理服务器 2、反向代理服务器 一、DNS协议 域名系统(Domain Name System,缩写:DNS&#…

20240605解决飞凌的OK3588-C的核心板刷机原厂buildroot不能连接ADB的问题

20240605解决飞凌的OK3588-C的核心板刷机原厂buildroot不能连接ADB的问题 2024/6/5 13:53 rootrootrootroot-ThinkBook-16-G5-IRH:~/repo_RK3588_Buildroot20240508$ ./build.sh --help rootrootrootroot-ThinkBook-16-G5-IRH:~/repo_RK3588_Buildroot20240508$ ./build.sh lun…

【学术小白成长之路】02三方演化博弈(基于复制动态方程)期望与复制动态方程

从本专栏开始,笔者正式研究演化博弈分析,其中涉及到双方演化博弈分析,三方演化博弈分析,复杂网络博弈分析等等。 先阅读了大量相关的博弈分析的文献,总结了现有的研究常用的研究流程,针对每个流程进行拆解。…

快速搭建rtsp server(Ubuntu)

在现代视频监控和实时视频流媒体应用中,实时流协议(RTSP)服务器扮演着至关重要的角色。无论是家庭安防系统、企业级监控还是流媒体服务,RTSP服务器都能提供高效、稳定的解决方案。然而,对于许多初学者或开发者来说&…

数学建模笔记

数学建模 定义角度 数学模型是针对参照某种事物系统的特征或数量依存关系,采用数学语言,概括地或近似地表述出的一种数学结构,这种数学结构是借助于数学符号刻画出来的某种系统的纯关系结构。从广义理解,数学模型包括数学中的各…

高考分数查询结果自动推送至微信(卷II)

祝各位端午节安康!只要心中无结,每天都是节,开心最重要! 在上一篇文章高考分数查询结果自动推送至微信(卷Ⅰ)-CSDN博客中谈了思路,今天具体实现。文中将敏感信息已做处理,读者根据自…

【大学物理】波动光学:光的衍射

23.2 单缝的夫琅禾费衍射_哔哩哔哩_bilibili 1 光的衍射和惠更斯-菲涅尔原理 干涉vs衍射:干涉研究的是两个分立的子光源,衍射研究的是连续的子光源。 两位科学家用分解的思想,一个解决了方向一个解决了光强。 2 单缝的夫琅禾费衍射 夫琅禾…

【SpringBoot + Vue 尚庭公寓实战】项目初始化准备(二)

【尚庭公寓SpringBoot Vue 项目实战】项目初始化准备(二) 文章目录 【尚庭公寓SpringBoot Vue 项目实战】项目初始化准备(二)1、导入数据库2、创建工程3、项目初始配置3.1、SpringBoot依赖配置3.2、创建application.yml文件3.3、…

基于Java+SpringBoot制作一个景区导览小程序

基于Java+SpringBoot制作一个景区导览小程序。其中系统前端功能包括注册登录、景区采风、旅游导览、地图导航、发布采风、门票预订、修改个人信息;系统后台功能包括用户管理、景区管理、采风管理等模块。 摘要一、小程序1. 创建小程序2. 首页3. 景区采风页4. 旅游导览页5. 发布…

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

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

Ubuntu22.04 下 pybind11 搭建,示例

Pybind11 是一个轻量级的库,用于在 C 中创建 Python 绑定。Ubuntu22下安装pybind11步骤如下: 1. 安装 pybind11 1.1 pip 命令安装 pip3 install pybind11 1.2 源代码安装 安装依赖库: sudo pip install -i https://pypi.tuna.tsinghua.e…