Categories
php

php简介

    php原始为Personal Home Page的缩写,已经正式更名为 “PHP: Hypertext Preprocessor”。

    php依赖php运行容器即php进程,通过该进程对php文件进行输入处理,在 标准输出流 返回输出结果。特点运行简单,无需编译。在web容器下,每个请求都会产生一个php进程,所以只需把php文件更改后,立即访问该php文件,即可看见最新的更改(每发送一个请求,产生了新的进程重新读取文件)。调试十分方便。

运行php环境有多种方法

    1:通过php命令

    php -f “xxx.php” 通过指定需要加载php文件,开启php进程,在控制台标准输出流看到该文件的输出。

    php -s localhost:8080 (-t “项目文件夹”) 通过-t 指定php文件的文件夹,默认为当前进程执行文件夹目录。浏览器访问localhost:8080通过文件系统路径访问对应的文件(默认为index.php),即可在浏览器看到对应文件的输出。这个就是把php进程的输出流打在web容器的请求输出上,所以能在浏览器看到输出

    2:通过web容器访问。其实就是通过web容器执行请求输入到socket中(文件socket或端口socket都可)。服务器开启php-fpm服务,监听对应的socket作为进程输入,将php-fpm的标准输出流打在socket上供web容器读取。web容器再把socket的读取的内容作为请求响应返回给用户。(这就是标准的cgi做法,以进程标准输入流接受请求,标准输出流产生响应,一个请求就是一个进程)。

    nginx配置:

location ~ .php$ {
fastcgi_pass unix:/run/php/php7.2-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}

    apache配置:

LoadModule php7_module “${INSTALL_DIR}/bin/php/php7.1.9/php7apache2_4.dll”

<IfModule php7_module>
    DirectoryIndex index.php index.php3 
AddType application/x-httpd-php .php
    AddType application/x-httpd-php .php3
</IfModule>
Categories
java

jenkins 本地安装与调试

docker-compose

version: '3'
services:
  jenkins:
    image: jenkins/jenkins
    container_name: jenkins
    restart: unless-stopped  #指定容器退出后的重启策略为始终重启,但是不考虑在Docker守护进程启动时就已经停止了的容器
    volumes:
      - "/usr/bin/docker:/usr/bin/docker"
      - "/var/run/docker.sock:/var/run/docker.sock"
      - "/usr/lib64/libltdl.so.7:/usr/lib/x86_64-linux-gnu/libltdl.so.7"
      - "./jenkins/jenkins_home:/var/jenkins_home"
      - "./jenkins/jenkins_config:/var/jenkins_config"
    environment:
      http_proxy: 'http://192.168.0.12:33333'
      https_proxy: 'http://192.168.0.12:33333'
      TZ: Asia/Shanghai
      LANG: en_US.UTF-8
      JAVA_OPTS: '-Xmx2048M -Xms2048M -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -XX:MaxNewSize=128m -Djava.util.logging.config.file=/var/jenkins_home/log.properties -Duser.timezone=Asia/Shanghai'
    user: root
    ports:
      - "10000:8080"
      

由于默认插件地址是国外的 没有插件jenkins可就没啥用了

所以安装完成后在插件市场 plugin manager设置 插件更新地址

https://eastamerica.cloudflare.jenkins.io/current/update-center.json

Categories
mysql

异步进程 快速导入mysql

screen -S import_mysql4;

开启多一个screen 来执行异步进程

mysql -uroot -p

连接mysql

source xxx.sql;

执行导入 本地文件mysql文件

ctrl+A D

退出 当前screen

之后可以退出ssh 不影响该import 进程

screen -ls

列出有什么screen进程

screen -r XXX;

恢复某个screen进程

Categories
Uncategorized

Bambu Connect (beta)

简介:一款能连接和发送打印到 Bambu Lab 3D 打印机的精简工具

bambu-connect://import-file?path=%2Ftmp%2Fcube.gcode.3mf&name=Cube&version=1.0.0

浏览器打开这个链接会启用bambooconnect 执行模型导入

具体教程:

https://wiki.bambulab.com/zh/software/bambu-connect

Categories
Uncategorized

拓竹 3D 打印 与 bambustudio 的通讯

bambustudio://open?file=https%3A%2F%2Fmakerworld.bblmw.cn%2Fmakerworld%2Fmodel%2FCN5139cd3ed4128%2F27338432%2Finstance%2Fcc8b73a0-2635-4556-ae20-9b52f9f350d7.3mf%3Fat%3D1746121131%26exp%3D1746121431%26key%3Db7425e4b9ef6f417d7334deb194efee6%26uid%3D683076520%26name%3Dmini%E5%

