create account

瞎折腾之:把网站(cutehive.com)搞崩溃啦 by oflyhigh

View this thread on: hive.blogpeakd.comecency.com
· @oflyhigh ·
$76.45
瞎折腾之:把网站(cutehive.com)搞崩溃啦
之前因为新版本的HIVE节点(hived)对系统的最低要求为Ubuntu 20.04 LTS,我一狠心把编译机、测试机等都升级成Ubuntu 22.04 LTS了,想着这样一劳永逸,以后好几年不用关心系统的问题啦。


![image.png](https://images.hive.blog/DQmPMtS6oUedJ6FAFsd3pRGuwzr7kKkq3skU7fg6nqUn1iR/image.png)
(图源 :[pixabay](https://pixabay.com/illustrations/website-design-code-build-develop-4396924/))

不过弄完hived的机器后,我发现我还有N台机器在运行Ubuntu 18.04 LTS以及Ubuntu 20.04 LTS,比如网站[https://cutehive.com](https://cutehive.com)所在VPS就运行着Ubuntu 20.04 LTS呢!

于是决定先给这个VPS升级到Ubuntu 22.04 LTS,因为这两天升级了很多VPS,所以升级轻车熟路,没多少波折就完成了。结果升级后,发现网站[https://cutehive.com](https://cutehive.com)彻底崩溃啦。

# PHP 找不到问题

将系统从Ubuntu 20.04 LTS升级为Ubuntu 22.04 LTS后,发现系统上找不到PHP啦。(咦,我让你升级,没让你卸载啊,当然这有可能是我升级过程中出错导致的)

于是直接重新安装了PHP的最新版本
>`sudo apt install php8.1`

安装后查看一下PHP 版本`php --version`:
>![1665740388651.png](https://images.hive.blog/DQmeHNAkjCb9sfUbL2X9DJJKK5tjGALrzeeC4bBQiA84u8b/1665740388651.png)

嗯,貌似一切正常。

# PHP运行的问题

升级后当然要测试一下网站了,结果一访问https://cutehive.com,擦,竟然直接显示源码了。

其实Apache2+PHP安装后,访问PHP文件显示源码,这个以前就遇到过,基本上都是`short_open_tag`所引发的问题。

简单来讲,就是如果没有设置`short_open_tag`开启,那么类似如下这样的代码,就不会被认为是PHP代码:
>`<? echo("Hello World!"); ?>`

详细的解释可以参考这里:
>Tells PHP whether the short form (`<? ?>`) of PHP's open tag should be allowed. If you want to use PHP in combination with XML, you can disable this option in order to use `<?xml ?>`inline. Otherwise, you can print it with PHP, for example:` <?php echo '<?xml version="1.0"?>'; ?>`. Also, if disabled, you must use the long form of the PHP open tag (`<?php ?>`).

可是当我将`short_open_tag`设置为`On`了,去访问PHP页面,还是没法解析,这就奇了怪哉了。

为此我特意试了一下命令行方式执行PHP,发现无论是长格式还是开启`short_open_tag`的短格式都可以正常运行。那么看来问题出在Apache2与PHP的配合上了,比如说响应的模块没启用?

去Apache2配置目录中查看,在这个目录下`/etc/apache2/mods-enabled`,既然发现如下内容:
>![Capture6.PNG](https://images.hive.blog/DQmeaye9oa3kG3AxcR5QD9BZz1wYwfW8ex54MffZrwen9rD/Capture6.PNG)

而Ubuntu 22.04 TLS下我安装的是`PHP8.1`,这就有问题啦。

于是清除掉PHP7.4X相关模块:
>`sudo a2dismod php7.4`

提示如下信息:
>removing dangling symlink /etc/apache2/mods-enabled/php7.4.load
>removing dangling symlink /etc/apache2/mods-enabled/php7.4.conf

启用PHP8.1相关模块:
>`sudo a2enmod php8.1`
>`sudo systemctl restart apache2`

经过这样操作后,PHP总算可以正常解析啦。

# curl_init 错误

PHP网页可以显示后,发现我的见证人列表只显示了一个表头,就不显示啦——很明显,一定是哪里出错啦。

于是去查看一下网站错误日志,发现有如下提示信息:
>PHP Fatal error:  Uncaught Error: Call to undefined function curl_init() 

哎,咋升级出来这么多毛病呢。不过这种明显的错误最好解决啦,什么出错就装啥!

安装PHP curl模块即可:
>`sudo apt install php8.1-curl`

然后再次重启一下Apache2:
>`sudo systemctl restart apache2`

见证人列表总算可以显示出来啦。

# 喂价显示错误

见证人列表可以显示后,发现其它功能都算正常,但是见证人喂价都显示成了`-`,这又是怎么回事?

去看错误日志,发现错误日志里没有任何相关内容,也就是说,没出错,那为啥显示不正常呢?

然后去查看对应的代码,发现代码中有这样一个判断:
> `if( (float)$w["hbd_exchange_rate"]["quote"] < 0.000001 ) {} else{}`

当条件成立时,我会把喂价设置为`-`,回想了一下当初为啥这样设置,因为有些用户没有设置喂价,那么初始喂价可能是这样:
>![image.png](https://images.hive.blog/DQmVd8exjJa5NsyjGxpUy4yHqpp7t9v1tcgisW1AY2LeJLp/image.png)

如果不加判断,计算时可能就会出现除零错误,所以在计算喂价前,提前处理了一下。

在PHP7.x上,上述代码无什么问题,但是到了PHP 8.x 上,上述判断始终返回`true`,所以喂价都被设置成了`-`。

确切地说,上述代码本身就是错误的、不严谨的,把字符串和数值去比较!改正其实很简单,字符串前边加个强制类型转换就好啦:
>`if( (float)$w["hbd_exchange_rate"]["quote"] < 0.000001 ){} else{}`

修改后,发现见证人列表中见证人的喂价信息可以正常显示啦。

# PHP + MSSQL的错误

除了上边提到的错误外,发现我代码中链接MSSQL的代码也全部失效了,不过上述问题已经把我累晕了,剩下的回头再慢慢改吧。


![image.png](https://images.hive.blog/DQmPshixKDqqfJJEBSYLzVkLpFJ85hikUfx8Xb8KahZzLxm/image.png)
(图源 :[pixabay](https://pixabay.com/illustrations/under-construction-404-web-site-928246/))

哎,没事折腾啥啊,本来网站运行的好好的。不过转念一想,人生就是折腾嘛。

# 相关链接

* https://www.cutehive.com/
👍  , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , and 124 others
👎  
properties (23)
authoroflyhigh
permlinkngrrh-cutehive-com
categoryhive-105017
json_metadata{"tags":["cn","life","blog","site","cutehive"],"image":["https://images.hive.blog/DQmPMtS6oUedJ6FAFsd3pRGuwzr7kKkq3skU7fg6nqUn1iR/image.png","https://images.hive.blog/DQmeHNAkjCb9sfUbL2X9DJJKK5tjGALrzeeC4bBQiA84u8b/1665740388651.png","https://images.hive.blog/DQmeaye9oa3kG3AxcR5QD9BZz1wYwfW8ex54MffZrwen9rD/Capture6.PNG","https://images.hive.blog/DQmVd8exjJa5NsyjGxpUy4yHqpp7t9v1tcgisW1AY2LeJLp/image.png","https://images.hive.blog/DQmPshixKDqqfJJEBSYLzVkLpFJ85hikUfx8Xb8KahZzLxm/image.png"],"links":["https://pixabay.com/illustrations/website-design-code-build-develop-4396924/"],"app":"hiveblog/0.1","format":"markdown"}
created2022-10-14 12:01:42
last_update2022-10-14 12:01:42
depth0
children5
last_payout2022-10-21 12:01:42
cashout_time1969-12-31 23:59:59
total_payout_value38.244 HBD
curator_payout_value38.203 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length3,399
author_reputation6,331,627,315,777,308
root_title瞎折腾之:把网站(cutehive.com)搞崩溃啦
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id117,461,967
net_rshares125,967,732,689,151
author_curate_reward""
vote details (189)
@aellly ·
看完帖子之后。头顶一阵凉。
properties (22)
authoraellly
permlinkre-oflyhigh-20221014t204738815z
categoryhive-105017
json_metadata{"tags":["cn","life","blog","site","cutehive"],"app":"ecency/3.0.28-vision","format":"markdown+html"}
created2022-10-14 12:47:42
last_update2022-10-14 12:47:42
depth1
children0
last_payout2022-10-21 12:47:42
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length13
author_reputation864,494,684,855,967
root_title瞎折腾之:把网站(cutehive.com)搞崩溃啦
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id117,462,792
net_rshares0
@ecency ·
Your content has been **voted** as a part of [Encouragement program](https://ecency.com/ecency/@good-karma/encouragement-program-continues-82eafcd10a299). Keep up the good work! <br><br>Use Ecency daily to boost your growth on platform! <br><br><b>Support Ecency</b><br>[Vote for new Proposal](https://hivesigner.com/sign/update-proposal-votes?proposal_ids=%5B197%5D&approve=true)<br>[Delegate HP and earn more](https://ecency.com/hive-125125/@ecency/daily-100-curation-rewards)
properties (22)
authorecency
permlinkre-20221014t12551412z
categoryhive-105017
json_metadata{"tags":["ecency"],"app":"ecency/3.0.20-welcome","format":"markdown+html"}
created2022-10-14 12:05:51
last_update2022-10-14 12:05:51
depth1
children0
last_payout2022-10-21 12:05:51
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length478
author_reputation624,384,811,178,824
root_title瞎折腾之:把网站(cutehive.com)搞崩溃啦
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id117,462,058
net_rshares0
@love5200 ·
网站心里想:“我有什么错!”
properties (22)
authorlove5200
permlinkre-oflyhigh-20221015t13430888z
categoryhive-105017
json_metadata{"tags":["cn","life","blog","site","cutehive"],"app":"ecency/3.0.34-mobile","format":"markdown+html"}
created2022-10-14 17:34:33
last_update2022-10-14 17:34:33
depth1
children0
last_payout2022-10-21 17:34:33
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length14
author_reputation540,067,070,772,916
root_title瞎折腾之:把网站(cutehive.com)搞崩溃啦
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id117,468,861
net_rshares0
@lovelingling ·
在下才疏学浅,先蒙圈一会儿。😅
properties (22)
authorlovelingling
permlinkre-oflyhigh-20221014t201252916z
categoryhive-105017
json_metadata{"tags":["hive-105017","cn","life","blog","site","cutehive"],"app":"ecency/3.0.19-mobile","format":"markdown+html"}
created2022-10-14 12:12:54
last_update2022-10-14 12:12:54
depth1
children0
last_payout2022-10-21 12:12:54
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length15
author_reputation725,048,585,223,825
root_title瞎折腾之:把网站(cutehive.com)搞崩溃啦
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id117,462,208
net_rshares0
@swkailing ·
过来膜拜大佬😁
properties (22)
authorswkailing
permlinkre-oflyhigh-20221014t201236577z
categoryhive-105017
json_metadata{"tags":["hive-105017","cn","life","blog","site","cutehive"],"app":"ecency/3.0.25-mobile","format":"markdown+html"}
created2022-10-14 12:12:36
last_update2022-10-14 12:12:36
depth1
children0
last_payout2022-10-21 12:12:36
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length7
author_reputation42,698,332,715,916
root_title瞎折腾之:把网站(cutehive.com)搞崩溃啦
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id117,462,205
net_rshares0