找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 44|回复: 3

[CodeCMS-Web大项目]系列EP2-5:!!!成功解决BugHTTP2ERROR-官方消息转载自代码工艺

[复制链接]

18

主题

85

回帖

1414

积分

管理员

积分
1414

一周年纪念

发表于 7 天前 | 显示全部楼层 |阅读模式
——总的来说就是由于开发团队为了方便编辑db_api下的脚本、节省版本空间,于是把application整个移到根目录下面了,导致触发了XX云服务器的被动技能:【文件访问权限限制】,返回了http2ERROR。
经过我们的多次排查与检测,这个bug已解决。

问题究竟出在哪里?

该问题的原因同该问题的解决一样简单!

让我们先看看出问题的地方:index.php和BBS.php和tasteCookie.php
这三个文件本本身没啥问题,只是他们的位置的安排出现了bug:

其实,完整的我站文件目录树是这样的:
<根目录>/[-] ━📖application[-]━📖db_api[-]━━📝db.php//数据库连接api
│ ┝━━━📝BBS.php//论坛页面
┊ ┝━━━📝submit_post.php//提交帖子api
┊ ┝━━━📝view_post.php//查看帖子详情页面
┊ ┝━━━📝sign-in-up.php//登录注册api
┊ ┝━━━📝YummyCookie.php//用户cookie库,含设置、检
┊ ┊ 查用户cookie的功能代码
┊ ┕━━━📝tasteCookie.php//主页识别用户信息脚本
┝━━━📖data[-]……
┝━━━📖v0.2
│ ┝━━━📝sign-in-up.html//登陆前端页
│ ┝━━━📝editor.html//发帖前端
│ ┝━━━📝viewer.php//看帖前端
│ ┕━━━📝index.php//主页前端
┝━━━📖v0.1━━…….//v0.1的文件
┕━━━📝index.html//这才是真正的codecraft的主页文件,里面有所以版本的链接

其中,index.php嵌套了/application/db_api/下的BBS.php和tasteCookie.php


注意

为了测试多版本,我们的官网有一个独立的静态主页,里面有测试版本的链接,而各个测试版本都在对应版本号的文件夹目录下
(访问v0.2的主页链接应该是https://codecraft.czlj.net/v0.2/index.php)

为了方便编辑db脚本,我们选择了把applicaion文件夹放在根目录下面,这样就不用每个版本的目录里都有一个application文件夹了。


所以

BBS.php和tasteCookie.php位于<根目录>/application/db_api/…
index.php的绝对路径位于<根目录>/v0.2/index.php


但是!

index.php的嵌套使用<iframe>元素,(这样可控边距和样式)
就需要嵌套到
index.php上一级目录并进入application/db_api/目录
才能嵌套到,这时就出问题了:网页无法嵌套/访问其上一级目录下的其他网页,

-究其原因其实是XX云为了防止用户网站嵌套到服务器根目录而设置了文件访问权限😡-
这样文件嵌套不到,就导致了http2Error

总结一下就是由于开发团队为了方便编辑db_api下的脚本、节省版本空间,于是把application整个移到根目录下面了,导致触发了XX云服务器的被动技能:【文件访问权限限制】,返回了http2ERROR。


我们如何解决的?

  这个问题的解决同它的产生一样简单:我们把application放到/v0.2目录下,这样application文件夹与index.php就处于同一目录下了,就不会产生权限问题啦😏😀


心得

此次bug是codecraft建站一来最严重的一次bug,原因只是团队对服务器环境的疏忽和一时操作没考虑后果。这也给我们团队在今后的开发中要时时注意bug的产生:
谁知道是不是你变了个路径/移动了一下文件夹/Ctrl-X+Ctrl-V之后的结果呢?



3

主题

12

回帖

230

积分

蓝锐

积分
230
发表于 7 天前 | 显示全部楼层
回想我第一次使用pyinstaller给我的Python脚本打包成.exe的时候
我因为文件名有个空格没打,折腾了2天才成功
Make Programming Great Again
回复

使用道具 举报

18

主题

85

回帖

1414

积分

管理员

积分
1414

一周年纪念

 楼主| 发表于 7 天前 | 显示全部楼层
xinhaitianze 发表于 2025-4-19 13:38
回想我第一次使用pyinstaller给我的Python脚本打包成.exe的时候
我因为文件名有个空格没打,折腾了2天才成 ...

八十多个用户出来!唠一唠自己当年小改动出大bug的经历吧
回复

使用道具 举报

3

主题

12

回帖

230

积分

蓝锐

积分
230
发表于 7 天前 | 显示全部楼层
Nixx0328 发表于 2025-4-19 16:09
八十多个用户出来!唠一唠自己当年小改动出大bug的经历吧

我当年想写一个显示时间的时钟(用C)不管怎么改都显示访问冲突,最后我发现了,我没#include <time.h>
《关于我花了几天时间浪费在添加头文件这件事上》
Make Programming Great Again
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|CZLJ

GMT+8, 2025-4-26 17:54 , Processed in 0.055940 second(s), 20 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表