月度归档: 2023 年 5 月

  • 千呼万唤始出来

    距离第一次朋友圈上线已经快过去五个月啦

    还记的第一个测试版的界面是啥样的吗:朋友圈 – 云烟成雨 (shiyu.dev)

    今天正式版终于来啦,这次我们完善了订阅功能,优化了系统性能,全面提升了Moments的稳定性,采用了类似微信朋友圈的界面,使用起来更亲进~

    演示地址:https://moments.shiyu.dev

    这次完善了朋友圈的功能:

    • RSS 和 ATOM 订阅
    • 友链API,订阅文章API
    • 查看朋友最近动态
    • 完善的后台机制
    • 日志功能
    • 友链可见性
    • 自助申请友链
    • 自动验证友链状态
    • 定时器后台间隔更新订阅

    如果您想体验可以在 https://github.com/Drizzle365/Moments 阅读安装说明

    如果您之前体验过,请清理之前的镜像文件和挂在的目录,正式版的数据结构和之前测试版有所不同,请保证数据不冲突

    推荐使用Docker一键部署,部署教程:Moments 教程之Docker部署 – 云烟成雨 (shiyu.dev)

    如果您对项目感兴趣希望可以给个Start,或者提出相关Issue。

    我们欢迎任何合理的PR和Issue

  • 梦境其一

    在高中的校园里,我和你一起度过了一段时间,但有一天,由于某种原因,你不得不提前离开回到大学。而我仍然留在高中附近,找到了一个偏僻的小屋子作为临时住所。当我再次回到小屋时,发现门锁坏了,只需要用一张磁卡钥匙就能轻松打开。尽管感到有些奇怪,但我还是进入了屋内,并将东西整理得井然有序。

    晚饭时间到了,我前往食堂,点了一份简单的晚餐。当我回到小屋时,天色渐渐变黑,我躺在床上休息片刻。突然间,一个陌生人出现在小屋门口。从他手里的钥匙颜色和我的磁卡钥匙一致来看,他似乎也是这个小屋的主人。我决定打包行李准备离开,因为我有一种不祥的预感。

    当我准备好离开时,外面又来了三四个人,他们似乎也是为了在这里暂住。小屋的主人并没有要求我离开,而是让我先在这里住一段时间。尽管如此,我内心仍然感到不安,于是提醒他们小心可能存在的危险,并决定离开这个地方,寻找更安全的住所。

    正当我打算离开时,我低头一看,床底下竟躺着一个穿着白衣的死人,他的眼睛睁得大大的,似乎在注视着我。这个恐怖的景象让我毫不犹豫地离开了小屋,并将所看到的情况告诉了那些人。然而,他们似乎对此毫不在意,似乎已经习以为常。

    到了晚上,不知为何,我又一次回到了那个小屋。这时,我发现其中一位住客似乎被某个恶势力附身,手持匕首企图袭击小屋的主人和其他人。我立即采取行动,毫不犹豫地踢向那人的脸部,将他从恶势力的掌控中解救出来。然而,他在混乱中开始乱刺其他人,我和其他人不得不与他展开激烈的搏斗。

    最后,我们几个人与那个被附身者斗智斗勇,争分夺秒。具体情节你无法详尽描述,但我们终于成功制服了他。而后,我们开始探究背后的真相。逐渐地,我们发现这个小屋其实是一个案件的关键,而我们被卷入了一个错综复杂的阴谋中。

    随着故事的发展,我和其他住客共同揭开了案情的真相,还原了这个小屋的过去。这个案子牵涉到背叛、秘密实验和人性的扭曲。我们的勇气和智慧最终揭开了黑幕,并将罪犯绳之以法,为受害者伸张了正义。

    在这个过程中,我与其他人建立起了深厚的情谊,并共同度过了艰难的时刻。故事以我们团结合作、战胜困难的精神为结尾,彰显出友谊和勇气的力量,让我们的经历成为了一段永久铭记的冒险。

  • 淄博的五二零

    好久之前就想去淄博了,终于在五月二十日来啦

    烧烤好好吃,价格也很实惠,我俩一共花了110还没吃完!

  • 全自动安装 typecho

    今天突然想做一个自助建站系统,就是可以让用户简单填写一个表单输入站点信息,然后自动创建一个网站,搞了半天踩了很多坑终于实现了一个小demo

    这次是用的typecho做实验,使用bash脚本编写,当然搞了半天主要不是脚本的问题,而是环境的问题,先来看看脚本,是比较简单的。

    #!/bin/bash
    
    # 设置变量
    domain="test.oi.ink"  # 替换为你的域名
    nginx_conf="/etc/nginx/sites-available/${domain}"  # Nginx 配置文件路径
    nginx_link="/etc/nginx/sites-enabled/${domain}"  # Nginx 软链接路径
    webroot="/var/www/${domain}"  # 网站根目录
    typecho_file="typecho.zip"  # Typecho 压缩包文件名
    
    
    # 创建网站目录
    echo "正在创建网站目录..."
    sudo mkdir -p "${webroot}"
    
    # 解压 Typecho 到网站目录
    echo "正在解压 Typecho..."
    sudo unzip -d "${webroot}" "${typecho_file}"
    # 修改文件权限
    echo "正在设置文件权限..."
    sudo chown -R www-data:www-data "${webroot}"
    sudo chmod -R 755 "${webroot}"
    
    # 创建 Nginx 配置文件
    echo "正在创建 Nginx 配置文件..."
    sudo bash -c "cat > ${nginx_conf}" <<EOL
    server {
        listen 80;
        server_name ${domain};
        root ${webroot};
        index index.php index.html index.htm;
    
        location / {
            try_files \$uri \$uri/ /index.php\$is_args\$args;
        }
    
        location ~ \.php$ {
            include snippets/fastcgi-php.conf;
            fastcgi_pass unix:/run/php/php8.1-fpm.sock;  # 根据你的 PHP 版本进行调整
        }
    }
    EOL
    
    # 创建 Nginx 软链接
    echo "正在创建 Nginx 软链接..."
    sudo ln -s "${nginx_conf}" "${nginx_link}"
    
    # 重启 Nginx
    echo "正在重启 Nginx..."
    sudo service nginx restart
    
    # 创建数据库
    dbname="test"
    dbuser="test"
    dbpass="asdasdasdg"
    mysql -u root -p -e "CREATE DATABASE $dbname"
    
    # 创建用户并授权
    mysql -u root -p -e "CREATE USER '$dbuser'@'localhost' IDENTIFIED BY '$dbpass'"
    mysql -u root -p -e "GRANT ALL PRIVILEGES ON $dbname.* TO '$dbuser'@'localhost'"
    
    echo "数据库 '$dbname' 已成功创建,并授权用户 '$dbuser' 可访问。"
    
    echo "完成!Typecho 站点已成功创建。"
    
    echo "数据库信息:"
    echo "数据库名:$dbname"
    echo "数据库用户:$dbuser"
    echo "数据库密码:$dbpass"

    然后我是在本地的WSL子系统中测试的,在配置环境时出现了很多坑

    首先是数据库,安装了N次MySql都不可以,每次都会有ERROR 2002 (HY000): Can‘t connect to local MySQL server through socket ‘/tmp/mysql.sock‘ (2)的错误提示,在网上找了很多资料和解决方案全试了还是有问题,应该是WSL的锅,最后换了Mariadb,一次完美装上,丝滑。

    然后是PHP的坑,最后莫名其妙的好了,配置Nginx的站点的时候整合PHP,每次网站都无法访问,最后怎么好了的我也没搞明白,配置文件总感觉没有问题~~~

    然后!下面就是脚本执行成功后正常打开啦网站,这里对typecho的安装文件进行一些修改,打开数据库配置那步的页面时会自动获取本次创建的数据库来继续安装。

  • Moments 教程之Docker部署

    Docker部署是我们最推荐的部署方式,Moments最新版本都会第一时间在dockerhub中发布,当您的机器安装Docker后一句话既可部署本项目。

    本篇教程包含:Docker安装Moment部署反向代理域名绑定

    您可以根据需要跳过期中的某些步骤!点击可快速跳转

    Docker安装

    如果您使用了宝塔面板可直接在导航中选择 docker 页面根据提示自动安装即可

    关于其他系统的安装方式(官方文档):

    1.Centos:Install Docker Engine on CentOS | Docker Documentation

    2.Debian:Install Docker Engine on Debian | Docker Documentation

    3.Ubuntu:Install Docker Engine on Ubuntu | Docker Documentation

    Moment部署

    当您的设备中已经安装并且启动Docker后,在终端执行以下内容:

    docker run -d \
    --name moments \
    -p 3000:80 \
    -v moments:/app \
    drizzle2001/moments

    -p 3000是指本机端口,可以修改为其他任意不冲突的端口号

    运行成功后,服务器开放3000端口即可访问 http://ip:3000

    关于时区,可以在容器内执行,切换时区为东八区,重启容器即可。

    ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

    反向代理

    为您的朋友圈绑定一个域名,推荐使用 nginx

    如果您是宝塔用户可以直接创建一个静态网站绑定域名,然后设置反向代理

    其他反向代理,Nginx配置参考:Nginx配置反向代理,一篇搞定! – 知乎 (zhihu.com)

    其他问题欢迎留言,可以提供免费代搭建支持