博客 (30)

  1. 购买 ECS

  2. 解析域名、挂载磁盘(若有另购)、修改实例名称、配置安全组、设置快照策略、

    安装云监控插件并在应用分组添加服务器(云监控 - 云资源监控 - 应用分组)、

    云安全中心防勒索安装客户端并配置策略资产(云安全中心 - 防护配置 - 主机防护 - 防勒索 - 编辑你的策略 - 添加资产)

  3. 远程连接进入 ECS(若解析未生效可以先用 IP)(若新服默认使用 22 端口,可先在安全组临时放行 22 端口)

  4. 修复系统漏洞(阿里云-云安全中心-漏洞管理)

  5. 将磁盘挂载到目录(fdisk、df 命令参考:https://xoyozo.net/Blog/Details/SSH

  6. 安装宝塔面板(本文以宝塔面板方案为例,选择任何你喜欢的环境部署方案都行)

  7. 临时放行宝塔面板端口,进入宝塔面板(http方式)

  8. 配置面板 SSH、添加新的安全端口、面板设置

  9. 更改 SSH 默认端口(参:https://xoyozo.net/Blog/Details/change-default-port

  10. 安装 nginx、PHP 等

  11. 配置 PHP 扩展(Redis、sqlsrv(注意选择兼容的版本)、memcached 及端口)

  12. 创建网站,配置网站(路径、伪静态等)

  13. 迁移网站文件(参:https://xoyozo.net/Blog/Details/SSH

  14. 仔细对比新旧网站的配置文件(特别是 .php 的访问权限,参:https://xoyozo.net/Blog/Details/nginx-location-if

  15. 设置写入目录(使用 rsync 同步的文件会同步用户和权限)

  16. 解析域名(先改 hosts 测试网站功能)

  17. 更改内网其它 ECS 上的 hosts

  18. 关闭原 ECS(能马上发现问题,不然等运行一段时间才发现问题就麻烦点)

  19. 设置 FTP

  20. 迁移“计划任务”

  21. 所有网站和软件的配置文件都要使用 WinMerge 进行对比

  22. 移除“宝塔面板-安全”和“阿里云-ECS-安全组”中不用的端口


更多文章:

从零搭建一台阿里云 ECS(Windows Server)并迁移网站

xoyozo 1 个月前
452

本文基于 manifest v3


插件使用 Web 技术开发

浏览器提供额外的插件 API

插件与网页分离,运行在一个独立的环境中


插件 API 功能

  • 管理 Tabs、窗口、历史记录、书签、Cookies、下载、浏览数据、通知、网站权限

  • 管理浏览器的外观和感觉 - 背景、主题、右键菜单、新标签页、启动页面

  • 定制 DevTools

  • 向网页注入脚本,与网页通信,与系统中的 Native 应用程序通信

  • 修改/监听发送的 HTTP 请求/接收的回复


插件构成

结构功能调用 API操作 Dom进程
manifest配置文件-

popup弹出对话框所有
Extension process
option page用户使用的设置页面所有

background script后台脚本所有禁止?Extension process
content script内容脚本(注入到网页中)有限允许Renderer process

* 即便 content script 是注入到网页中的,而且是运行在 Renderer 进程(与主网页相同的进程),但是它们仍运行在不同的世界(world)。主网页运行在 main world,插件的 content script 运行在 isolated world。比如说 main world 中有一个变量,它在 isolated world 中是访问不到的,但是如果修改了 dom,对其它世界是有影响的。


将 Chrome 插件迁移到 Edge

  • 移除 Chrome 独有的 API(如调用 Google 账户)

  • 移动 update_URL 字段(如果是从 Chrome 商店直接下载的包会有这个字段)

  • 改名 Chrome 相关的文字(插件名称、描述文字)


参考文献

  1. Microsoft Edge 扩展入门(官方)

  2. 一小时精通Edge扩展开发Microsoft Edge 文档(视频)

xoyozo 5 个月前
466
  1. 购买 ECS

  2. 解析域名、挂载磁盘(若有另购)、修改实例名称、配置安全组、设置快照策略、安装云监控插件并在应用分组添加服务器、云安全中心防勒索安装客户端并配置策略资产

  3. 远程连接进入 ECS(若解析未生效可以先用 IP)

  4. 开启 Windows 防火墙(使用推荐设置)

  5. Windows 更新

  6. 安装 IIS:服务器管理器-添加角色和功能-勾选“Web 服务器(IIS)”包括管理工具

    建议勾选:

    默认已勾选项

    按需安装 IP 和域限制

    常见 HTTP 功能(不建议安装 WebDAV 发布

    跟踪(即“失败请求跟踪”)

    请求监视器、日志记录工具、

    按需安装 ASP

    按需安装 ASP.NET 4.8(会同时勾选 .NET Extensibility 4.8、ISAPI 扩展、ISAPI 筛选器)

    按需安装 WebSocket 协议

    应用程序初始化(建议安装)

    管理服务(用于 Web 部署)

  7. 细节:设置任务栏;设置桌面图标;个性化-颜色-勾选“标题栏和窗口边框”;设置输入法;

  8. 更改远程桌面端口

  9. 按需安装:

    下载 URL 重写(文件名:rewrite_amd64_zh-CN.msi)

    下载 MySQL Connector/NET(文件名:mysql-connector-net-8.0.19.msi)

    下载 ASP.NET Core 运行时 Hosting Bundle(文件名:dotnet-hosting-*.*.*-win.exe)

    下载 .NET 桌面运行时 Windows x64(文件名:windowsdesktop-runtime-*.*.*-win-x64.exe)

    下载 Web Deploy(文件名:WebDeploy_amd64_zh-CN.msi)

  10. 服务:设置“ASP.NET State Service”自动启动

  11. IIS 日志:路径(如 D:\wwwlogs),每小时(统一设置一个全局的就行了,不需要设置每个网站),按需勾选“使用本地时间进行文件命名和滚动更新”

  12. IIS 导入证书:个人、允许导出证书。

  13. 设置默认网站的 https

  14. 设置权限:设置网站所在分区(如 D 盘),安全,添加 IIS_IUSRS,全部拒绝(防止跨站)

  15. 添加用户:为每个网站创建用户(既能防止跨站,又能跟踪进程),密码不能改、不过期,仅隶属于 IIS_IUSRS,并添加到每个网站的根目录

  16. 创建网站:设置访问物理路径的用户;设置应用程序池的“标识”用户;编辑绑定:勾选需要服务器名称指示;检查域名是否绑全;设置写入目录;

  17. 重复上面两步

  18. 检查所有网站用户是否仅隶属于 IIS_IUSRS(在“组”页面双击 Users 和 IIS_IUSRS 查看成员)

  19. 在应用程序池列表页面检查 CLR 版本、管托管道模式和标识;在网站列表页面检查绑定和路径

  20. 设置 Web 部署

  21. 设置“IP 地址和域限制”

  22. 废弃旧服时再次检查:IIS 中各功能设置、hosts、安装的应用程序、启动项、服务、防火墙等

  23. 更改默认端口

  24. 解析各网站域名

  25. 其它:资源管理器-查看-选项-查看-去掉“始终显示图标,从不显示缩略图”前的勾


>> 关于域名解析

因各地域名解析生效时间不可控,一般国内域名 1 天内,国际域名 2 天内。

  • 若网站数据库在 RDS、上传文件在 OSS,则解析 48 小时后直接停止原网站即可;(比较理想的)

  • 文件上传到 ECS 的可使用 FTP 等工具定时同步文件,或直接停止原网站。(网友会遇到新文章中图片无法显示等问题)

  • 还有一种方法是新网站提前解析一个备用域名,确保完全生效后再修改正式域名的解析,原网站无条件跳转到备用域名,如果数据库中有保存完整网址路径的,关闭原网站并解绑备用域名之后,进行批量替换。(缺点是可能会影响在搜索引擎的网站权重)

  • 部分有定时器的网站要注意,如果两个网站的定时器都正常开启会导致意外的,需要停止其中一个网站的定时器。

当然每种方法都有优缺点,选择可以接受且方便的一种即可。


更多文章:

从零搭建一台阿里云 ECS(Alibaba Cloud Linux / CentOS / Linux)并迁移网站

xoyozo 7 个月前
1,642

前言:本文操作需要你具备浏览器安装和使用扩展插件的能力、以及简单的使用命令行的能力。


第一步:下载视频

首先我使用 Edge 浏览器(Chrome 操作类似,不过安装扩展需要科学上网)。

2023 年初的时候,用 FetchV 这个扩展是非常方便的,它会自动嗅到网页中的视频,即使没有嗅到也可以用录制的方式来保存。

但到了过了一两个月发现 FetchV(及其马甲)经常打不开,或者无法嗅到视频流,更别提录制了。

所以我找到了另一款专业视频下载神器

image.png

当然它的马甲们用法也是大同小异,主界面是这样的:

image.png

开启捕获,同意下载多个文件,然后播放视频,耐心等待。

心急的朋友可以用修改播放速度的扩展(如 视频加速减速控制),例如我用 10 倍速,那么一个小时的视频用六分钟就播放完成了。

等小浮框提示“捕获完成 点击下载”的时候就可以保存到磁盘上了。

image.png


第二步:音频修复

下载后它会有两个 .mp4 文件保存到电脑上,其中较大的是视频部分,较小的是音频部分。

但是有个小问题是,这个音频文件用 Windows 自带播放器播放正常,用 potplayer 等第三方播放器或者一些视频编辑软件播放就会有问题,不知道是不是我在虚拟机操作不认声卡的原因。

我在 Microsoft Store 中找了一款叫 Movie Maker - Video Editor 的应用,

apps.39913.13859945615656852.b1baa2a9-3899-402f-856c-99b5767be0e6.png

在这个软件中添加刚才的只有音轨的视频文件会提示转码,转码后的 .mp4 文件音轨就正常了。

具体步骤是依次点击“Create New Project”,“Add clip”,“Photo/Video”,选择文件后“Transcode”,保存以后默认会在文件名后加上“ (Transcoded).mp4


第三步:音视频合成

接下来是合成视频和音频,视频文件我命名为 v.mp4,音频文件我命名为 a.mp4。

FFmpeg 官网下载 Windows 版,然后使用这个命令从音频文件中提取音轨:

ffmpeg -i a.mp4 -vn -acodec copy a.aac

再用这个命令将 v.mp4 的视频和 a.aac 的音频合成一个新的文件

ffmpeg -i v.mp4 -i a.aac -c:v copy -c:a copy -map 0:v:0 -map 1:a:0 output.mp4

相比于其它的视频转换工具,ffmpeg 直接提取合并的速度是极快的。


Tips:

  • 小鹅通中学习过的课程再次打开会从上次关闭的地方开始播放,这会导致捕获不全,可以将进度条手动拖到末尾,这样它会停止播放,再次刷新就会从头开始播放。

  • 浮框中“点击下载”可能没反应,估计是在合成文件,过几秒钟多点几下,不会重复下载。

  • 如果要下载的视频比较长或者比较多,可以像我一样在虚拟机里进行,把视频播放器的音量开到最大,把操作系统的声音关闭。

xoyozo 1 年前
13,801

本文将详细介绍 stable diffusion webui 的下载、安装及问题解决。
Stable Diffusion 是 2022 年发布的深度学习文本到图像生成模型。它主要用于根据文本的描述产生详细图像,尽管它也可以应用于其他任务,如内补绘制、外补绘制,以及在提示词(英语)指导下产生图生图的翻译。它是一种潜在扩散模型,由慕尼黑大学的 CompVis 研究团体开发的各种生成性人工神经网络。它是由初创公司 StabilityAI,CompVis 与 Runway 合作开发的,并得到 EleutherAI 和 LAION 的支持。
其它问题请参考

一、环境准备

(一)硬件方面:

1. 显存

4G 起步,4G 显存支持生成 512*512 大小图片,超过这个大小将卡爆失败。

2. 硬盘

10G 起步,模型基本都在 5G 以上,有个 30G 硬盘不为过吧?现在硬盘容量应该不是个问题。

(二)软件方面:

1. Git

https://git-scm.com/download/win
下载最新版即可,对版本没有要求。

2. Python

https://www.python.org/downloads/
截止发稿(2023.3.6)时,最高版本只能用 3.10.*,用 3.11.* 会出问题。

3. Nvidia CUDA

https://developer.download.nvidia.cn/compute/cuda/11.7.1/local_installers/cuda_11.7.1_516.94_windows.exe
版本 11.7.1,搭配 Nvidia 驱动 516.94,可使用最新版。

4. stable-diffusion-webui

https://github.com/AUTOMATIC1111/stable-diffusion-webui
核心部件当然用最新版本~~但注意上面三个的版本的兼容性。

5. 中文语言包

https://github.com/VinsonLaro/stable-diffusion-webui-chinese
下载 chinese-all-0306.jsonchinese-english-0306.json 文件

6. 扩展(可选)

https://github.com/Mikubill/sd-webui-controlnet
下载整个 sd-webui-controlnet 压缩包

https://huggingface.co/Hetaneko/Controlnet-models/tree/main/controlnet_safetensors
https://huggingface.co/lllyasviel/ControlNet/tree/main/models
https://huggingface.co/TencentARC/T2I-Adapter/tree/main
试用时先下载第一个链接中的 control_openpose.safetensors 或 第二个链接中的 control_sd15_openpose.pth 文件

7. 模型

https://huggingface.co/models
https://civitai.com
可以网上去找推荐的一些模型,一般后缀名为 ckptptpthsafetensors ,有时也会附带 VAE(.vae.pt)或配置文件(.yaml)。

类型文件格式存放目录备注
check point.ckpt,.safetensors\models\Stable-diffusion文件较大
vae名字带有 vae 的\models\vae细节更好地恢复,特别是眼睛和文字
Textual Inversion*.pt\embeddings一般文件很小,额外的 tag
Lora*.pt\models\Lora调整模型,理解为风格化也可以
Hypernetworks.pt,.ckpt,*.safetensors\models\hypernetworks和 lora 工作方式相似,算法不同

这里可以学习一下模型的基本概念《解析不同种类的 Stable Diffusion 模型 Models,再也不用担心该用什么了

二、安装流程

1. 安装 Git

就正常安装,无问题。

2. 安装 Python

建议安装在非 program files、非 C 盘目录,以防出现目录权限问题。
注意安装时勾选 Add Python to PATH,这样可以在安装时自动加入 windows 环境变量 PATH 所需的 Python 路径。

3. 安装 Nvidia CUDA

正常安装,无问题。

4. 安装 stable-diffusion-webui

国内需要用到代理和镜像,请按照下面的步骤操作:

a) 编辑根目录下 launch.py 文件
将 https://github.com  替换为 https://ghproxy.com/https://github.com,即使用  Ghproxy 代理,加速国内 Git。
如图将代码中所有类似地址都改掉(注意:不仅仅是图中所展示的这些)。

b) 执行根目录下 webui.bat 文件
根目录下将生成 tmp 和 venv 目录。

c) 编辑 venv 目录下 pyvenv.cfg 文件
将 include-system-site-packages = false 改为 include-system-site-packages = true

d) 配置 python 库管理器 pip
方便起见,在 \venv\Scripts 下打开 cmd 后执行如下命令:

pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/ # 镜像
pip freeze > requirements_versions.txt # 创建文件
pip install -r requirements_versions.txt # 执行此条命令前,请检查你的剩余磁盘空间
pip install xformer # 如果不执行此条命令,启动 Stable Diffusion 时可能会出现错误。xformer 还可以在后续使用中降低显卡占用。

xformer 会安装到 \venv\Lib\site-packages 中,安装失败可以用 pip install -U xformers 命试试。

e) 安装语言包
将文件 chinese-all-0306.jsonchinese-english-0306.json 放到目录 \localizations 目录中。
运行 webui 后进行配置,操作方法见下。

