解决 centos使用node 报错 version ‘GLIBC_2.27’ not found…完整报错
node -vnode: /lib64/libm.so.6: version `GLIBC_2.27' not found (required by node)node: /lib64/libc.so.6: version `GLIBC_2.25' not found (required by node)node: /lib64/libc.so.6: version `GLIBC_2.28' not found (required by node)node: /lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by node)node: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by node)node: /lib64/libstdc++.so.6: ver ...
按 如何获取商户API证书? 下载商户秘钥,最后获得三个证书如下
设置v3Key,随机的32位数字即可
使用composer生成平台证书
composer exec CertificateDownloader.php -- -k ${apiV3key} -m ${mchId} -f ${mchPrivateKeyFilePath} -s ${mchSerialNo} -o ${outputFilePath}
apiV3key:第二部设置的32位key
mchId:服务商的商户号
mchPrivateKeyFilePath:第一步生成的证书里的apiclient_key.pem路径,不要带\,不然生成可能会失败
mchSerialNo:服务商的证书序列号
outputFilePath:平台证书生成路径
记录一下使用Intervention\Image压缩图片安装扩展composer require intervention/image
确保php安装了GD库或者 Imagick才可以使用,默认使用Gd库
使用use Intervention\Image\Facades\Image;//打开图片文件()$img = Image::make('public/foo.jpg')//按宽300,等比缩放图片$content = $img->resize(300, null, function ($constraint) { $constraint->aspectRatio(); })->stream();
方法使用
make(资源) :支持二进制流、文件流、base64文件流、文件绝对路径、Gd库文件资源、Imagick文件资源等。具体可看下面代码
resize(宽,高,闭包):重置大小。宽高两个参数为整数,闭包支持下列两方法:
function ($constraint) { $constrain ...
使用MetingJS实现在任意地方使用外链播放器,在需要使用的地方插入如下html即可
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/aplayer/dist/APlayer.min.css"> <script src="https://cdn.jsdelivr.net/npm/aplayer/dist/APlayer.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/meting@2/dist/Meting.min.js"></script><meting-js id="000owF6o3sHj50" server="tencent" type="song"autoplay="false"loop="all&quo ...
使用github搭建图床,并使用jsdeliver加速github设置
在github中新建一个公开仓库,仓库名称随意
在github的设置中添加 私人令牌token,令牌在后面使用PicGo作为图床客户端时有用
token名字随便取,要勾选repo项。token有效期如果不考虑安全性可以选不过期,然后创建即可。记得保存好token,只有生成时可见。
使用jsdelivr进行cdn加速
国内访问github难免会慢或者无法访问,使用jsdelivr加速一波
使用jsdelivr官网里github选项的这一条。
无需什么配置,只需把链接中user换成github用户名,repo换成仓库名,version换成分支名称,file换成图片在仓库中的路径即可,例如https://cdn.jsdelivr.net/gh/ashin33/alon-images@master/images/south_country.jpg
使用PicGo作为图床客户端PicGo下载地址
PicGo设置
在PicGo中选择Gith ...
php# 添加源sudo apt -y install software-properties-commonsudo add-apt-repository ppa:ondrej/php# 更新源sudo apt update# 安装php8.0-fpmsudo apt -y install php8.0-fpm# 安装扩展sudo apt install -y php8.0-{bcmath,bz2,intl,gd,mbstring,mysql,zip,gd,curl,imagick,xml,redis}# 检查php配置是否有误sudo php-fpm8.0 -t# 重启phpsudo service php8.0-fpm restart#查看当前安装了哪些版本的PHPdpkg -l | grep php
nginxsudo nginx=stable sudo add-apt-repository ppa:nginx/$nginxsudo apt updatesudo apt install nginx#启动nginxsudo systemctl start ng ...
创建模板stub
建一个stub模板,用于下面使用
在resources下新建stubs目录用于存储新建一个query-download.stub
<?phpnamespace DummyNamespace;use App\Exports\QueryExport;class DummyClass extends QueryExport{ public function headings(): array { //表头 return [ // ]; } public function columns($row): array { //每一列的数据 return [ // ]; } public function stringColumns(): array { //要转为字符串的列标 return [ ...
nginxnginx请求域名转发server { listen 80; ## 请求的域名 server_name aa.com; proxy_buffer_size 1024k; proxy_buffers 16 1024k; proxy_busy_buffers_size 2048k; proxy_temp_file_write_size 2048k; location / { ## 实际请求的域名 proxy_pass bb.com; }}
ssl证书更换
进腾讯云ssl证书控制台下载nginx证书
进入ssl目录替换证书文件(具体ssl目录看nginx配置的ssl路径)
nginx -s reload
linux杀掉端口占用进程netstat -tunlp | grep 端口号 # 查询占用的端口的进程idkill -9 进程id
服务器时间校准# 安装ntpyum install ntp# 校准时间ntpdate cn.pool.ntp.org
根据文件大小 ...
What’s RESTfulRESTful 是一种软件设计风格,由 Roy Fielding 在他的 论文 中提出,全称为 Representational State Transfer,直译为表现层状态转移
使用RESTful的优势
安全可靠,高效,易扩展。
简单明了,可读性强,没有歧义。
API 风格统一,调用规则,传入参数和返回数据有统一的标准
设计规范域名
域名应尽量使用https协议,可使用certbot制作免费https证书,后面研究一下
api应与主域名区分开,使用专用域名(.eg: https://api.alon.wang)或者放在主域名下(eg:https://alon.wang/api)
版本迭代随业务的发展,api大概率会发生迭代,为了保证新老用户的使用,应控制好版本.实现方法
版本号加入URL中
https://alon.wang/api/v1https://alon.wang/api/v2
使用HTTP请求头的Accept来进行区分
https://alon.wang/api/ Accept: application/prs.alon ...
安装官方文档
安装composer包composer require spatie/laravel-permission
配置
生成迁移文件php artisan vendor:publish --provider="Spatie\Permission\PermissionServiceProvider" --tag="migrations"
运行迁移命令php artisan migrate
生成配置文件php artisan vendor:publish --provider="Spatie\Permission\PermissionServiceProvider" --tag="config"
用户模型需使Spatie\Permission\Traits\HasRoles,如果使用了其他guard,还需设置guard_name属性
如果要扩展Role和Permission模型,需要继承扩展包的Spatie\Permission\Models\Role和Spatie\Permission\Models\ ...