解决 code-server 4.20 不再支持 glibc2.27 的问题:一次 Ubuntu 18.04 维护之旅

在这篇博客中,我将详细介绍一次 Ubuntu 18.04 系统维护的过程。我们的目标是升级 code-server 到最新版本,但由于系统中的 glibc 版本过低,我们需要进行一系列的操作来解决这个问题。

问题描述

我们的系统是 Ubuntu 18.04,安装的 glibc 版本是 2.27。然而,最新版本的 code-server 需要 glibc 2.28 或更高版本。因此,我们需要升级我们的 glibc。

解决方案

安装 glibc 2.28

我们首先尝试升级 Ubuntu 到最新版本,但由于 Python3 版本的问题,我们无法完成升级。因此,我们决定通过编译源码的方式来安装 glibc 2.28。

我们下载 glibc 2.28 的源码,然后进行编译和安装。然而,尽管我们已经安装了 glibc 2.28,但 ldd 命令仍然显示我们的 glibc 版本是 2.27。这是因为我们没有修改系统的动态链接库。

使用Cloudflare API自动切换DNS

在这篇文章中,我们将探讨如何使用Cloudflare API自动切换DNS。我们将使用Uptime Kuma来监控网站运行状态,并通过webhook进行通知。我们还将运行webhookd服务来接收Uptime Kuma的请求,并在网站状态出现问题时,使用Cloudflare API切换到备用服务器。

引用

https://github.com/louislam/uptime-kuma
https://github.com/ncarlier/webhookd
https://github.com/ncarlier/webhookd/issues/82
https://www.tech-otaku.com/web-development/using-cloudflare-api-manage-dns-records/

监控网站运行状态

首先,我们需要一个工具来监控我们的网站运行状态。这里,我们选择使用Uptime Kuma,它是一个功能强大的开源监控工具,可以帮助我们实时了解网站的运行状况。
当Uptime Kuma检测到网站状态发生变化时,它可以通过webhook发送通知。我们需要运行一个webhookd服务来接收这些通知。

如何在sitecore RichTextEditor中添加自定义 line-height属性

引用

https://jammykam.wordpress.com/2014/06/17/add-custom-drop-down-list-to-rich-text-editor-in-sitecore/
https://www.davidbuckell.com/blogs/development/sitecore/customising-the-rich-text-editor/adding-a-custom-dropdown-to-sitecore-rich-text-editor-toolbar/
https://sitecorerunner.com/2018/08/21/adding-rte-richtext-custom-dropdown-list-in-sitecore-9/

sitecore RichTextEditor是一个强大的文本编辑器,它可以让你在sitecore中创建和编辑富文本内容。它提供了很多常用的功能,比如字体、颜色、对齐、插入图片等。但是,有时候你可能需要一些更高级的功能,比如调整文本的行高。行高是指文本行之间的垂直距离,它可以影响文本的可读性和美观性。在sitecore richtexteditor中,你可以通过修改HTML源码来设置行高,但是这样做比较麻烦,而且需要一定的HTML知识。有没有一种更简单的方法呢?答案是肯定的。在本文中,我将教你如何在sitecore richtexteditor中添加一个自定义的下拉列表,让你可以方便地选择和插入不同的行高值。

在Core中创建Line-Height下拉列表

在Core库中找到Profile , eg: /sitecore/system/Settings/Html Editor Profiles/Rich Text Default/Toolbar 3
创建名称为Line Height, 模板为 /sitecore/templates/System/Html Editor Profiles/Html Editor Custom Drop Down Button
字段Click 为自定义字符串,下面的JS中会用到,eg: InsertCustomLineHeight
子节点模板为: /sitecore/templates/System/Html Editor Profiles/Html Editor List Item

Sitecore Rich Text Editor 添加自定义styles

引用

https://sitecore.stackexchange.com/questions/9763/sitecore-8-2-rich-text-editor-drop-down-items
https://web.archive.org/web/20170407075518/http://www.awareweb.com/awareblog/profilespecificstylesheets

在Sitecore中,我们可以通过修改WebStylesheet设置来为富文本编辑器(RTE)添加自定义的CSS。但是,这种方法只允许我们指定一个CSS文件。如果我们想要使用多个CSS文件,或者我们想要为特定的用户角色或设备类型指定不同的CSS,那么我们需要寻找其他的方法。

自定义EditorConfiguration

我们可以创建一个自定义类EditorConfiguration,该类用于根据Sitecore配置文件设置富文本编辑器。它重写了SetupStylesheets方法,以添加在配置文件的Stylesheets文件夹中指定的CSS文件。

Debian Rclone automount | Rclone 自动挂载

Debian Rclone automount | Rclone 自动挂载

引用

https://github.com/rclone/rclone/wiki/Systemd-rclone-mount#systemd

前提

  • 安装rclone
  • 配置远程服务器,eg:my_remote_service, (default config location: ~/.config/rclone/rclone.conf)

操作

[Unit]
Description=RClone mount of users remote %i using filesystem permissions
Documentation=http://rclone.org/docs/
After=network-online.target

....

Django项目的多语言支持

引用

https://testdriven.io/blog/multiple-languages-in-django/

Django是一个非常流行和强大的Python Web框架,它提供了很多内置的功能,让开发者可以快速地构建高性能、安全、可扩展的网站。其中一个功能就是国际化和本地化,也就是让网站能够根据用户的语言和地区偏好,显示不同的内容和格式。这样,网站就可以覆盖更多的用户群体,提高用户体验和满意度。

