drserver.net 站的静态页面简体中文翻译 - 非官方

用了四天,将我老板的网站 drserver.net 大概翻译了。我是将原网站页面保存为静态文件,然后动手将其中的十个页面进行小修改和翻译。

不译如 resellerwebhosting 的页面,因为觉得没人看。aup 和 termsofservice 页面的内容合并在一处。

效果:https://drs.anqun.org/https://drserver.cn/ 请注意,仅是我个人的翻译,内容可能不准确,不代表官方意思。

可能的好处:从中国访问,相对会快些吧,因为原站在欧洲。

FOSSBilling 简体中文语言 翻译着玩

约十五年前,虚拟主机产品热销时,WHMCS,Clientexec 和 Blesta 作为销售、管理虚拟产品的程序较受欢迎。搞到我当时以为买一套 WHMCS 就能开卖虚拟主机,做上“老板”了。但一套软件,买断要1~2个月工资的钱。我犹豫再三,最后连相对价格实惠的 Blesta 也没买。

前些天,我看到有介绍 FOSSBilling ,说它是类似的软件,且可以免费使用。我下载后安装,的确似模似样。当看到程序的网页界面夹有英文时,我心里跃跃欲试。我想,当年“老板”不曾做成,现在可以下逞能翻译,让它显示中文来。

我知道自己的斤两,翻译起来,不要讲专业不专业,就是“让别人起码看得懂”的要求也是有难度的。我鼓励自己,要是抱着“找乐子”心态来。开始之前,有人已经翻译了百分之三十多了,我从20号到今天,用了约九天,磕磕碰碰、断断续续地做完了剩余的。翻译的感受是:第一是枯燥。觉得英语单词我看懂了,为什么还要这么麻烦地用中文写出来呢?我时不时敲自己脑袋,绞尽脑汁地考虑要不要将诸如“的”、“已”和“了”之类的字加上去。如果说枯燥不够具体形象,那有好几次,我是差点任眼皮耸拉着闭上,顺势打起瞌睡来。第三是好的文字表达能力很难得。我以为我把英文看懂后就能用汉字翻译了,但文字不是心里怎么想就怎么能组织好的。就如我在电话里说一件事给别人听,他会听得懂。但如要我将同一件事通过平信来告诉他,我觉得有难度,不知道怎么“落笔”。同样是手指能数得过来的几个菜单,我自己翻译的,和阿里云这样的大站相比较,那就是小学生和大学生的差别。人家一个“支持和服务”菜单,准确、明了,用词自然、衔接。我呢,一会儿将“Client”翻译成“用户”,一会儿又译成“客户”。不是我随便,是因为前边我想“用户”能“通俗”些,但后边觉得“客户”才上得了厅堂。我又懒,明知前后译得不一致,又不愿倒回去修改。明知有错,又不改正,我心里也生闷。第四是现在自动化、智能化,翻译起来省力不少。同十几年前相比,如今在crowding.com网站上操作,它会自动帮您预先翻译,你再从中挑选,点一点鼠标就行。它还能对比你前后的翻译,逻辑地使前后翻译的结果能对得上。以前是单机一个人操作,现在可以在线多人协同操作,还能保留之前的翻译,方便比较和筛选。

在这九天里,我有时是利用煲着饭的时间坐在电脑前点几个词组,零碎地翻译;又或者是我躺着,靠着枕头,大半个小时地用放在床边的笔记本电脑挑选词句,连续地翻译。不知不觉中,翻译的时间在不断地积累着。特别是当看到进度条接近完成时,我心里有点激动,好像是将要完成一件“大事情”。我明知这件事即使做成了,效果也是不起眼的,但我还是情愿地去做了。唉……我这是老了么,现在时间是用来消磨的,不是来换钱的了。

FOSSBilling客户中心 - 我译前

FOSSBilling客户中心 - 我译后

FOSSBilling管理后台 - 我译前

FOSSBilling管理后台 - 我译后

参考:https://fossbilling.crowdin.com/fossbilling/zh-CN

用 grml iso 作为急救盘 dd 安装 debian 12 系统

需求:一台物理机,主板不支持EFI,有 LSI MTP 阵列卡组成 6TB 的存储。想达到不使用IPMI,在原 Debian 系统环境中,能远程重装系统。

尝试:使用 grml iso 作为急救系统,在内存中使用,再通过 dd 命令,或 grml-debootstrap 重新安装 Debian 系统。

步骤:

  1. apt install grml-rescueboot # 安装 grml急救 工具
  2. mkdir /boot/grml 和 wget -O /boot/grml/grml.iso https://download.grml.org/grml64-small_2022.11.iso # 下载 grml 的iso文件
  3. sed -i 's|additional_param=""|additional_param="ssh=mjj2023"|g' /etc/grub.d/42_grml # 添加 grml 的启动参数,即 ssh=mjj2023 。效果是自动启动 ssh 服务,且 root 的密码是 mjj2023
  4. update-grub # 更新 grub 配置
  5. grub-reboot 2 # 下次启动,选择从第二项启动,即加载 grml iso 文件
  6. reboot # 重启系统。如果顺利,机子重启后,会自动加载 grml iso 文件。 grml 会自动获取IP,然后启动 ssh 服务。机子可从远程ssh连接,即可登录到 grml 的急救系统