f) 安装扩展(可选)
将 sd-webui-controlnet 解压缩到 \extensions 目录中。
将 control_sd15_openpose.pth 文件复制到 /extensions/sd-webui-controlnet/models 目录中。
不同的扩展可能还需要安装对应的系统,比如 controlnet 要正常使用则还需要安装 ffmpeg 等。

g) 安装模型
下载的各种模型放在 \models\Stable-diffusion 目录中即可。

h) 再次执行根目录下 webui.bat 文件
用浏览器打开 webui.bat 所提供的网址即可运行。

其中提供了网址:http://127.0.0.1:7860

打开该网址后在 Settings -> User interface -> Localization (requires restart) 设置语言,在菜单中选择 chinese-all-0220(前提是已经在目录中放入了对应语言包,见上),点击 Apply Settings 确定,并且点击 Reload UI 重启界面后即可。

好了,现在可以开始使用了~~

三、问题及注意点

1. python 版本错误

错误

ERROR: Could not find a version that satisfies the requirement torch==1.13.1+cu117
ERROR: No matching distribution found for torch==1.13.1+cu117

这是由于 python 版本不对导致的(上面提过了,截止发稿时不能追求新版本),要用 python 3.10.* 版本。
解决来源:https://github.com/AUTOMATIC1111/stable-diffusion-webui/issues/7166

