magento2 - 提交订单最后一步时出错 - Report ID: webapi - 可能是宝塔站点的“防跨站攻击(open_basedir)”问题

现象:magento2站点,测试时发现提交订单最后一步时报错,如:Details are available in Magento log file. Report ID: webapi-61c539eec7d0c 详细的日志如:

[2021-12-24 03:11:39] main.CRITICAL: Report ID: webapi-61c53a6b7b804; Message: Validate class not found from basename 'Magento\Framework\Validator\EmailAddress' {"exception":"[object] (Exception(code: 0): Report ID: webapi-61c53a6b7b804; Message: Validate class not found from basename 'Magento\Framework\Validator\EmailAddress' at /www/wwwroot/web1/vendor/magento/framework/Webapi/ErrorProcessor.php:208, Zend_Validate_Exception(code: 0): Validate class not found from basename 'Magento\Framework\Validator\EmailAddress' at /www/wwwroot/web1/vendor/magento/zendframework1/library/Zend/Validate.php:244)"} []
[2021-12-24 03:11:42] main.CRITICAL: Report ID: webapi-61c53a6eb6cea; Message: Validate class not found from basename 'Magento\Framework\Validator\EmailAddress' {"exception":"[object] (Exception(code: 0): Report ID: webapi-61c53a6eb6cea; Message: Validate class not found from basename 'Magento\Framework\Validator\EmailAddress' at /www/wwwroot/web1/vendor/magento/framework/Webapi/ErrorProcessor.php:208, Zend_Validate_Exception(code: 0): Validate class not found from basename 'Magento\Framework\Validator\EmailAddress' at /www/wwwroot/web1/vendor/magento/zendframework1/library/Zend/Validate.php:244)"} []
[2021-12-24 03:11:43] main.ERROR: Braintree\Configuration::merchantId needs to be set (or accessToken needs to be passed to Braintree\Gateway). [] []

尝试:在宝塔面板的站点管理,网站目录的属性中,不勾选 “防跨站攻击(open_basedir)” 的功能。

dn_magento2-bt-open_basedir.png

参考:https://github.com/magento/magento2/issues/12255

当 mysql 服务因内存不足被系统强制退出后,自动再启动

问题:有个VPS,站点在某些时间段可能被爬虫频繁访问导致mysql服务自动退出,隔天就要人工启动mysql服务,恢复站点可访问状态。

尝试:可以写个定时执行的任务,检测mysql服务是否运行,如没有运行,就启动之。

如脚本 /root/mysqlmon.sh 的内容:

#!/bin/bash

# Check if MySQL is running
/sbin/service mysqld status > /dev/null 2>&1

# Restart the MySQL service if it's not running.
if [ $? != 0 ]; then
    echo -e "MySQL Service was down. Restarting now...\n"
    /sbin/service mysqld restart
else
    echo -e "MySQL Service is running already. Nothing to do here.\n"
fi

定时任务内容(每隔15分钟检查服务状态):
*/15 * * * * /root/mysqlmon.sh > /dev/null 2>&1

在centos7中,可查看 /var/log/cron 日志内容,查看任务执行的历史记录。

参考:https://devanswers.co/how-to-auto-restart-a-crashed-mysql-service-with-cron/

在 drservers 的 Debian 11 机子上用 proxmox 创建 IPv6 的 LCX 小机

关键是在 Proxmox 上配置好网络,如以下是 Bridge 的 /etc/network/interfaces 文件配置内容:

