如何使用 docker 部署 onemanager部署方法如果你只是想找一个 OneManager-php 的 Docker 部署方法,直接看 https://github.com/zhullyb/OneManager-php-docker一直以来,我都是 OneManager-php 的忠实用户。这些年来,尽管有 alist 这种 UI 好看,多种网盘高度聚合的项目逐渐取代了 onemanager 的生态位,但 onemanager 支持文件分片上传、上传流量不经服务器的特点还是让我非常满意。前一阵子,glitch 暂停了针对项目自定义域名的支持,因此在我手贱地取消了项目原本绑定的域名后,迫切地需要寻找一个新的部署的平台,只不过 onemanager 项目现在列出的方案都不太让我满意,因此我就萌生出了在 vps 上自己部署的想法。Docker 镜像选用vps 上自己部署 php 项目,最简单的方法是使用 Docker,使用 Docker...
crontab 中简单的@语法糖说来惭愧,其实我用了这么久的 Linux,一直没有学会编写 crontab 脚本。一行的开头写上五位莫名其妙的数字或星号,后面跟上需要执行的命令,看上去很 kiss,但我确实记不住,以至于我现在每次写 crontab 都是让 ChatGPT 来帮我写。不过我最近查阅 Linux 下设置开机自启脚本的方案的时候,意外地看到 crontab 中居然可以用 @reboot command 的方式去写,这让我意识到 crontab 也是有一些简单的语法糖的。在查阅了 crontab 的 manual 后,我发现一共有下面这么几种 @ 写法的语法糖。这是在全网大部分的 crontab 中文教程中是没有的。语法糖执行条件等效表达式@reboot开机时候运行@yearly一年一次0 0 1 1 *@annually一年一次0 0 1 1 *@monthly一月一次0 0 1 * *@weekly一周一次...
备份 umami 数据库,并使用 TG Bot 保存 dump 文件前一阵子看到点墨的博客「定时备份mysql/mariadb数据库并上传至tgbot」,我意识到个人站点的数据库 dump 使用 TG Bot 存放是一个非常合适的做法。个人站点的数据库体积本身就不大,TG Bot 又有官方提供的 api,非常适合自动化任务。我就寻思着给我的 umami 数据库也写个定时任务备份一下,也不至于之前做一次迁移数据全部爆炸的悲剧重演。我的 umami 是「使用 vercel+supabase 免费部署 umami」部署出来的,数据库在 supabase 上,因此我们先打开 supabase 的 dashboard,获取到数据库的 url。密码我自然是不记得了,不过好在 Firefox 的密码管理器帮我记住了,直接去设置里就能找到。即使密码忘了也不要紧,往下翻有重置密码的按钮。随后就要开始编写我们的教本了,这是我的#!/bin/bash DATABASE_URL=...
在 JavaScript 中,箭头函数中的 this 指针到底指向哪里?这学期期末复习的时候,学校里负责上 JavaScript 的老师给我们提出了一个问题。下面这段代码中,a.u2() 在 ES Module 下执行会抛出 TypeError 的异常,在 CommonJS 下运行则会输出 undefined,而 B 这个类的 u2 函数则能够在对象实例化以后正常运行。const a = { x: 3, u1: function () { console.log(this.x) }, u2: () => { console.log(this.x) } } class b { x = 3 u1 = function () { console.log(this.x) } u2 = () => { console.log(this.x) } } a.u1() // 3 a.u2() // undefined new b().u1() // 3 new b().u2(...
结合 Vue.js 与 php 完成的 web 期末大作业,讲讲前后端分离站点开发与部署中可能遇到的 CORS 跨域问题在上一篇博客中,我讲到了 web 期末大作业的上云部署。整个项目是使用 Vue.js 作为前端,php 作为后端,mysql 作为数据库实现的。在使用 Vue.js 开发前端界面时,我选择了使用 vite 脚手架帮助开发,这意味着我的作品将使用前后端分离的架构实现。因此在开发部署过程中均遇到了跨域的问题,故写下这篇博客记录下解决方案。基于后端返回对应 http 响应头的解决方案开发阶段在我完成前后端的开发,并且经过 Apifox 的 mock 测试后,第一次在浏览器尝试前后端对接,遇到了 CORS Missing Allow Origin 的报错。vite 启动的 dev 开发服务器使用的域是 http://localhost:5173 ,而 php 后端我指定的是 http://127.0.0.1:8080 ,前后端并不运行在一个域下,前端使用 Axios(AJAX) 向后端发送请求获取...
vuejs、php、caddy 与 docker —— web 期末大作业上云部署这学期修了一门叫《用HTML5 和 PHP编写JavaScript,jQuery 和 AJAX脚本》的 web 课(对,听起来很奇怪的名字)。期末大作业是写一个影评系统,前端允许使用框架,后端仅允许使用 php,具体的作业要求如下(源码会在验收结束以后开源)大作业写了得要有三个礼拜,工作时长加起来得有 30 个小时,想着验收之前上线一段时间积累一些评论数据,验收的时候也会更加顺利一些,于是就开始尝试在服务器上部署。部署的过程还是比较复杂的,所以写下这篇博客记录一下。后端部分早前有《PicUploader使用系列(一)——在Archlinux上使用Caddy部署PicUploader》的经验,便觉得使用 Caddy + php-fpm 部署的方式多少有点麻烦了,这次便尝试了使用 Docker 部署、Caddy 反代的方式。Dockerfile 如下:FROM php:8-apache RUN...
【翻译】使用 PHP 构建简单的 REST API我这学期有一门偏向前端的 WEB 课程,期末大作业要求使用 PHP 作为后端语言实现一个简单的影评系统,应该是不允许使用框架,使用中文关键字在搜索引擎上搜了一阵子似乎没有可供参考的案例,后来就找到了这篇博客,当中的许多观点与我不谋而合,因此我将这篇博客翻译成中文,原文戳这里: https://amirkamizi.com/blog/php-simple-rest-api介绍上周 @rapid_api 发了一个非常好的关于使用 nodejs 和 express 创建 REST API 的教程帖子。我想要帮助你使用 PHP 开发同样简单的 REST API。首先,如果你不了解 REST API,请务必查看这个 Twitter 帖子。目标在我们开始之前,我想提一句,当我写这篇帖子的时候,我想确保:我使用单纯的 PHP,不使用框架我使用最简单的函数和结构体以便所有人都可以理解并跟上我将主体部分分开...
在 Hexo Fluid 主题中使用霞鹜文楷我的博客换到 fluid 主题已经有两年了,期间一直有为博客更换字体的想法,但之前没有前端开发的相关知识支撑我换字体的需求。不过现在,我已经有了一些 Vue.js 的开发经验,相信能支撑我完成这个目标。我在谷歌搜索到了这篇文章——《Hexo博客Fluid主题,字体全局更改为霞鹜文楷体》。文章中直接修改了 themes/fluid/layout/_partial/head.ejs 让文章生成时在 html 的 head 标签中引入 lxgw-wenkai-screen-webfont 的 css 文件,并使用自定义 css 方案。但这种方案我不喜欢,我的 fluid 主题是通过 npm 安装 hexo-theme-fluid 的方式引入的,这意味着我不能直接编辑 themes/fluid 下的文件,包括文章中需要编辑的 head.ejs 和 _config.yml 。我翻阅了 lxgw-we...
【翻译】GLWTPL——祝你好运开源许可证说实话,当我第一次看见 GLWTPL( Good Luck With That Public License ) 的时候,我差点把嘴里的饭给喷出来了,这是一个非常有意思的开源许可证。原文请直接戳原仓库 -> https://github.com/me-shaon/GLWTPL如果你对你的代码有这样的感觉:当我写下这段代码的时候,只有上帝和我知道我在写什么。 现在只有上帝知道了。 那不如来考虑一下将这份开源许可证添加到你的项目中!并且,祝你未来的自己、人类同胞、外星人或人工智能机器人(可以编码并会毁灭人类)——实际上是任何敢于参与你的项目的人好运。当然,它还有一个脏话版本。干杯!可能的使用场景你写了一些你并不为此自豪的代码,但你想要将它开源。你想要将你写的代码“放生”,但不想为此负任何责任。“无论如何我都已经写完了”,并且你没有时间/意图对你的代码进行修复、修改或改进。想要将自己参加的黑客马...
通过巴法云将向日葵智能插座接入米家,实现小爱同学远程控制在上一篇博客中,我们介绍了如何在本地局域网中通过发送 http 请求控制向日葵智能插座 C2 的开关状态。但这还远远不够,我自己是小米生态链的忠实用户,在宿舍里也接入了四五个米家的智能设备,因此我想把这个智能插座接入米家,实现离家时一键关闭。在阅读小米IoT开发者平台的接入文档后,我发现米家对于个人开发者并不友好,接入文档大部分要完成企业认证以后才能实现。在谷歌一番搜索过后,我发现了通过假设 Home Assistant 后通过巴法云接入米家的方案。但我眼下就这一个非米家的智能家具,暂时还不想去碰 Home Assistant 那套体系。因此我便找上了巴法云。在巴法云的官网中提到,他们是「专注物联网设备接入&一站式解决方案」,对于个人开发者,目前平台免费使用。网站的文档虽然并不优雅美观,却透露出实用主义的气息,针对接入提供了 TCP 长连接和 MQTT 两种方案,看着就很适合实现我的需求。...
1…567…14