以下部分是具体实例,仅参考。

  1. ip addr add 66.181.33.88/32 dev eth0 和 ip route add default dev eth0 via 100.103.2.49 onlink # 如果成功通过IPv6 ssh连接到 grml 急救系统,可执行以上两条命令,为 eth0 网卡临时配置IPv4
  2. wget -O- https://cloud.debian.org/images/cloud/bookworm/latest/debian-12-nocloud-amd64.raw | dd of=/dev/sda status=progress # 这里是使用debian官方的硬盘镜像。dd 好后,需要设置root密码、允许root用户凭密码ssh登录,还需留意物理机的网卡名称可能会随环境变化
  3. cfdisk /dev/sda # dd 好后,调整分区大小。请留意,如果是使用debian官方的硬盘镜像,调整分区后,是否需要重新安装grub,否则重启后,会出现 grub rescue
  4. resize2fs /dev/sda2 # 调整文件系统大小

调整磁盘分区后,grub找不到原来的位置,转到grub-rescu了

grml iso急救系统

参考:

浪潮服务器 NF5270M4 安装 FreeBSD 9.3 遇到的问题

问题一:用 FreeBSD 9.3 的 iso 文件启动安装,报错:0xffffffff8091f91a ACPI APIC Table ALASKA AMI kernel trap 12 with interrupts disabled

freebsd93-x2apic-1.png

freebsd93_x2apic-2.png

尝试:在主板的 BIOS 里,将 extend APIC support - X2APIC 的功能禁用掉。

freebsd93-x2apic-3.png

问题二:屏幕显示 run_interrupt_driven_hooks still waiting after seconds for xpt_config ,无法进行下一步

尝试:服务器使用了 PM8060 RAID 阵列卡,FreeBSD 9.3 认不到硬盘。在 FreeBSD 9.3 的 loader prompt 里先 load kernel ,然后再加载从浪潮网站下载的阵列卡驱动 load aacu64.ko 。 安装好 FreeBSD 后,将 aacu64.ko 复制到 /boot/modules 目录中,且在 /boot/loader.conf.local 中配置该模块 aacu64_load = "YES" 。

参考:

在 nginx 里设置 acme 验证证书的目录

需求:acme.sh 建议用非root的用户运行,如果nginx里有多个站点需要验证证书,怎么做较方便呢?

尝试:如 创建一个 acme.conf 的配置文件,内容如下:

#############################################################################
# Configuration file for Let's Encrypt ACME Challenge location
# This file is already included in listen_xxx.conf files.
# Do NOT include it separately!
#############################################################################
#
# This config enables to access /.well-known/acme-challenge/xxxxxxxxxxx
# on all our sites (HTTP), including all subdomains.
# This is required by ACME Challenge (webroot authentication).
# You can check that this location is working by placing ping.txt here:
# /var/www/letsencrypt/.well-known/acme-challenge/ping.txt
# And pointing your browser to:
# http://xxx.domain.tld/.well-known/acme-challenge/ping.txt
#
# Sources:
# https://community.letsencrypt.org/t/howto-easy-cert-generation-and-renewal-with-nginx/3491
#
#############################################################################

# Rule for legitimate ACME Challenge requests (like /.well-known/acme-challenge/xxxxxxxxx)
# We use ^~ here, so that we don't check other regexes (for speed-up). We actually MUST cancel
# other regex checks, because in our other config files have regex rule that denies access to files with dotted names.
location ^~ /.well-known/acme-challenge/ {

    # Set correct content type. According to this:
    # https://community.letsencrypt.org/t/using-the-webroot-domain-verification-method/1445/29
    # Current specification requires "text/plain" or no content header at all.
    # It seems that "text/plain" is a safe option.
    default_type "text/plain";

    # This directory must be the same as in /etc/letsencrypt/cli.ini
    # as "webroot-path" parameter. Also don't forget to set "authenticator" parameter
    # there to "webroot".
    # Do NOT use alias, use root! Target directory is located here:
    # /var/www/common/letsencrypt/.well-known/acme-challenge/
    root         /var/www/acme;
}

# Hide /acme-challenge subdirectory and return 404 on all requests.
# Ending slash is important!
location = /.well-known/acme-challenge/ {
    return 404;
}

然后让web用户在/var/www/acme有写入权限,再在所需站点的配置文件里引用这个acme.conf文件就可以啦。

参考:https://community.letsencrypt.org/t/how-to-nginx-configuration-to-enable-acme-challenge-support-on-all-http-virtual-hosts/5622/3