原因是没有开启openssl扩展。
不过,在windows环境下还有一个需要注意的,就是php.ini文件中extension_dir需要修改为绝对路径,
如下:
extension_dir="C:\phpstudy_pro\Extensions\php\php7.4.3nts\ext"
这个问题是因为golang运行时最大进行中线程数限制在10000个。
可以用创建线程池的方式限制同时运行的线程数量。
比如,带有缓冲的channel。
func doThing(d interface{}){
// 一些业务逻辑
}
func main() {
var data [1000]int // 假设有1000
poolSize := runtime.NumCPU() // 获取cpu核sem := make(chan struct{}, poolSize)
for _, d := range data {
sem <- struct{}{}
go func(d int){
doThing(d)
<-sem
}(d)
}
}
以上示例中,sem<- struct{}{}操作,在sem通道满的时候会暂停等待空出,因此保证里go func(d int)同时只有poolSize个。
import (
"context"
"golang.org/x/sync/semaphore"
)
func doThing(d interface{}){
// 一些操作
}
func main() {
data := [1000]int // 假设有1000个poolSize := runtime.NumCPU() // 获取cpu数核量sem := semaphore.NewWeighted(poolSize)
for _, d := range data {
sem.Acquire(context.Background(), 1) // 获取1个锁go func(d interface{}){
doThing(d)
sem.Release(1) // 释放1个锁
}(d)
}
}
以上示例基本思路与上一个channel缓冲示例一样,通过获取池子中的锁来控制并发数量。
这种情况是原有laravel项目迁移时,文件目录没有完全迁移导致的。
主要是storage目录下的结构与原项目不同。
尝试把原项目的storage目录拷贝的迁移项目中。
为了在Go中处理HTTP客户端/服务器告警,您可以使用各种监控工具,如Prometheus和Grafana。Prometheus是一个开源监控系统,它从不同来源收集指标并将其存储在时间序列数据库中。它具有强大的查询语言,并提供灵活且可扩展的警报机制。要将Prometheus与Go一起使用,您可以使用官方的Prometheus客户端库,它提供了一种简单的方法来检测Go代码并向Prometheus公开指标。您可以使用此库来跟踪HTTP服务器/客户端的性能和其他指标,如内存使用率、CPU使用率等。
下面是如何使用Prometheus客户端库检测简单HTTP客户端的示例:
import (
"net/http"
"github.com/prometheus/client_golang/prometheus"
"github.com/prometheus/client_golang/prometheus/promhttp"
)
var (
requestsTotal = prometheus.NewCounterVec(
prometheus.CounterOpts{
Name: "http_requests_total",
Help: "Number of HTTP requests processed",
},
[]string{"method", "status_code"},
)
)
func main() {
http.HandleFunc("/", handler)
http.Handle("/metrics", promhttp.Handler())
if err := http.ListenAndServe(":8080", nil); err != nil {
panic(err)
}
}
func handler(w http.ResponseWriter, r *http.Request) {
requestsTotal.With(prometheus.Labels{"method": r.Method, "status_code": "200"}).Inc()
// your HTTP client logic here
}
在此示例中,我们使用Prometheus客户端库创建一个新的计数器向量。计数器向量计算已处理的HTTP请求数,按HTTP方法和HTTP状态代码分组。
在处理函数中,我们使用适当的标签递增requestsTotal计数器向量。我们可以使用这些标签来过滤和分组Prometheus中的指标。
最后,我们使用promhttp。Handler() 将Prometheus指标端点 /metrics暴露给我们的HTTP服务器。
您可以将Prometheus配置为根据这些指标发送告警,并为HTTP服务器/客户端设置告警规则。
一个接口允许游客访问,同时支持已登录用户相关的一些判断,比如是否点过赞。
此时,该接口不受路由保护,但需要获取用户信息,通常使用的$request→user(),在没有添加auth:sanctum中间件时,此时始终返回null。
以下方法可以在没有添加auth中间件的路由中获取用户信息。
$user = auth('sanctum')->user();//查询用户信息
通过设置data-url可以指定接口,data-url="{:url('ajax/upload')}"
<button type="button" id="faupload-local" class="btn btn-primary faupload" data-input-id="c-local" data-multiple="true" data-preview-id="p-local" data-url="{:url('ajax/upload')}"><i class="fa fa-upload"></i> {:__("Upload to local")}</button>
写法如下,需要注意的是e参数是一条数据对象,不是字段值。下面代码中e不是attachement的值。
field: 'attachement', title: 'attachement', templet: function (e) {
switch (e.attachement.content_type) {
case 'text':
return e.attachement.content;
break;
case 'image':
return "<img src=\"" + e.attachement.content + "\" style=\"width:100px;height:100px;\">";
break;
case 'video':
break;
}
}
运算符 | 描述 |
---|---|
lambda | Lambda表达式 |
or | 布尔“或” |
and | 布尔“与” |
not x | 布尔“非” |
in,not in | 成员测试 |
is,is not | 同一性测试 |
<,<=,>,>=,!=,== | 比较 |
| | 按位或 |
^ | 按位异或 |
& | 按位与 |
<<,>> | 移位 |
+,- | 加法与减法 |
*,/,% | 乘法、除法与取余 |
+x,-x | 正负号 |
~x | 按位翻转 |
** | 指数 |
x.attribute | 属性参考 |
x[index] | 下标 |
x[index:index] | 寻址段 |
f(arguments...) | 函数调用 |
(experession,...) | 绑定或元组显示 |
[expression,...] | 列表显示 |
{key:datum,...} | 字典显示 |
'expression,...' | 字符串转换 |
这是ImageMagic中有权限配置文件,需要修改PDF相关的读写权限。
# 打开policy.xml文件
sudo nano /etc/ImageMagick-6/policy.xml
# 修改PDF相关权限,由none改为read|write
<policy domain="coder" rights="none" pattern="PDF" />
# 改为
<policy domain="coder" rights="read|write" pattern="PDF" />
我们利用他提供的 demo 看一下,都有哪些功能。
1. 上传文件。
目前支持csv,json 格式
2. 生成数据概要。 会生成全部变量的摘要,包括变量的行数、最小值、最大值、标准差。
3. 自动生成分析目标。 demo 里默认生成5个,可以在代码里改目标数量。
4. 生成可视化图表。 同步会生成 python 代码。
5. 微调图表。 可以在对话框里微调图表,例如更改图表标题,颜色,图例位置等。
6. 解释图表。会生成结构化的文字解释图表内容。
7. 对图表进行评分;生成其他推荐的图表。数据问题,未生成。
8. 其他设置。
可以选择可视化的包,默认 seaborn,有Altair,Matplotlib,GGPlot 可选。
可以选择底层大模型服务,有 openai,google,cohere,huggingface 的模型可选。
但当前版本有一个问题,其实也是当前各种开源的自动可视化工具都有的,就是生成的图表不支持中文字体,这是 python 的底层可视化包 matplotlib 导致的问题,如果是本地运行的代码,加一个字体设置就行了,但很多在线的服务难以更改。还有一个跟字体有关的问题,就是当前导入的含有中文的数据,也处理不了。 不过既然已经开源了,能折腾的大佬可以自己来改造了。
github 地址: https://github.com/microsoft/lida。
最近一直在寻找低代码开源项目来学习学习~ 在这里整理一下我觉得不错的项目。
GOVIEW
GoView 是一个使用 Vue3 搭建的低代码数据可视化开发平台,将图表或页面元素封装为基础组件,无需编写代码即可完成业务需求。它的技术栈为:Vue3 + TypeScript4 + Vite2 + NaiveUI + ECharts5 + Axios + Pinia2 + PlopJS。
Gitee:https://gitee.com/dromara/go-view
vlife
企业级低代码快速开发平台,包含页面可视化配置、自定义表单、自定义报表、权限管理脚手架应用、前后端代码自动生成;主要特点是低代码开发,可实现复杂CRUD功能仅编写数据模型就能完成前后端开发。
Github:https://github.com/wwwlike/vlife
JeecgBoot
JeecgBoot 采用Vue3.0+TypeScript+Vite+Ant-Design-Vue等新技术方案,包括二次封装组件、utils、hooks、动态菜单、权限校验、按钮级别权限控制等功能。
Gitee:https://gitee.com/jeecg/jeecgboot-vue3
maku-generator
一款低代码生成器,可根据自定义模板内容,快速生成代码,实现项目的快速开发、上线,减少重复的代码编写,开发人员只需专注业务逻辑即可。
Gitee:https://gitee.com/makunet/maku-generator
MtBird
星搭精卫 MtBird 是一款基于 React 的低代码可视化页面生成器。帮助用户以可视化的形式搭建网页、小程序和表单等应用。
Github:https://github.com/staringos/mtbird
鲁班 H5
鲁班H5是基于 Vue 2 开发、通过拖拽快速生成页面的平台。类似 易企秀、Maka、百度 H5 等平台。其支持表单组件,即时倾听用户反馈,可以在后台查看和下载用户数据。包含了丰富的组件系统、支持可视化编辑、自由拖拽排版、实时预览、在线访问。支持一键导入PSD,将设计师的创意转换为 H5,快速查看效果、反馈、上线
Github:https://github.com/ly525/luban-h5
Seezoon Stack
Seezoon Stack 是一款基于当前最前沿的前端(Vue3 + Vite + Antdv)和后台(Spring boot)实现的低代码开发平台。以快速开发为目的,在开发速度和代码结构上做出一定取舍。项目采用主流开发框架,无论打包、编译、部署都按着大公司的标准完成并不断逐步完善。
Gitee:https://toscode.gitee.com/huangdf/seezoon-stack
Variant Form
Variant Form 是一款高效的Vue低代码表单,可视化设计,一键生成源码。其特性如下:
- 拖拽式可视化表单设计;
- 支持PC、Pad、H5三种布局;
- 支持运行时动态加载表单;
- 支持表单复杂交互控制;
- 支持自定义CSS样式;
- 支持自定义校验逻辑;
- 支持国际化多语言;
- 兼容IE 11浏览器;
- 可导出Vue组件、HTML源码;
- 可导出Vue的SFC单文件组件;、
- 支持开发自定义组件;
- 支持响应式自适应布局;
- 支持VS Code插件;
Github:https://github.com/vform666/variant-form
ng-form
ng-form 是一个基于vue+element ui实现动态表单组件,通过拖拽组件到面板即可实现一个表单。支持各个组件的动态隐藏显示,动态表格弹窗式维护。
Gitee:https://gitee.com/jjxliu306/ng-form-element
h5-factory
h5-factory 是一个h5专题页面可视化编辑工具,拖拽编辑,灵活切换,一键生成html文件。
Github:https://github.com/yangyuji/h5-factory
fscan
作者:shadow1ng
开发语言:Golang
github star:6.4k
https://github.com/shadow1ng/fscan
一款内网综合扫描工具,方便一键自动化、全方位漏扫扫描。支持主机存活探测、端口扫描、常见服务的爆破、ms17010、redis批量写公钥、计划任务反弹shell、读取win网卡信息、web指纹识别、web漏洞扫描、netbios探测、域控识别等功能。
antSword
作者:AntSwordProject
开发语言:Nodejs
github star:2.8k
https://github.com/AntSwordProject/antSword
中国蚁剑是一款开源的跨平台网站管理工具。
Stowaway
作者:ph4ntonn
开发语言:Golang
github star:2.1k
https://github.com/ph4ntonn/Stowaway
Stowaway 是一款多级代理工具,可将外部流量通过多个节点代理至内网,突破内网访问限制。Stowaway 可以方便渗透测试人员通过多级跳跃,从外部dmz等一系列区域逐步深入核心网络;Stowaway 除了流量转发功能,还提供了端口复用、ssh隧道,流量伪装等专为渗透测试人员所用的功能。
shellcodeloader
作者:m0ngo0se@knownsec404
开发语言:C++
github star:1.5k
https://github.com/knownsec/shellcodeloader
Windows平台的shellcode免杀加载器,自带多种加载方式:32位自带13种加载方式,64位自带12种加载方式。
ServerScan
作者:Adminisme
开发语言:Golang
github star:1.4k
https://github.com/Adminisme/ServerScan
一款使用Golang开发且适用于攻防演习内网横向信息收集的高并发网络扫描、服务探测工具。
Platypus
作者:WangYihang
开发语言:Golang
github star:1.3k
https://github.com/WangYihang/Platypus
Platypus 是一个基于终端与 Web UI 交互式的反弹 Shell 会话管理工具。在实际的渗透测试中,为了解决 Netcat/Socat 等工具在文件传输、多会话管理方面的不足。该工具在多会话管理的基础上增加了在渗透测试中更加有用的功能,可以更方便灵活地对反弹 Shell 会话进行管理。
WMIHACKER
作者:rootclay
开发语言:VBScript
github star:1.2k
https://github.com/rootclay/WMIHACKER
WMIHACKER是一款免杀横向渗透远程命令执行工具,常见的WMIEXEC、PSEXEC执行命令是创建服务或调用Win32_Process.create执行命令,这些方式都已经被杀软100%拦截,通过改造出的WMIHACKER可免杀横向移动。并且在企业网络目前阻断445端口严重的情况下可以无需445端口进行横向移动,效率高且不易被检测。
rakshasa
作者:Mob2003
开发语言:Golang
github star:828
https://github.com/Mob2003/rakshasa
rakshasa是一个使用Go语言编写的强大多级代理工具,专为实现多级代理,内网穿透而设计。它可以在节点群里面任意两个节点之间转发TCP请求和响应,同时支持socks5代理,http代理,并且可以引入外部http、socks5代理池,自动切换请求IP。
As-Exploits
作者:yzddmr6
开发语言:JavaScript
github star:725
https://github.com/yzddmr6/As-Exploits
中国蚁剑后渗透框架。
PortForward
作者:knownsec404
开发语言:Golang
github star:97
https://github.com/knownsec/PortForward
PortForward 是使用 Golang 进行开发的端口转发工具,解决在某些场景下内外网无法互通的问题。
- Lenster:Web 3 社交媒体应用
- Lenstube:Web 3 视频共享社交媒体平台
- Web3UI Kit:轻量级的 web3 UI 组件
- Web3Modal:为 Web3 DApp 提供简单易用的登录和交互体验
- web3.js:提供与以太坊区块链进行交互的API
- ethers.js:用于与以太坊节点进行交互
- wagmi:React Hook 的集合,包含了与以太坊交互所需的一切
- Web3-react:用于 React 应用的库,旨在使 DApp 的开发更加容易
- RainbowKit:用于将钱包连接添加到 dapp
- Foundry:用于以太坊应用程序开发的快速、便携和模块化工具包
- DeFi Developer Road Map:去中心化金融开发者的学习和技能路线图
- FREE Web3 resources:Web3 学习资源
- Awesome Web 3:一组很棒的 Web 3 学习资源
- Awesome Ethereum:一组很棒的以太坊学习资源
Lenster
Lenster 是一款使用 Lens Protocol 协议构建的去中心化且无需许可的 Web 3 社交媒体应用,允许连接 Web3 钱包和使用 Lens 来登陆。在 Lenster 可以发布帖子、浏览朋友圈和探索内容趋势,还可以直接搜索相关内容帖子或者用户 Profiles。
https://github.com/lensterxyz/lenster
Lenstube
Lenstube 是一个基于 Lens Protocol 构建的开源视频共享社交媒体平台,由 Livepeer 和 Vercel 提供支持,创作者上传视频时可以选择视频收集对象,限制收集人数、视频类别以及设置收集费用和推荐费用,也可以直接将发布的视频转发同步至 Lens。
https://github.com/lenstube-xyz/lenstube
Embark
Embark 是一个用于轻松开发和部署 Serverless 去中心化应用(DApps)的框架。Embark 目前集成了 EVM 区块链(以太坊)、去中心化存储(IPFS) 和去中心化通信平台(Whisper 和 Orbit),部署支持 Swarm。
https://github.com/embarklabs/embark
Web3UI Kit
Web3Modal 是一个 JavaScript 库,旨在为 Web3(以太坊、BSC、Polygon 等区块链)DApp 提供简单易用的登录和交互体验。它支持多种钱包提供商,如 MetaMask、WalletConnect、Portis、Trezor、Ledger 等,并且能够跨设备、浏览器和平台提供一致的用户体验。
https://github.com/web3ui/web3uikit
Web3Modal
Web3Modal 是一个多功能的库,可以轻松地将用户与 Dapp 连接起来并开始与区块链交互。可以在一个地方管理多链钱包连接流。在设计时同时考虑到开发人员和用户,它易于集成和定制,带来独特的体验。
https://github.com/WalletConnect/web3modal
web3.js
web3.js 是以太坊官方的 JavaScript 库,提供了与以太坊区块链(和基于以太坊的其他区块链)进行交互的API。通过 web3.js,开发者可以从他们的应用中与区块链进行交互,例如读取账户信息、创建和管理智能合约、发送交易等。该库不仅限于浏览器环境,也可以在 node.js 环境中使用。Web3.js 支持以太坊 JSON-RPC API 的所有功能,并且提供了一些高级功能,如合约 ABIs 的自动解析、以太坊 gas 费用的自动计算和签名交易的功能。
Github:https://github.com/web3/web3.js
ethers.js
ethers.js 是一个完整的以太坊开发库,提供了一套易于使用的 API,用于在 Web3 浏览器和 node.js 环境中进行操作。ethers.js 可以用于与以太坊节点进行交互,例如读取账户余额和发送交易,还可以部署、管理和调用智能合约。与 web3.js 不同的是,ethers.js 专注于提供简洁、易于理解和安全的 API。ethers.js 还提供了许多高级功能,如 EIP-1193 支持、钱包管理、大数据签名、批处理交易等。它还提供了一组基本的安全标准,以确保您的应用程序和以太坊网络之间的通信是安全且可靠的。
https://github.com/ethers-io/ethers.js
wagmi
wagmi 是一个 React Hook 的集合,包含了你与以太坊交互所需的一切。wagmi 使连接钱包、显示 ENS 和余额信息、签署消息、与合约交互等变得简单——所有这些都有缓存、重复请求降重和持久化。
wagmi 具有以下特点:
- 20 多个 Hook 用于处理 Wallet、ENS、Contract、Transaction、Signature 等
- 内置 MetaMask、WalletConnect、Coinbase Wallet 和 Injected 的钱包连接器
- 缓存、重复请求降重、multicall、批量处理和持久化
- 基于钱包、区块和网络的变化自动刷新数据
- 支持 Multicall
- 支持临时分叉以太坊网络运行的测试套件
- 支持 TypeScript(可以从 ABI 和 EIP-712 类型数据中推断类型)
- 大量的文档和示例
- 被 ENS, Foundation, Sushi 等使用。
https://github.com/wagmi-dev/wagmi
Web3-react
Web3-react 是一个用于 React 应用的开源库,旨在使 DApp 的开发更加容易。它提供了一套用于管理 Web3 实例的 React 组件和钩子,以及用于获取用户账户、网络等信息的功能。Web3-react 还可以轻松处理不同的 Web3 提供商,例如 MetaMask、WalletConnect、Portis 等。
Web3-react 提供了一个标准接口,用于与以太坊网络进行交互,使开发者能够专注于应用程序的逻辑和界面开发,而不必关心底层实现细节。它还提供了一些其他的高级功能,如支持 EIP-1193 标准、处理多个 Web3 实例和清除缓存等。
https://github.com/Uniswap/web3-react
RainbowKit
RainbowKit 是一个 React 库,可以轻松地将钱包连接添加到 dapp。该工具可简化开发人员在开发DApp时需要进行的多钱包、多网络连接支持工作。RainbowKit支持所有EVM兼容链。
https://github.com/rainbow-me/rainbowkit
Foundry
Foundry 是一款用 Rust 编写的用于以太坊应用程序开发的快速、便携和模块化工具包。它包括:
- Forge:以太坊测试框架(如 Truffle、Hardhat 和 DappTools)。
- Cast:用于与 EVM 智能合约交互,发送交易和获取链数据。
- Anvil:本地以太坊节点,类似于 Ganache、Hardhat Network。
- Chisel:快速、实用且详细的 REPL。
https://github.com/foundry-rs/foundry
DeFi Developer Road Map
DeFi Developer Road Map 是去中心化金融(DeFi)开发者的学习和技能路线图,该路线图包括了从基础的区块链知识、智能合约、加密货币等概念开始,逐渐深入到各种DeFi协议、去中心化交易所(DEX)、流动性挖掘(Liquidity Mining)、闪电贷(Flash Loans)等高级概念和实际项目开发。
https://github.com/OffcierCia/DeFi-Developer-Road-Map
FREE Web3 resources
FREE Web3 resources 给开发者和学习者提供了 Web3 相关资源,这些资源可以包括各种在线课程、文档、视频教程、社区和开放源代码库等。它们可以帮助更好地理解和使用 Web3 技术,构建去中心化、安全和可靠的应用。
https://github.com/FrancescoXX/free-Web3-resources
Awesome Web 3
一组很棒的 Web 3 学习资源。
https://github.com/ahmet/awesome-web3
Awesome Ethereum
一组很棒的以太坊和 Dapps 学习资源。
https://github.com/bekatom/awesome-ethereum
1.检查nginx是否支持状态展示,
如果在终端中输出 with-http_stub_status_module ,则说明 Nginx 已启用 tub_status 模块。
nginx -V 2>&1 | grep -o with-http_stub_status_module
2.配置nginx.conf
server {
location /metrics {
stub_status on;
}
}
3.运行nginx exporter,这里的【目标nginxIP:端口
】需要替换为nginx的ip:port
sudo docker run -d --name=prometheus_nginx \
-p 9113:9113 \
nginx/nginx-prometheus-exporter:0.10.0 \
-nginx.scrape-uri=目标nginxIP:端口/metrics \
-web.telemetry-path=/metrics
4.修改prometheus配置文件prometheus.yml,这里的【第三部配置的容器ip
】替换为第三步创建的容器ip。
scrape_configs:
- job_name: ‘nginx exporter’
scrape_interval: 5s
static_configs:
- targets: ['第三部配置的容器ip:9113']
到此所有设置已完成,重启Prometheus后可以在查询输入框输入nginx,即可看到多个多个相关指标。
关于更多Prometheus相关知识参考官网:Getting started | Prometheus
这个情况一般是下载错误的二进制版本所致,比如linux下下载了mac的版本。
请尝试下载操作系统对应的版本。
- fastcgi_param SCRIPT_FILENAME $fastcgi_script_name; #脚本名称。
- fastcgi_param PATH_TRANSLATED document_rootfastcgi_script_name; #请求的路径。