2. pip版本错误

警告:

[notice] A new release of pip available: 22.3.1 -> 23.0.1
[notice] To update, run: D:\stable-diffusion-webui\venv\Scripts\python.exe -m pip install --upgrade pip

提示中已经给出了解决方案:
在 \venv\Scripts\ 目录中打开 cmd,执行

python.exe -m pip install --upgrade pip

3. 安装或执行停滞

如果在执行 webui.bat 进行包下载安装时或者生成图片时会卡很久都没反应,那么这时可以复制包名,进入 python 安装目录或 \venv\Scripts\ 目录中打开 cmd,执行

pip install 包名

也可以通过任务管理查看网络状态,如果网络在玩命下载,那么就等着吧~~

4. xFormers 安装不上

很多同学都反应 xformers 无法安装,可以用以下的方法试试:

  • 检查 Dreambooth 要求的 Python 版本:
    如果您的 Python 版本低于 3.6,请安装最新的 Python 版本,并重复尝试安装 xformers。

# 据此可以在终端中运行以下命令,以检查您的 Python 版本:
python --version
  • 安装依赖项:xformers 有许多依赖项,如果这些依赖项没有正确安装可能会导致升级失败。您可以尝试安装以下依赖项:

pip install numpy scipy torch torchaudio transformers
  • 清除 pip 缓存并重新安装:

