docker基本操作

镜像 docker search nginx ⬅️来查看可用镜像 docker pull redis:latest ⬅️下载镜像 docker images ⬅️查看本地镜像 docker rmi {IMAGE_ID} ⬅️删除一个或多个镜像 容器 docker ps -a ⬅️查看全部容器 docker start {CONTAINER_ID} ⬅️启动容器 docker stop {CONTAINER_ID} ⬅️停止一个容器 docker rm {CONTAINER_ID} ⬅️删除一个或多个容器 docker attach {CONTAINER_ID} ⬅️登录容器 docker e...

Windows下的包管理器Chocolatey

Chocolatey是一个Windows下的包管理器,类似于Linux下的apt-get或yum。 安装 以管理员身份打开PowerShell,执行以下两条命令 PS C:\Users\work> Set-ExecutionPolicy unrestricted PS C:\Users\work> Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::Securit...

微信小程序使用自定义字体 - iconfont

步骤 1、在iconfont网站获取iconfont.ttf字体文件 2、字体文件转化成base64格式 下载后解压,得到stylesheet.css,将此文件里的代码复制到app.wxss 3、再次回到iconfont 点击图片中的css文件链接,将里面的除了@font-face部分,其他都复制到app.wxss,最终app.wxss文件内容如下 @font-face { font-family: 'iconfont'; src: url('data:font/woff2;charset=utf-8;base64,d09GMgABA...') format('woff2'), ...

ffmpeg的使用

应用场景1 ffmpeg -i http://xxx.com/index.m3u8 -c copy -bsf:a aac_adtstoasc output.mp4 通过浏览器看视频的时候,想下载下来。打开开发者工具,network,如果看到浏览器在不断的加载.ts结尾的文件,这时候筛选下m3u8,如果找到了,就可以用这种方法下载

支付宝支付回调的处理

支付宝异步通知会有很多参数,正常POST接收就行 注意:支付的异步通知和退款的异步通知是同一个url $data=$_POST; 验证签名 其验签步骤为: 第一步: 在通知返回参数列表中,除去sign、sign_type两个参数外,凡是通知返回回来的参数皆是待验签的参数。 TIPS: 生活号异步通知组成的待验签串里需要保留sign_type参数。 第二步: 将剩下参数进行url_decode, 然后进行字典排序,组成字符串,得到待签名字符串: 第三步: 将签名参数(sign)使用base64解码为字节码串。 第四步: 使用RSA的验签方法,通过签名字符串、签名参数(经过base64解码)...

对接支付宝支付

注册支付宝企业账号 申请支付产品 成为支付宝开发者 下面假如您已经申请了“手机网站支付” 开发设置 主要设置了接口加签方式和IP白名单,其他用不到 接口加签方式 普通公钥与公钥证书区别1️⃣ 应用私钥、公钥和支付宝公钥2️⃣ 应用公钥(public key)需提供给支付宝账号管理者上传到支付宝开放平台。 应用私钥(private key)由开发者自己保存,需填写到代码中供签名时使用。 支付宝公钥,应用公钥上传后会得到对应的支付宝公钥,供验签时使用(如支付回调) 应用网关是什么意思 官方文档这样描述3️⃣ 生活号、口碑、现金红包、单笔转账接口等异步通知发送到对应appid应用的应...

基于JQuery的富文本编辑器 - Simditor的使用

Simditor已经好久没更新了,issue也关闭,那为什么还要用呢,因为喜欢! 下面总结一下使用方法 安装(两种安装方式) 1.通过bower和npm安装(不能使用最新版本 #注意 版本号只能小于等于2.3.221️⃣ npm install simditor@2.3.22 2.普通方式引入(可以使用最新版本2.3.28 <link rel="stylesheet" type="text/css" href="static/simditor/simditor.css" /> <link rel="stylesheet" type="text/css" hre...

Android段子类app - 相乐搞笑

相乐搞笑(xiangle-android) 之前分享了 xiangle-ios ,现把Android版也分享出来 项目介绍 主框架: TabLayout+ViewPager 子页面: 所有子页面共用一个Activity,具体实现集中在Fragment 网络请求: retrofit2+rxjava3 图片加载: glide 列表加载: RecyclerView或ListView 文件存储: OSS(sts方式) 下拉刷新,上拉加载: SmartRefreshLayout token存储: SharedPreferences 目录结构 adapter: 所有RecyclerView或ListVi...

iOS段子类app - 相乐搞笑

相乐搞笑(xiangle-ios) 这个项目本来是用来创业的,但上架App Store几个月,下载量寥寥无几,可能方向不对,可能不懂运营... 现分享出来,看有没有需要的朋友 Android版在这里 xiangle-android 项目介绍 布局采用纯代码的方式(frame+masonry),没有storyboard 主框架: 自定义UITabBarController+UIScrollView+自定义UINavigationController 网络请求: AFNetworking 图片加载: SDWebImage 列表加载: UITableView 文件存储: OSS(sts方式) 指示器...

基于 vant-weapp 的企业展示型小程序

小程序:已开源 管理后台:暂未开源 功能点 基于scroll-view的下拉刷新和上拉加载 基于wxParse的富文本解析 使用 van-tabbar 自定义 tabBar 体验后台 https://test.yuanxi.ltd/enterprise/console/ 用户名:admin 密码:123456 截图 快速开始 1.在项目根目录执行 npm install 2.不校验域名, 使用npm模块 3.工具->构建npm 获取最新代码 github:https://github.com/chudaozhe/enterprise-weapp gitee:h...

JavaScript语言基础 - 语句

语句也称为流控制语句 if语句 let i=2; if(i>1){ console.log(111); } do-while语句 do-while语句是一种后测试循环语句,循环体内的语句至少执行一次 let i=0; do{ i+=2; console.log(i);//2,4,6,8,10 }while(i<10); while语句 while语句是一种先测试循环语句 let i=0; while(i<10){ i+=2; console.log(i);//2,4,6,8,10 } for语句 for语句是一种先测试循环语句,由初始化...

JavaScript集合引用类型 - Array

es数组也是一组有序的数据 创建数组 与对象一样,在使用数组字面量表示法创建的数组不会调用Array构造函数 let arr1=[];//等价于let arr1=new Array() let arr2=["1", "2"];//包含2个元素的数组, 等价于let arr2=new Array("1", "2") let arr3=new Array(2);//length为2的数组 from()和of() es6新增两个创建数组的静态方法 from() console.log(Array.from("abcd"));//["a", "b", "c", "d"] //通过集合,映射创建数组 l...

微信支付api v3支付回调的处理

微信支付回调返回的参数(POST) Wechatpay-Serial(header) Wechatpay-Signature(header) Wechatpay-Timestamp(header) Wechatpay-Nonce(header) 主体(body) 验证签名 $verify=$smpw->_sign_verify([$timestamp, $nonce, $body], $signature); if ($verify==1){ echo 'ok'; }else echo 'failure'; /** * 支付回调(验证签名 * @...

微信JS-SDK和WeixinJSBridge的区别

官方解释 使用 WeixinJSBridge 预览图片 WeixinJSBridge.invoke('imagePreview', { current: 'http://inews.gtimg.com/newsapp_bt/0/1693121381/641', urls: [ // 所有图片的URL列表,数组格式 'https://img1.gtimg.com/10/1048/104857/10485731_980x1200_0.jpg', 'https://img1.gtimg.com/10/1048/104857/10485726_980x1...

vue中使用微信jssdk

安装(非官方) npm install weixin-js-sdk --save 使用 import wx from 'weixin-js-sdk'; mounted(){ //jsconfig this.jsConfig(); }, methods: { jsConfig: async function() { let field = await jsSDK();//网络请求 wx.config(field); }, }

微信公众号网页授权配置

公众号后台->开发->接口权限->网页服务->网页授权 公众号后台->开发->基本配置 开发者工具相关 公众号后台->开发->开发者工具->web开发者工具(绑定开发者微信号)

前后端分离之项目部署

前后端分离的架构模式被越来越多的中大型项目所采用,这就给项目部署提出了要求 需求 假如有这么一个系统 用户端:提供给用户浏览的(纯前端项目,http://xx.com) 管理员端:供作者维护这个系统(纯前端项目,http://xx.com/admin) 服务端:为用户端和管理员端提供接口(纯后端项目,http://xx.com/api) nginx配置 xx.com.conf server { listen 80; server_name xx.com; # 用户端 index index.php index.htm index.html defaul...

微信支付api v3获取平台证书

GET 获取平台证书列表 https://api.mch.weixin.qq.com/v3/certificates 访问成功可得到类似数据 [ { "effective_time": "2021-05-19T18:40:14+08:00", "encrypt_certificate": { "algorithm": "AEAD_AES_256_GCM", "associated_data": "certificate", "ciphertext": "...==", ...

申请微信支付

注册商户号 https://pay.weixin.qq.com/index.php/apply/applyment_home/guide_normal 所需资料 姓名,手机号,邮箱 营业执照,对公账户,法人身份证 商户简称,客服电话 服务号appid(如果需要公众号支付的话) 整个过程大概30分钟(其中审核等待20分钟) 支付配置 登陆商户后台 https://pay.weixin.qq.com/index.php/core/info 产品中心->我的产品->支付产品 产品中心->开发配置->支付配置 产品中心->AppID账号管理 注:如果“关...

PHPMailer的使用 —— 发送邮件

安装 composer require phpmailer/phpmailer demo <?php require 'vendor/autoload.php'; use PHPMailer\PHPMailer\PHPMailer; //test sendmail('111@qq.com', 'test', 'ccc'); /** * 邮件发送函数 * @param string $to 接收邮件者邮箱 * @param string $subject 邮件主题 * @param string $body 邮件内容 * @param string $attachment ...

PhpSpreadsheet(PHPExcel)的使用 —— 生成/读取excel

PHPExcel已经不再维护,PhpSpreadsheet是PHPExcel的下一个版本 安装 composer require phpoffice/phpspreadsheet 生成excel # conf.php <?php //表头样式 use PhpOffice\PhpSpreadsheet\Style\Alignment; use PhpOffice\PhpSpreadsheet\Style\Border; //use PhpOffice\PhpSpreadsheet\Style\Font; $alignment=['vertical'=> Alignment::VER...

编译安装php zip扩展

源自一个错误(php操作excel的时候) Fatal error: Uncaught Error: Class "ZipArchive" not found 解决方案 cd /usr/local/src wget http://pecl.php.net/get/zip-1.19.2.tgz tar -xvzf zip-1.19.2.tgz cd zip-1.19.2 phpize ./configure --with-php-config=/usr/bin/php-config make && make install vi /data/apps/php/etc/php...

CentOS编译安装libzip最新版

源自一个错误(安装php扩展: zip) checking for libzip >= 0.11 libzip != 1.3.1 libzip != 1.7.0... no configure: error: Package requirements (libzip >= 0.11 libzip != 1.3.1 libzip != 1.7.0) were not met: No package 'libzip' found No package 'libzip' found No package 'libzip' found 或者是 yum install libzip-dev...

CentOS编译安装cmake最新版

由于使用的系统是centos7,所以一些yum源里的rpm包比较旧,需要手动编译 cd /usr/local/src/ wget https://github.com/Kitware/CMake/releases/download/v3.20.2/cmake-3.20.2.tar.gz tar xvzf cmake-3.20.2.tar.gz cd cmake-3.20.2 ./configure --prefix=/data/apps/cmake make && make install ln -s /data/apps/cmake/bin/* /usr/bin/ cmak...

php生成站点地图sitemap

$data=[ ['loc'=>'https://www.cuiwei.net/', 'lastmod'=>'2009-01-01'],//首页 ]; $xml=createXML($data); file_put_contents('sitemap.xml', $xml); function createXML($data){ $string = <<<XML <?xml version="1.0" encoding="UTF-8"?> <urlset xmlns="http://www.sitemaps.org/schem...

基于vue的markdown编辑器 - mavonEditor的使用

安装 npm install mavon-editor --save 基本使用 全局注册(main.js import mavonEditor from 'mavon-editor' import 'mavon-editor/dist/css/index.css' Vue.use(mavonEditor) 局部注册 import { mavonEditor } from "mavon-editor"; import "mavon-editor/dist/css/index.css"; export default { data: function() { return { ...

php.ini常用配置

Language Options #开启短标签 short_open_tag = On #设置可执行php的目录,多个目录用冒号隔开 open_basedir = /data/www Error handling and logging #错误级别 error_reporting = E_ALL & ~E_DEPRECATED #禁止把错误输出到页面 display_errors = Off #设置错误信息输出到文件 log_errors = On #指定错误日志文件存储位置 error_log = /data/logs/php_errors.log Data Handlin...

Taro中引入vant-weapp

Taro中引入Vant Weapp,不能直接通过第三方NPM包的形式直接调用。需下载资源到本地 需如下几步: 下载vant-weapp文件 1.在/src/components下新建文件夹vant-weapp 2.在github上找到vant-weapp下载文件包,将对应的dist文件夹下内容复制到新建的vant-weapp文件夹下。 配置 copy 小程序原生文件 vant 组件中包含一些小程序原生文件的依赖,目前 Taro 没有对这些依赖进行分析。因此需要配置 copy 把这些依赖移动到 dist 目录中,例如需要 copy wxs 和样式文件,这里简单粗暴的copy整个目录,配置如下 ...

nginx 编译安装

下面以CentOS为例 编译安装 下载 wget https://ftp.pcre.org/pub/pcre/pcre-8.44.tar.gz wget http://nginx.org/download/nginx-1.20.0.tar.gz 编译 # 创建所属用户和组,不创建家目录,不能ssh登录 useradd -M -s /sbin/nologin www ./configure --user=www --group=www --prefix=/data/apps/nginx --conf-path=/vagrant/apps/nginx/conf/nginx.conf --pid-...

代理IP的使用

curl curl http://www.icanhazip.com/ curl -x 127.0.0.1:3128 http://www.icanhazip.com/ socks5 curl --socks5 127.0.0.1:3129 http://www.icanhazip.com/ php define(URL, 'http://www.icanhazip.com/'); define(PROXY, '127.0.0.1'); define(PORT, 3128); $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, URL);...

composer安装与使用

安装 安装 Composer,你只需要下载 composer.phar 可执行文件。 curl -sS https://getcomposer.org/installer | php 如果上面方法报错,使用下面的方法也是一样的 wget https://getcomposer.org/installer [vagrant@10 ~]$ /data/apps/php/bin/php installer [vagrant@10 ~]$ sudo mv composer.phar /usr/bin/composer 使用 composer install composer update

nvm nodejs版本管理工具

可以很方便地切换 node 版本 安装 #在线安装 curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash #下载到本地再安装 cuiwei@weideMacBook-Pro nvm-master % sh install.sh => Downloading nvm from git to '/Users/cuiwei/.nvm' => Cloning into '/Users/cuiwei/.nvm'... remote: Enumerating objects: 345,...

CentOS服务器初始化配置

这里以CentOS 7为例 selinux vi /etc/sysconfig/selinux # SELINUX=enforcing SELINUX=disabled 修改时区 1 date #查看时间是否正确,不正确则执行以下步骤 2 rm -rf /etc/localtime 3 ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 4 设置时区 tzselect 5 同步时间 ntpdate cn.pool.ntp.org 6 date 把主分区改为/data(可选) 1 mkdir /data 2 vi /etc...

vagrant + virtualbox搭建一个可移动的开发环境

前言 在日常开发中可能会遇到这样的问题 新入职第一天不是在熟悉公司项目,而是在安装开发环境(搭建开发环境耗时) 在本地开发完一个功能,测试没问题,而部署到服务器上就跑不起来了(环境不一致) 在调试某个功能时发现自己这边跑不通,而同事那边没问题(环境不一致) vagrant+virtualbox 的出现,成功的解决了搭建开发环境耗时且不一致的问题 vagrant box镜像同时支持Windows、Mac和Linux 一次安装,快速分发 可以给新入职的同事分分钟部署一个和大家一样的开发环境 使用简单 vagrant up ⬅️启动虚拟机 vagrant ssh ⬅️登陆虚拟机 vagrant...

php扩展的编译安装

这里以redis为例 工具 yum install autoconf 下载及编译 wget https://pecl.php.net/get/redis-5.3.4.tgz --no-check-certificate tar -xvzf redis-5.3.4.tgz cd redis-5.3.4 phpize ./configure --with-php-config=/usr/bin/php-config make && make install 添加到php.ini vi php.ini 959 extension=redis 重载php-fpm,使生效 s...

CentOS 环境编译安装php8.0

如果是新服务器,建议先看下这篇文章:CentOS服务器初始化配置 php8 编译安装和其他低版本基本一致 准备 #编译工具 yum -y install gcc gcc-c++ make #依赖 yum -y install zlib-devel libxml2-devel openssl openssl-devel gd-devel libmcrypt-devel libcurl-devel libicu-devel oniguruma-devel 编译 cd php-8.0.3 ./configure --prefix=/data/apps/php --with-config-file-...

mariadb(mysql) 安装与使用,备份及恢复

为什么选择mariadb 前提是开发环境。mariadb体积小,安装方便,兼容常用mysql指令 安装 #Server version: 5.5.68-MariaDB MariaDB Server yum install mariadb-server 开机自启 systemctl enable mariadb 常用命令 systemctl start mariadb ️启动MariaDB systemctl stop mariadb ️停止MariaDB systemctl restart mariadb ️重启MariaDB 开发环境设置root账号以任意ip,空密码登陆 #将Hos...

CentOS服务器开启SSH远程登录

服务器默认是用户名+密码登陆,通常为了安全我们会改为SSH登陆 假如我们需要把root账号改为ssh登陆,如下 客户端(如 本机 #生成 public key ssh-keygen -t rsa -C "cw@localhost" #...连连回车... #查看 public key cat ~/.ssh/id_rsa.pub 服务端(如 服务器 cd ~ #使其自动创建.ssh目录 ssh-keygen -t rsa -C "root@localhost" echo "客户端用户的public key" >>authorized_keys chmod 600 authorized...