在这篇博客中,我将介绍如何使用Django的国际化和本地化功能,以及一些第三方库,来实现多语言网站的开发。我将以一个简单的博客网站为例,展示如何让它支持英语、法语、西班牙语、越南语、波兰语、泰语、韩语、日语、简体中文和繁体中文这十种语言。我将分为以下几个步骤:

  • 基本设置
  • 模型和视图的国际化
  • 模板的国际化
  • URL的国际化
  • 静态文件的国际化
  • 语言切换
  • 使用第三方库

基本设置

首先,我们需要在项目的settings.py文件中,做一些基本的设置,来启用国际化和本地化功能,以及指定支持的语言和默认语言。具体的设置如下:

    # 基本设置

    LANGUAGE_CODE = 'zh-hans' # 默认语言,这里我设置为简体中文
    #PARLER_DEFAULT_LANGUAGE_CODE = 'zh-hans' # 这是一个第三方库的设置,后面会介绍

    TIME_ZONE = 'UTC' # 时区,这里我设置为UTC,你可以根据需要修改

    USE_I18N = True # 启用国际化功能

    USE_L10N = True # 启用本地化功能

    USE_TZ = True # 启用时区支持

    # https://github.com/django/django/blob/main/django/conf/global_settings.py#L56
    LANGUAGES = ( # 指定支持的语言,这里我设置了十种语言,你可以根据需要增加或删除
        ('en', ('English')),
        ('fr', ('Français')),
        ('es', ('Español')),
        ('vi', ('Tiếng việt')),
        ('pl', ('Polskie')),
        ('th', ('ไทย')),
        ('ko', ('한국어')),
        ('ja', ('日本語')),
        ("zh-hans", ("简体中文")),
        ("zh-hant", ("繁體中文"))
    )

    LOCALE_PATHS = [ # 指定存放翻译文件的路径,这里我设置为项目根目录下的locale文件夹
        os.path.join(os.path.dirname(os.path.dirname(__file__)), "locale")
    ]

解决Sitecore 10.1.3 CD环境中的Sitecore多站点之间的internal link问题

在我们的工作中,遇到了一个关于Sitecore站点定义的问题,导致在Sitecore 10.1.3的CD环境中出现了链接生成错误的情况。在此,我将分享这个问题的细节以及解决方案。

引用与参考

https://archive.doc.sitecore.com/xp/en/SdnArchive/SDN5/Articles/Administration/Configuring%20Multiple%20Sites/Adding%20New%20Site/site%20Attribute%20Properties/targetHostName.html
https://support.sitecore.com/kb?id=kb_article_view&sysparm_article=KB1000633

问题描述

具体现象是在站点A引用站点B的节点时,链接里的/sitecore/content关键字没有被正确解析,导致链接生成错误。需要特别注意的是,这个问题只在CD环境中出现,而在CM环境中是正确的。

发现问题

由于CD环境不能调试,我们创建aspx文件上传到测试CD环境中,来尝试打印一些关键属性

Flarum nginx 配置

官方安装文档

https://docs.flarum.org/install

参考官方安装文档就行,先把基本都安装好,

其中有一个URL Rewriting ,我使用的Nginx,

所以需要创建一个,nginx.site.config

server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;
    server_name domain.com;

    root /path/to/flarum/public;
    index index.html index.htm index.php;
    include /path/to/.nginx.conf;

    # URI 符合正则表达式 [\.php$] 的请求将进入此段配置
    location ~ \.php$ {
        # 配置 FastCGI 服务地址,可以为 IP:端口,也可以为 Unix socket。
        fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
        # 配置 FastCGI 的主页为 index.php。
        fastcgi_index index.php;
        # 配置 FastCGI 参数 SCRIPT_FILENAME 为 $realpath_root$fastcgi_script_name。
        fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
        # 引用更多默认的 FastCGI 参数。
        include fastcgi_params;
    }

    #ssl_certificate xxx
    #ssl_certificate_key yyy

}

Free-HLS 视频床 部署

Github

https://github.com/sxyazi/free-hls

Clone Source Code

cd /var/www
git clone https://github.com/sxyazi/free-hls.git
cd free-hls

修改docker-compose.yml文件,

把APP 映射到宿主机/mnt/free-hls/app

        - app:/var/app
+      - /mnt/hdd/free-hls/uploads:/var/app/web/uploads
....


volumes:
  app:

94采集器下载和安装

下载

这是94采集器下载链接最新版本5.2.4 下载

安装

  1. 下载压缩包之后,解压后上传到服务器,以/var/www/94caiji 目录为例。
  2. 使用的python版本为3.8, 如果当前服务器上安装的不是3.8的版本,建议安装pyenv进行python版本管理。
  3. 使用virtualenv venv 创建虚拟环境。激活venv . venv/bin/activate
  4. 安装依赖 pip install -r requestments.txt, 在安装的过程中可能提示错误如下,修改requestments.txt 为 pyppeteer==0.2.6
ERROR: Cannot install pyppeteer==0.2.5 and pyppeteer==0.2.6 because these package versions have conflicting dependencies.
  1. 可能还需要安装cfscrape, 错误如下, 需要安装 pip install cfscrape
ModuleNotFoundError: No module named 'cfscrape'

测试

执行python3 index.py 看是否可以运行, 如果没有错误,可以正常运行,说明python环境依赖安装完成。

Viagle Blog

欢迎来到我的个人博客网站