source /etc/network/interfaces.d/*

auto lo
iface lo inet loopback

iface eno1 inet manual

iface eno2 inet manual

auto vmbr0
iface vmbr0 inet static
        address 144.172.126.2/24
        gateway 144.172.126.1
        bridge-ports eno1
        bridge-stp off
        bridge-fd 0

也可以通过 proxmox 的 web 配置界面来设置,如:

drs_proxmox_debian11-bridge.png

参考:https://pve.proxmox.com/wiki/Network_Configuration

用WMR VR头玩《尘埃拉力赛2.0》 - 要先运行SteamVR

问题:想用 Windows Mixed Reality 的VR头盔玩赛车游戏《尘埃拉力赛2.0》,但在Steam里选择“在Steam虚拟现实模式下启动 DiRT Rally 2.0”后,VR头无游戏图像,仅是一个SteamVR的背景图而已。

尝试:网上说,要先从Steam里启动SteamVR的程序,再从SteamVR Home里启动《尘埃拉力赛2.0》的游戏。

个人体验:头晕。我试车,一个道都没开完,觉得头上满是又热、又辣的汗,如同涂了风油精。我尝试张大嘴来喘气,但这更加剧了我想呕吐的感觉,不得不中途摘掉VR头,退出了游戏,太晕人了。

参考:

补粪缸

有次,我扣稳屙粪,无意间低头睇到脚下有条黑缝。认真睇下,黑缝是瓷片和蹲便器之间的填缝材料断节、脱落后被水冲洗走导致。我边屙粪边想,这有可能是我最近错误地将“威王”的洁厕净倒到缝缝上,化学药水将原填缝的材料当成重垢给除走了。我懊恼不已。

缝隙大的地方有5毫米嘅大。5毫米有几大?大到几大?我对着镜子,用直尺量了量我两只上门牙的缝隙,约2毫米。我心里想,就凭我这2毫米的门牙缝,已经把好多妹仔嫌不好睇。那粪缸这5毫米宽、20厘米长的缝隙更是显眼,得人闹了。从卫生角度来睇,如果这么大的缝隙长时间存在,可能会装得落好多尿啊屎末之类的。从安全角度来睇,如果缝隙长时间被水冲,缝隙会不断地被加深、加大,导致大量的水渗到地底下,可能会造成瓷片“地基”不稳、下陷的结果,严重威胁到大便人的人身安全。很多人不想讲粪缸,但它是必需品,每天都要用的。不是每天,是每隔几个小时小便就要用,是每个人新陈代谢的行为表现之一,也是文明生活的表现物之一。

意识到补粪缸的必要性后,我在网上买了填缝剂,要补粪缸了。实际上,我只是要填条缝而已,补粪缸是往大夸了的说,我没补缸缸的技艺。填缝剂的产品原来也不断地进化,从最初的白水泥,到现在的不知什么颗粒。我保守一点,买了一袋普通的填缝剂,打算到时自己动手补粪缸,练练手。收到快递后,我按照填缝剂上的操作说明,找来一只小塑料盒,装点清水,然后先后三次加填缝粉末到塑料盒里搅匀,一直搅到盒里的粉末变成牙膏状。然后,我用它搭来的一块塑料片从盒中挑出填缝膏,往瓷片和粪缸相间的黑缝里挞,再不断地用塑料片往一边嘎,想嘎平来。填好那条黑缝后,我觉得它比其它不曾嘎的地方要白点点。不如全部嘎一遍了,不管有没缝了,我心里想。可能我不熟手,又或者我怕嘎不平,这约2米长的粪缸周长,我花了差不多一只钟头,累得我腰酸头胀。当我扣稳嘎灰时,我觉得粪缸离我是这么的近,鼻子能嗅到一阵特别的味道——如苞蓿味。我才想到,为了让地面干燥,我已经大半天没往粪缸里冲水了。罢!罢!为了尔粪缸好,其实系为了我自家好,我皱着鼻公、嗅着味道继续嘎灰。

嘎好灰后,我照着手电,细细看了一周,觉得缝填得不够平整,所以我找了个塑料袋套在手指上,用手指尖尖的指肚子来勾平缝上的灰,如同在脸上抹雪花膏般抹平、抹匀。这时的我,顾不上干净不干净啊,卫生不卫生啊。我只有一个小小的愿望:让我想屙就屙,不要让我忍大小便,不要不准我用粪缸。抱着必须完成的信念,我终于完成了为蹲便器和瓷片间填缝的任务。外边响起小学生放学的声音,五点半了。我脱掉手上的塑料袋,手指在肥皂上摸了摸,搓了搓手掌,冲洗了一下,然后走到厨房,拿起米角倒米、擦米,准备煮夜食了。

sh_bu-bing-gang-2.jpg