# 清除 xformers 缓存:运行以下命令清除 xformers 缓存。
pip uninstall -y xformers
pip cache purge

# 更新 pip:确保您正在使用最新版本的 pip,可以运行以下命令更新 pip。
pip install --upgrade pip

# 安装 xformers:在清除了缓存并更新了 pip 之后,重新安装 xformers。
pip install xformers
  • 手动安装 xformers 指定版本
    如果上述步骤仍然无法解决问题,可尝试手动安装 Dreambooth 所需的 xformers 版本。在 Dreambooth 的文档中,可以找到 xformers 的版本要求。

pip install xformers==0.0.17.dev465
  • 使用 conda 环境
    如果您使用的是 conda 环境,请尝试在 conda 环境中安装 xformers。

# 创建 conda 环境
conda create --name myenv

# 激活 conda 环境并安装 xformers
conda activate myenv
pip install xformers
  • 网络问题
    如果已经配置好了代理,就不要考虑这个了。
    检查网络连接:请确保您的计算机与互联网连接,并且网络连接没有被防火墙或代理服务器阻止:

# 检查网络连接是否正常
ping google.com
  • 非必要
    你确定需要使用 xformers 么?如果不需要,可以在 webui-user.bat 中把 --xformers 去掉试试。

  • 其它
    如果上述方法还是无法解决问题,请尝试在 OpenAI 的论坛或者 Dreambooth 的 GitHub 页面上寻求更多帮助。-_-!

