分类: IT小常识

  • 用Caddy部署vue3和laravel

    二级目录部署vue3的Caddyfile

    https://domain.com {
        redir /portal /portal/ 308
        handle /portal/* {
            uri strip_prefix /portal
            root * /www/domain.com/portal   #打包后的静态文件
            try_files {path} /index.html
            file_server
            encode    zstd   gzip  #开启zip
        }
    }

    在根目录部署laravel的Caddyfile

    https://api.domain.com {
        root /www/api.domain.com/my-laravel/public
        encode gzip
        # PHP-FPM Configuration for Caddy use docker php80
        php_fastcgi php80:9000 
        file_server
    }
    

    如果laravel的接口需要开启跨域访问,则可以参考以下的Caddyfile,此外laravel也要根据版本,选择相应的开启cors的方法,此处不展开。

    (cors) {
            @cors_preflight{args.0} method OPTIONS
            @cors{args.0} header Origin {args.0}
    
            handle @cors_preflight{args.0} {
                    header {
                            Access-Control-Allow-Origin "{args.0}"
                            Access-Control-Allow-Methods "GET, POST, PUT, PATCH, DELETE, OPTIONS"
                            Access-Control-Allow-Headers *
                            Vary Origin
                            Access-Control-Max-Age "3600"
                            defer
                    }
                    respond "" 204
            }
    
            handle @cors{args.0} {
                    header {
                            Access-Control-Allow-Origin "{args.0}"
                            Access-Control-Expose-Headers *
                            defer
                    }
            }
    }
    
    https://api.domain.com {
        import cors {header.origin}  # 允许任意来源的跨域访问
        root /www/api.domain.com/my-laravel/public
        encode gzip
        # PHP-FPM Configuration for Caddy use docker php80
        php_fastcgi php80:9000 
        file_server
    }
  • 最彻底的关闭Windows10 的更新!

    写在最前面,前阵子收了一台笔记本电脑,sony的,固态盘还是触摸屏,小惊喜了一把,结果这个电脑的系统是win,每天自动更新,但是更新失败回退。搜了一些方法,但都不解决问题,终于找到下面这篇最全的。

    文章附图

    前言:

    Windows10的自动更新给工作带来很多不便,想关闭更新很难,我们经过多次尝试,基本找全了与更新有关的条目。

          1、与更新有关的Windows服务,大致就这三个服务。

          Windows update

          Update Orchestrator UsoSvc(更新Orchestrator 服务)

          Windows update medic service(更新医生服务)

          2、组策略

           计算机配置 – 管理模板 -Windows组件 -Windows更新

          3、计划任务

           Microsoft -Windows -WindowsUpdate

    以下内容(一、二、三)

    一、禁用三大服务(三种方法)

      1、手工操作停止禁用服务。

          进入服务的方式很多,从此电脑右键属性-管理-可以找到。也可以从控制面板进入。

          可以运行services.msc直接进入。

          (1)、先停止Windows Update,后禁用。如图

    Windows update.png

    找到【恢复】页,改为无操作

    Windows update1.png

    (2)、关闭 禁止 Update Orchestrator UsoSvc服务   更新适配Orchestrator服务

    ORCHESTRATOR.png
    ORCHESTRATOR1.png

    (3)、停止 禁用 Windows update medic service 更新医生服务

    medic.png
    medic1.png

    这个服务有时会拒绝访问或改不了。你就要参考下面注册表修改了。

    2、注册表修改。(如果上面的修改的很顺利,就不必要再做这项的内容,手工修改和注册表修改是异曲同工,互相验证的关系)

       打开注册表,开始 运行   regedit

        (1)、禁用 Windows update(第一个图是禁用更新,第二个图修改恢复里面的“无操作”)

           HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\wuauserv

    Windows update2.png
    Windows update3.png

    (2)、关闭 禁止 Update Orchestrator UsoSvc服务   更新适配Orchestrator服务

                HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\UsoSvc

                这项的改的地方同(1)。只是注册表位置不一样。【UsoSvc】

    (3)、停止 禁用 Windows update medic service 更新医生服务

                HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WaaSMedicSvc

                这项的改的地方同(1)。只是注册表位置不一样。【WaaSMedicSvc】

        3、运行命令修改。(这个要求稍微专业点的知识,高手可采用。但要先检查三个FailureActions的值你有没有特殊设置再用。)

    net stop wuauserv

    net stop UsoSvc

    net stop WaaSMedicSvc

    reg add “HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\wuauserv” /v “Start” /t REG_DWORD /d 4 /f

    rem ********   停止 禁用 Windows update

    reg add “HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\wuauserv” /v “FailureActions” /t REG_BINARY /d 80510100000000000000000003000000140000000000000060ea000000000000000000000000000000000000 /f

    rem ********“改服务里面恢复,00-无操作,01-重新启动服务   03-运行一个程序   02 -重新启动计算机   14后面00 00 00 XX”

    reg add “HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\UsoSvc” /v “Start” /t REG_DWORD /d 4 /f

    rem *******停止 禁用 Update Orchestrator UsoSvc服务   更新适配Orchestrator服务

    reg add “HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\UsoSvc” /v “FailureActions” /t REG_BINARY /d 805101000000000000000000030000001400000000000000c0d4010000000000e09304000000000000000000 /f

    rem *******“改服务里面恢复,00-无操作,01-重新启动服务   03-运行一个程序   02 -重新启动计算机   14后面00 00 00 XX”

    reg add “HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WaaSMedicSvc” /v “Start” /t REG_DWORD /d 4 /f

    rem *******停止 禁用 Windows update medic service 更新医生服务

    reg add “HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WaaSMedicSvc” /v “FailureActions” /t REG_BINARY /d

    840300000000000000000000030000001400000000000000c0d4010000000000e09304000000000000000000 /f

    rem ******“改服务里面恢复,00-无操作,01-重新启动服务   03-运行一个程序   02 -重新启动计算机   14后面00 00 00 XX”

    复制做成BAT文件,以管理员身份运行。

    二、配置组策略:gpedit.msc

    Windows10家庭版没有gpedit.msc,需要配置一下。首先要新建一个txt文件,打开,在里面输入以下内容并保存:

    @echo off

    pushd “%~dp0”

    dir /b C:\Windows\servicing\Packages\Microsoft-Windows-GroupPolicy-ClientExtensions-Package~3*.mum >List.txt

    dir /b C:\Windows\servicing\Packages\Microsoft-Windows-GroupPolicy-ClientTools-Package~3*.mum >>List.txt

    for /f %%i in (‘findstr /i . List.txt 2^>nul’) do dism /online /norestart /add-package:”C:\Windows\servicing\Packages\%%i”

    pause

    将文件后缀改bat,随后右键点击以管理员身份运行,等待加载完成,就可以启用组策略了。

    gpedit0.png

    成功打开组策略编辑器后,在组策略编辑器中,按顺序点开:计算机配置 – 管理模板 -Windows组件 -Windows更新 ,在右侧配置自动更新设置中,将其设置为已禁用并点击下方的确定保存即可

    gpedit1.png
    gpedit2.png
    gpedit3.png
    gpedit4.png
    gpedit5.png
    gpedit6.png

    三、计划任务关闭windows更新:taskschd.msc

    tasks0.png

    在打开的计划任务的界面中,按顺序点击 任务计划程序库 – Microsoft -Windows -WindowsUpdate,把里面的项目都设置为禁用,能删除也可以删除。

    tasks.png

    注【高手可操作】:计划任务删除命令是:schtasks /delete /tn “任务名称”   

    终于写完了,测试通过。作者:众嘉软件

  • 老毛桃PE工具可以用,别用它装系统

    很久没有重装系统了,手上有一个Dell的笔记本,系统恢复分区占了好几个,还不挨着,win11装docker还跑不起来,索性重装,用老毛桃PE进去格了盘,然后加载win11重装,结果装完发现系统被注入很多程序和广告,试着装了一下wsl也有问题。还得用原装win11镜像安装。切记。

  • pnpm敲起来麻烦,简写为p吧

    打开.zshrc,如果用bash,则是.bashrc

    alias p="pnpm"

  • 三星watch5开通esim(2024)

    上次怎么开通有点记不准了,应该是通过手机上的联通app中的esim卡专区,下载数据即可,而且能点这里跳转到三星智能穿戴app,无缝衔接,结果今天操作不行了。

    因为手表绑定换了手机号,需要先退订原来的业务,这个直接在联通app上操作即可。

    可是开通就麻烦了,因为要开一号双终端,需要:

    (1)抄一大堆反电信诈骗的承诺

    (2)本人到场刷脸验证

    (3)向柜台提供手表的EID和IMEI

    当然,每个月要交10块钱是必须的。

    办理完以后,柜台给了一个ESIM卡的二维码。

    回来以后,点开联通app想下载数据,显示三星智能穿戴已安装但显示为“未安装”,其中温馨提示说是因为三星esim卡管理器没有安装,我搜了半天,说这个app只有三星手机才有,有人在网上寻求安装包,我没找到。但上次激活过,这次不应该不行。

    于是,我直接打开三星智能穿戴,点击手表设置,移动套餐,选择我的手机号之后,貌似自动加载了一个当前手机的套餐,也同步到了手表上,可惜,这个不对,手表无法连到联通网络。继续寻找。

    在三星智能穿戴app的移动套餐界面右上角三个点中,点击添加套餐,选择扫码,就是联通柜台给的那个二维码,扫完就有传输到手表的过程,等完成,手表就激活esim了。

  • docker安装dolphinscheduler添加数据源连接失败

    2024-09-27 11:14:16 [ERROR] 2024-09-27 11:14:16.055 +0800 o.a.d.p.d.a.d.AbstractDataSourceProcessor:[130] - Check datasource connectivity for: MYSQL error
    2024-09-27 11:14:16 java.lang.ClassNotFoundException: com.mysql.cj.jdbc.Driver

    看下docker-dolphinscheduler-api-1容器的日志中发现以上失败,通过检索发现,可以把驱动包放在lib/plugin/task/sql目录下,但是,这个目录在哪里却是个问题,后来查看源代码(https://github.com/apache/dolphinscheduler/blob/3.1.0/dolphinscheduler-api/src/main/docker/Dockerfile),确定ENV DOLPHINSCHEDULER_HOME /opt/dolphinscheduler,那么进入容器的/opt/dolphinscheduler这个目录确实能看到libs子目录,其中已经有一些连接器了,只不过那些就是官方所说的符合开源协议的已经内置的,像mysql的就不符合apache的开源协议,所以只能自己往里放,可是为什么官方文档里没有提到呢?

    我是搜到了https://www.bookstack.cn/read/dolphinscheduler-3.1.0-zh/7667e5f48166e75f.md,这个来自官方的早期镜像版:

    我们以 MySQL 为例,如果你想要使用 MySQL 数据源,你需要先在 mysql maven 仓库 中下载对应版本的 JDBC 驱动,将其移入 api-server/libs 以及 worker-server/libs 文件夹中,最后重启 api-server 和 worker-server 服务,即可使用 MySQL 数据源。如果你使用容器启动 DolphinScheduler,同样也是将 JDBC 驱动挂载放到以上两个服务的对应路径下后,重启驱动即可。

    查看对应版本的官方文档却找不到对应的章节。

    目前,以3.2.2版本来说,需要放连接器的容器包括:

    docker-dolphinscheduler-api-1

    docker-dolphinscheduler-worker-1

    docker-dolphinscheduler-alert-1

    以docker desktop操作说明,找到这两个容器,点击容器名进入容器,切换到Files,/opt/dolphinscheduler/libs,右键import,选择mysql-connector-j-8.2.0.jar,然后重启以上三个容器就可以了。

  • 坚果R2连接三星watch5手表方法(2024)

    之前费了很大劲绑定的,看了很多教程,以至于最后怎么连接的都搞不清楚了。因为手机摔坏了,换了一个手机,当然,还是坚果R2。

    习惯性的先装上谷歌框架,按照原来收藏的信息,怎么都连不上。看到了https://help.wearosbox.com/faq/device/samsung.html收到启发,删掉谷歌框架,只安装了:

    (1)wear os中国版(在中国的应用市场上安装就是中国版)

    (2)三星智能穿戴

    (3)三星健康

    接下来是连接步骤:

    (1)装好了之后,直接打开“三星智能穿戴”连接手表,如果提示手表需要重置,则在手表的设置中选择重置,手表重启(这个时间可能要几分钟)后,手机上的“正在扫描要添加的设备”就能看到手表型号,点击以后开始蓝牙配对,手机和手表都点击确认即可。

    (2)接下来一系列确认。

    (3)有一个自动备份手表的步骤,看似不能跳过,先点下一步,然后拒绝就行了,当然,如果用三星的换机助手备份一下也没有问题。

    (4)然后接下来又是一系列确认,然后开始配置,估计有几分钟的时间。

    (5)这样就好了。

    估计是三星的app升级了,重新对接了wear os中国版,消除了bug,以至于以前的折腾终于可以免去,但如果按照了谷歌框架反而会造成上面链接提到的判断“该手机无法支持”等。

    (6)最后,不要删除wear os,删除了三星智能穿戴的连接也就断了。如果你以为它已经没用,把它删掉了,那就去三星智能穿戴解绑,重新连接。

    另外提一句,如果直接打开wear os,不点击三星的连接,而选择第二个wear os连接手表,虽然手表设置环节不能完成,但是这时候三星健康是可以连接上手表的,手表因为停在设置状态不可用,则可以通过重启后长按logo进入“独立使用模式”,但这个时候三星健康依然能同步,相当于跳过了三星智能穿戴,只是这个链接不稳定,而且不能通过手机app设置手表,所以还是按标准三步流程连接吧。

    最后的最后,解决一下将手表步数同步到微信运动。

    (1)安装谷歌框架,以在google play中去安装“健康平台”这个app,或者直接找到app安装包。参考https://www.bilibili.com/read/cv25382423/?jump_opus=1,这个app是装在手表上的,手机上看不到。

    (2)然后打开这个链接https://ecommerce.samsungassistant.cn/index.html#/jd/activity/748/0

    (3)“点击开启插件”,只有这样能找到这个插件,接下来是授权。这个虽然叫插件,但在手机的应用程序权限管理中可以看到,可以把自启动和第三方启动打开。

    (4)授权时有可能失败,可以重新打开“三星健康”的设置“三星健康设置”中的应用程序,这时应该可以看到这个插件了,点击能确认权限。

    需要说明的是,以上方法并没有让我能够确认微信运动能够获得同步的步数,用最新版的三星健康app的时候甚至有报错通知,我把版本降到了Samsung Health_6.23.0.047_APKPure.apk,不报错了,但依然无法同步,我问过三星客服,想给她要最新的插件,她说不能提供。最终在手机重启也或者是等待了一段时间之后,微信可以同步步数了。

    另外一个就是三星健康监测功能,这个最主要的是提供心电图,心率在三星健康中就有,不需要单独装这个,心电图在中国版默认是用不了的。简单来说,就是先在手机上安装某个伴侣软件,具体操作可以看https://www.lxtend.com/miscs/SHM_MOD_Installation_and_Setup_Guide,也可以参考https://help.wearosbox.com/faq/device/samsung.html#%E4%B8%89%E6%98%9F%E5%81%A5%E5%BA%B7%E7%9B%91%E6%B5%8B 来操作,不过按照app中的说明一步一步走问题也不大,只是大部分人第一次搞不一定熟悉它的逻辑。

  • 如何在nginx中将laravel配置到二级目录

        # 此处配置二级目录站点
        location /sso {
            rewrite /sso/(.*)$ /sso/index.php?=$1 last; break;
            location ~ \.php$ {   
            fastcgi_split_path_info ^(.+\.php)(/.+)$;
                fastcgi_pass php80:9000;
                include fastcgi_params;
                fastcgi_param SCRIPT_FILENAME /www/one/one-api-sso-ywcbs/public/index.php; 
            }
        }

    参考:如何使用一个域名配置多个Laravel项目?

    以前一直没有找到一个可用的配置,导致laravel一直挂在根目录,其他前端项目反而都要用二级目录,终于找到一个配置可用了。可怜我对nginx的了解还是不够多。

    以上配置中,php80:9000是来自docker的php80,如果用的其他的php部署方式,请按指定方式配置该项即可。

  • qbittorrent使用小结

    本来用qbittorrent下载东西已经是二十年前的记忆了,这么多年也不刷美剧,基本上就告别了bt,最近因为某项目需要采集数据,重新接触qbittorrent,但是真拿它来干活的时候,发现伺候起来并不简单。

    这一个任务一共一万多个种子,尽管家里已经升级了2000M光纤宽带,但无论是网速还是连接数恐怕也远远达不到肆意下载的程度,于是确认了一下光猫里的默认连接数为4000,调整成了20000,不知道真的上到这个数字会不会崩,后来又改回了4000。

    qbittorrent里面的每个种子的连接数设置成了50,似乎太大了也没用,因为实际上没有那么多源,平均每个任务也就是四五个连接。全局最大连接数曾一度设置为1000或者2000,但通过网络监测结果来看,这么多任务同时下载很多资源花在了任务调度上,带宽利用并不好,于是将总连接数限制到了500或者200,。

    后来,系统崩了,不知道为什么崩的,但任务恢复之后就发现很多下载任务变成了检查恢复,这个特别消耗资源,一则要从存储上把资源都读出来,我用的千兆网连接,速度本身就受限,再加上可能是多个任务同时检查,内存就废了。后来我启用qb以后,把绝大部分任务都暂停,然后逐个继续,才慢慢解决崩溃的问题。

    总结下来有几个原则可以遵循:

    (1)批量添加种子之前,打开设置,在“下载”中修改“默认保存路径”,否则默认到C盘就惨了,我第一晚下载就把C盘搞爆了,批量添加种子时选择的保存位置只对第一个有效,后面的不行。

    (2)继续设置“连接”,每torrent最大连接数可以设置为50,实际上有5到10个就够用了,按平均每个5个计算,同时下载10个torrent,全局最大连接数设置成50也行,可以稍微放大一点到100或者200,再大了意义不大。

    (3)如果涉及到大量任务恢复的情况,可以在重载界面后,首先把全局最大连接数设置成20,同时把所有任务暂停,然后手动分批恢复继续。

  • 锤子科技绝代产品坚果R2手机电源键失灵解救办法

    中午微信语音的时候,手机突然黑屏,然后就没法点亮了,后来尝试:

    (1)办法一:音量加+电源键强制重启,重启之后可以点亮屏幕,再划动屏幕进入。

    然后上网搜了办法,比如清理垃圾文件以及清理内存,我没有找到清理内存在哪里搞,因为是微信语音的时候出的问题,我尝试了删除微信,但并不解决问题。总是强制重启进入系统也不是办法(似乎单独按音量加十几秒也能强制重启,所以貌似就只是电源键坏了),于是想到第二个办法。

    (2)插上充电线,给手机充电的时候,屏幕也会亮,这个时候划屏幕也能进入。

    但这依然也不是个好办法,总不能随时握着充电宝啊。继续尝试,终于找到第三个办法。

    (3)左侧的快捷键设置了双击打开卡包,这个时候也能点亮屏幕。

    但是,这个也不能解决问题,于是想到第四个办法。

    (4)淘宝上找了下维修店,报价说如果主板不坏,修一下180,如果主板坏了,修好300封顶,我没舍得,再者也还需要备份数据以及找备用机。

    那么还有没有别的办法呢?如果微信删掉还不行,那就有一个办法就是重置系统,如果是微信或者别的app造成键位定义冲突,那么这个冲突除了重置还有什么办法清除呢?于是,找到第五个办法。

    (5)在设置中的“任意开关和快捷键”这里,把各个快件键的设置来回改了几下,估计是改到双击电源键打开相机的时候,问题解决了。电源键不再失灵,恢复正常了。

    希望你很快就看到了最后一条并解决了问题。