打开这个链接会启用 bambustudio 导入项目

Categories
php

php 第三方包信息

https://packagist.org/

这个网站有所有 composer包的信息

Categories
Uncategorized

finclip

https://www.finclip.com/

新一代 小程序基座 可以自定义小程序 提供小程序上架等功能

比单纯跨平台 走得更远一点

Categories
go

ruoyi-go

在ruoyi-go 基础上 构造ruoyi-go 前后端分离版本

Categories
java

jwt token 和 sa-token

JWTSa-Token在功能、使用场景和优缺点等方面存在显著差异。

功能和适用场景

  • JWT‌:JWT是一种无状态令牌协议标准(RFC 7519),主要用于在网络间安全传递声明(Claims)。其核心特点包括无状态性、自包含结构(Header.Payload.Signature三段式编码)和跨域支持,特别适合分布式系统和跨服务认证‌1。JWT通常用于身份验证和信息交换,特别是在无状态的客户端-服务器通信中。由于其简洁和标准化的特点,JWT可以与各种语言和技术栈配合使用,提高系统的灵活性和可扩展性‌2。
  • Sa-Token‌:这是一款轻量级权限认证框架,专注于解决系统的登录认证、权限管理、会话管理等安全问题。其核心特点包括有状态会话管理(基于服务端存储会话,如Redis)、开箱即用的API(提供注解式鉴权、踢人下线、单点登录等功能)和多存储适配(支持Redis、Memcached、数据库等会话存储方式)‌12。Sa-Token提供了丰富的权限相关注解,支持多种条件组合,如AND、OR逻辑关系,以及复杂的表达式,适合需要快速开发和易于维护的项目‌2。

优缺点对比

  • JWT‌:
    • 优点‌:无状态性减少了服务器的存储压力,提高了系统的可扩展性和跨域支持;自包含结构使得令牌本身包含所有必要信息,无需服务端存储;简洁和标准化使其与各种语言和技术栈兼容‌12。
    • 缺点‌:需要自行实现令牌黑名单机制以实现踢人功能;由于信息自包含,令牌体积较大,可能会影响传输效率‌13。
  • Sa-Token‌:
    • 优点‌:提供丰富的权限相关注解和功能,支持多种存储方式,适合快速开发和易于维护的项目;开箱即用的体验简化了权限认证的集成和使用过程‌12。
    • 缺点‌:有状态会话管理增加了服务器的存储压力;虽然功能丰富,但在高度定制化安全策略方面可能不如Spring Security灵活‌2。
Categories
java

若依 本地docker部署

Dockerfile :

FROM  docker.1ms.run/openjdk:8

MAINTAINER Robin Luo

RUN mkdir -p /ruoyi/server/logs \
    /ruoyi/server/temp \
    /ruoyi/skywalking/agent

WORKDIR /ruoyi/server

ENV SERVER_PORT=8080

EXPOSE ${SERVER_PORT}

ADD ./ruoyi-admin.jar ./app.jar

ENTRYPOINT ["java", \
            "-Djava.security.egd=file:/dev/./urandom", \
            "-Dserver.port=${SERVER_PORT}", \
            # 应用名称 如果想区分集群节点监控 改成不同的名称即可
#            "-Dskywalking.agent.service_name=ruoyi-server", \
#            "-javaagent:/ruoyi/skywalking/agent/skywalking-agent.jar", \
            "-jar", "app.jar"]

docker-compose.yaml

version: '3.8'
services:
  ruoyi-his-server:
    build:
      context: .
      dockerfile: Dockerfile
    container_name: ruoyi-his-server
    ports:
      - "8009:8080"
    environment:
      - SPRING_PROFILES_ACTIVE=druid,dev
    restart: always

再该目录下 执行 docker-compose up -d 启动服务

执行 dock-compose down 停止服务

Categories
php

php 自定义类替换第三方包同名文件

修改自动加载规则

  1. 调整composer.json:如果必须的话,你可以调整composer.json中的autoload部分,使得你的类优先于第三方包被加载。但是,这种方法较为复杂,并且可能导致难以预测的行为。json深色版本{ "autoload": { "psr-4": { "Vendor\\Package\\": "path/to/your/classes" } } }
  2. 重新dump自动加载器:当你改变了自动加载规则后,需要运行composer dump-autoload来更新自动加载器。