5. 其他安装问题

删除 /tmp 和 /venv 目录后重启 webui.bat 试试。

6. 硬件问题

一般显卡不达标,就会爆卡,解决办法就是编辑根目录下 webui-user.bat 文件,试一下修改参数 COMMANDLINE_ARGS 即可。

以下几个设置逐一测试看看哪个适合自己。

set COMMANDLINE_ARGS=--lowvram --precision full --no-half --skip-torch-cuda-test
set COMMANDLINE_ARGS=--lowvram --precision full --no-half
set COMMANDLINE_ARGS=--lowvram

本机显存 4G,使用最后一个配置方法,可以烧出 2048*1080 的图,前两种方法反而会在最后爆卡。

最后,预祝各位成功~~

dog drink~~ where is dog?

在这里插入图片描述

参考:
【AI 繪畫】Stable-Diffusion 通過骨架分析插件 ControlNet 來製作超有意境的圖片
Stable Diffusion 2.1 + WebUI 的安装与使用(极详细)
低配显卡想玩 Stable Diffusion?修改一个配置就行
整合包

转自 暂时先用这个名字 1 年前
2,872

MidjourneyStable Diffusion
收费情况收费开源免费
使用方式联网本地部署(保护隐私?)
学习入门入门简单(学习学习成本较高(学习
内容质量
出图丰富多彩,质量高
内容限制内容有限制内容无限制
可扩展性
可以安装插件(ControlNet 等)
电脑配置
电脑配置有要求(N卡)


xoyozo 1 年前
1,305

首先,禁止网站下所有 .php 等文件均不允许被访问到。

在 nginx 网站配置文件中,include enable-php-**.conf; 上方插入:

location ~ ^/.*\.(php|php5|py|sh|bash|out)$ { deny all; }

其中,^ 匹配开始,/.* 匹配所有目录和文件名,\.(php|php5|py|sh|bash|out) 匹配文件后缀名,$ 匹配结束。

即便如此,仍然忽略了 nginx 中 .php 文件名后加斜杠仍然能访问到的情况,譬如我们访问这个网址:

https://xoyozo.net/phpinfo.php/abc.html

nginx 仍然运行了 phpinfo.php,给了后门可趁之机,所以改进为:

location ~ ^/.*\.(php|php5|py|sh|bash|out)(/.*)?$ { deny all; }


Discuz! X3.4 需要写入权限的目录:

  • /自研目录/upload/

  • /config/

  • /data/

  • /uc_client/data/

  • /uc_server/data/

  • /source/plugin/

但,这些都不重要,我们已经禁止了所有目录的 .php 访问了。


第二步,解禁需要直接被访问到的文件路径。

Discuz! X3.4 根目录下的 .php 文件都是入口文件,需要能够被访问到:

/admin.php
/api.php
/connect.php
/forum.php
/group.php
/home.php
/index.php
/member.php
/misc.php
/plugin.php
/portal.php
/search.php

其它目录中需要被直接访问到的文件:

/archiver/index.php
/m/index.php
/uc_server/admin.php
/uc_server/avatar.php
/uc_server/index.php

部分插件文件需要能够被直接访问到:

/source/plugin/magmobileapi/magmobileapi.php
/source/plugin/smstong/accountinfo.php
/source/plugin/smstong/checkenv.php

另外如果有自建目录需要有 .php 访问权限,那么也需要在此处加白,本文以 /_/ 目录为例

最终拼成:工具

location ~ ^(?:(?!(/admin\.php|/api\.php|/connect\.php|/forum\.php|/group\.php|/home\.php|/index\.php|/member\.php|/misc\.php|/plugin\.php|/portal\.php|/search\.php|/archiver/index\.php|/m/index\.php|/uc_server/admin\.php|/uc_server/avatar\.php|/uc_server/index\.php|/source/plugin/magmobileapi/magmobileapi\.php|/source/plugin/smstong/accountinfo\.php|/source/plugin/smstong/checkenv\.php|/_/.*\.php))/.*\.(php|php5|py|sh|bash|out)(/.*)?)$ { deny all; }

这里用到正则表达式中的“不捕获”和“负向零宽断言”语法,格式为:

^(?:(?!(允许的目录或文件A|允许的目录或文件B))禁止的目录和文件)$

值得注意的是,此句负向零宽断言中的匹配内容是匹配前缀的,也就是说

https://xoyozo.net/index.php
https://xoyozo.net/index.php/abc.html

都可以访问到,而

https://xoyozo.net/forbidden.php
https://xoyozo.net/forbidden.php/abc.html

都访问不到,这是符合需求的。

如果自建目录 /_/ 下有写入需求,单独禁止即可,以 /_/upload/ 为例:

location ~ ^/_/upload/.*\.(php|php5|py|sh|bash|out)(/.*)?$ { deny all; }


ThinkPHP 网站有统一的访问入口,可按本文方法配置访问权限。


特别注意:上面的代码必须加在 PHP 引用配置(include enable-php-**.conf;)的上方才有效。


附:一键生成 nginx 访问控制 location URI { } 语句工具

xoyozo 2 年前
2,371

在 Notepad++ 工具菜单上选择:插件 - 插件管理,搜索“HEX-Editor”,选中并点击安装。

image.png

然后点击:插件 - HEX-Editor - View In HEX,就可以查看了。

image.png

xoyozo 2 年前
2,770

第一步:下载安装 OBS Studio 插件:Advanced Scene Switcher

第二步:在 OBS 中预先添加两个可供直播的场景

第三步:在 OBS 菜单中打开:工具 - 高级场景切换器

切换器的功能十分强大,这里实现一种简单的随机场景切换。

切换到“随机场景列表”选项卡,点左下角“+”按钮添加现有场景,并设置转场特效和保留时间(单位“秒”)

image.png

切换到“通用”选项卡,点击“启动”

image.png

现在可以在主窗口中看到场景切换效果了。

如果设置特殊的转场特效,在主窗口的“转场特效”中添加后,可以“高级场景切换器”中选用。

image.png

xoyozo 3 年前
14,221

本文记录于 2021 年 9 月。



升级前期望(最新正式版)最终选择
操作系统CentOS 6.5Alibaba Cloud Linux 3Alibaba Cloud Linux 3
管理面板lnmp宝塔面板 Linux 版 7.7.0宝塔面板 Linux 版 7.7.0
Web 服务nginx 1.6nginx 1.21nginx 1.21
脚本语言PHP 5.6PHP 8.0PHP 7.4
数据库
RDS MySQL 5.6RDS MySQL 8.0RDS MySQL 5.6
论坛程序
Discuz! X3.2 GBKDiscuz! X3.5 UTF-8(即将发布)Discuz! X3.4 GBK


版本选择原因:

  • Alibaba Cloud Linux 完全兼容 CentOS,相比于 CentOS 较短的生命周期,Alibaba Cloud Linux 3 将于 2029 年 4 月 30 日结束生命周期。

  • Discuz! X3.4 不支持 PHP 8.0,安装时即报错,打开页面时一片空白。

  • MySQL 8.0 和阿里云 RDS 的 MySQL 7.5 不支持 MyISAM,而数据表 pre_common_member_grouppm 和 pre_forum_post 使用联合主键且自动递增字段不是第一主键,使用 InnoDB 引擎创建表时会报“1075 - Incorrect table definition; there can be only one auto column and it must be defined as a key”错误,而擅自更改主键次序会影响业务逻辑。因此,在必须选择阿里云 RDS 的情况下,只能选择 MySQL 5.6。(2023年8月注:查看如何更改为 InnoDB

  • Discuz! X3.5 正式版尚未发布(截止发稿),即便发布,插件也可能不能得到及时更新。相比之下,X3.4 首个版本发布距今已有 4 年,相关第三方插件已经非常成熟。


完整升级步骤:

  1. 备份原网站程序、RDS 数据库;

  2. 购买新的 ECS、RDS,挂载磁盘,安装云监控;

  3. 迁移(或还原)数据库到新的 RDS;

  4. 安装宝塔面板并配置;

  5. 安装 nginx 及 PHP;

  6. 创建网站、配置 SSL、伪静态、防盗链、可写目录禁执行等(.conf);

  7. 配置 hosts;

  8. 上传原网站程序到新的站点目录下;

  9. Discuz! X 升级文档升级 X3.2 至 X3.4;详情见下文 ↓;

  10. 配置 OSS、Redis、更新缓存等;

  11. 测试论坛基本功能是否正常;检查附件是否正常显示;全面检查控制台配置;

  12. 逐个开启插件并检查兼容性;

  13. 按二开备忘录逐个按需进行二开;

  14. 逐个修改调用论坛接口的项目及直接调用论坛数据库的项目;

  15. 调试 MAGAPP 接口;

  16. 尝试强制 https 访问;

  17. 将以上所有修改后的程序保留备份;发布升级公告并关闭论坛;重复以上步骤;修改域名解析;开启论坛;

  18. 配置 IP 封禁、定时器、日志、自动备份、配置其它 ECS 的 hosts 等;

  19. 查看搜索引擎中收录的地址,是否有无法访问的情况;

  20. 尝试将历史遗留的本地附件全部转移到 OSS;


Discuz! X 升级步骤及注意点:

  • 升级前务必先修改 ./config/ 目录下的数据库/缓存连接信息,以防出现新站连接老库的情况;

  • 官方文档进行升级;

  • 【问题】运行到 ./install/update.php?step=data&op=notification 时白屏。

    【排查】尝试切换到 PHP 5.6 后成功(但该版本过于陈旧不能使用);尝试升级 CPU 和内存 PHP 7.4 上升级仍不成功。

    【原因】DB::result_first() 方法不对 SQL 语句追加“limit 1”,而是 SELECT 所有记录后在 PHP 端取第一条数据;

    【解决】打开文件 update.php,查找 elseif($_GET['op'] == 'notification'),该节点的功能是在表 home_notification 中查找 category <= 0 的数据并修复它,如果数据库中所有 category 都大于 0,直接注释其内部 if 代码段继续升级即可(或改为 if(false && ...))。

  • 【问题】发布主题遇到错误:(1062) Duplicate entry '*' for key 'pid'

    【原因】forum_post 中的 pid 不是自动增长的,而是由表 forum_post_tableid 中自动增长的 pid 生成的。如果生成的 pid 值已在 forum_post 表中存在,则会出现此错误。

    【解决】迁移数据库时应关闭论坛,以防止 forum_post 表有新数据插入。

  • 【问题】打开帖子页面 ./thread-***-1-1.html 显示 404 Not Found,而 ./forum.php?mod=viewthread&tid=*** 可以正常打开

    【原因】未配置伪静态(可在宝塔面板中选择)

  • 【问题】打开 UCenter 时报错:UCenter info: MySQL Query Error SQL:SELECT value FROM [Table]vars WHERE name='noteexists'

    【解决】打开文件 ./uc_server/data/config.inc.php 配置数据库连接

  • 【问题】打开登录 UCenter 后一片空白

    【解决】将目录 ./uc_server/data/ 设为可写

  • 需要将原来安装的插件文件移回 ./source/plugin/ 目录,并设置可写;

  • 界面-表情管理,界面-编辑器设置-Discuz!代码


后续 Discuz! X3.4 R 小版本升级注意事项:

  1. 确认插件是否支持新版本(如短信通)

  2. 先创建一个新网站测试二开代码

  3. 保留 /config/、/data/、/uc_client/data/、/uc_server/data/、/source/plugin/,其它移入 old

  4. 上传文件

  5. 移回其它需要的文件,如:

  6. -- 勋章/loading/logo/nv 等:/static/image/common/

  7. -- 表情:/static/image/smiley/

  8. -- 水印:/static/image/common/watermark.*

  9. -- 风格:/template/default/style/t2/nv.png 等

  10. -- 默认头像:/uc_server/images/noavatar_***.gif

  11. -- 根目录 favicon.ico 等

  12. -- 及其它非 DZ 文件

  13. 再次检查可写目录的写入权限和禁止运行 PHP 效果。

xoyozo 3 年前
3,108