自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(50)
  • 收藏
  • 关注

原创 从内置服务器角度看 PHP VS Go

本文借一个小 demo,从内置服务器角度,探讨一下 PHP 与 Go 的区别PHP新建一个 index.php 文件<?php $request_type=$_GET['type']??0; $request_name=$_GET['name']??""; vprintf("请求 %s, 开始时间 %d \r\n",[$request_name,time()]); if ($request_type == "1") { sleep(30); vprintf("请求 %s, 结束时

2022-05-10 10:43:05 322

原创 Laravel动态设置前缀清除缓存

由于一套后台管理系统,管理多个APP项目,不同的APP项目又使用了不同的缓存前缀CACHE_PREFIX,因此采用如下方法、无法清除相关缓存\Cache::tags('tag_xxx')->flush();然后想到了使用 config() 函数来动态配置前缀,仍然无效config()->set('cache.prefix','prefix_xxx');然后翻了一下Laravel的文档、Google,都没有啥收获,最终在研究源码之后,通过如下方法解决了:$redisManager=n

2022-01-17 18:56:32 1072

原创 Laravel 开发环境的选取

Vagrant与主机完全隔离依赖VirtualBox,文件很大,运行环境不易打包移植Valet与主机环境没有隔离,php版本依赖于 Mac homebrew,不易切换同时开发多个不同版本的PHP项目,不建议使用Laravel Sail基于docker,与主机环境隔离封装简化了不少命令,与容器可以很好的互动代码同步到docker容器中比较慢,可能页面刷新两三次之后,才能看到修改后的效果依赖 composer,低版本的 Laravel 项目可能不支持DNMPhttps://g

2021-11-25 11:19:14 568

原创 拿到一台Centos后要做什么

系统环境lsb_release -aLSB Version: :core-4.1-amd64:core-4.1-noarchDistributor ID: CentOSDescription: CentOS Linux release 8.3.2011Release: 8.3.2011Codename: n/a基础设置oh-my-zsh:https://ohmyz.sh/#installssh 登录:https://www.jianshu.com/p/b294e9da09adlnmp

2021-11-24 17:38:09 537

原创 关于任务调度执行不成功的调试

可能原因关于任务调度执行不成功的原因,包括但不限于:相关命令没有使用绝对路径执行命令权限不足线上运行环境与本地环境不一致具体调试调试crontab* * * * * cd /path/to/project && /usr/local/php/bin/php artisan schedule:run >> /path/to/project/storage/logs/laravel.log 2>&1调试schedule$schedule-&gt

2021-09-15 09:56:57 783

原创 docker-sync 加速 Laravel Sail 代码同步

一、配置文件docker-sync.yml 文件配置置于根目录下version: "2"syncs: unison-sync: sync_strategy: 'unison' src: '.'经过测试,在 MacOS 10.15.7 使用 unison 策略,同步效果最佳然后修改 docker-compose.yml 的关键部分即可:version: '3'services: laravel.test: volumes: -

2021-09-07 10:27:09 450

原创 Laravel CSRF token mismatch

如果登录页面是 http://admin.siguoya.name/admin/auth/login, 而登录表单的 action 显示的是 http://127.0.0.1:8080/admin/auth/login,则在输入完账号密码之后,发起 post 请求,此时会导致 'CSRF token mismatch.'至于为啥 Laravel 的 url() 方法获取的不是 admin.siguoya.name 而是 127.0.0.1:8080,原因并不是出在框架本身上面。经过排查发现是 nginx

2021-08-31 18:48:51 3037

原创 laravel Cookies&Session

Cookies解析但凡 laravel 开发的项目,打开 chrome 浏览器,都可以看到 cookies 中有一个名称为 laravel_session 的 cookies例如 value 为:eyJpdiI6ImtXd2dNTStmbEdheVFLVUFiU29vTUE9PSIsInZhbHVlIjoiZlZDN01wMGRDYzA1QzFpMEFPUGdSWEhFcXBWV3d0NkR4XC8zK0R6UU9cL3ZEdnI4SndvZW1oXC9PcnlVc3o5QXozV2tvWUc0QVd

2021-08-31 15:23:37 696 1

原创 Laravel Sail 使用 PhpStorm 与 Xdebug 进行调试

参考资料:https://medium.com/codex/laravel-8-0-sail-xdebug-phpstorm-5cc900e96da4注意事项:帖子中的 docker-compose.yml 修改,其他修改地方有高亮,唯独 context: ./docker/8.0 没有高亮,容易漏掉这一处不需要安装 Chrome Xdebug Helperphp.ini不需要设置 idekey 等等...

2021-08-30 16:00:41 349

原创 Laravel Valet Nginx 自定义扩展配置未生效

通过nginx -t,找到了valet 的 nginx 配置文件路径 /usr/local/etc/nginx/nginx.conf在配置文件中又找到了3个引入的文件路径include "/Users/heartide/.config/valet/Nginx/*";include servers/*;include valet/valet.conf;由此可以看出,valet 的 nginx 是支持自行扩展配置的于是在 /usr/local/etc/nginx/servers 中,新建 test

2021-08-26 12:11:23 409

原创 Charles的使用

证书安装:直接复制链接 http://chls.pro/ssl 到safari浏览器中打开,不要使用微信扫码,不然会导致重定向一. 对移动端https数据进行抓包设置 - 通用 - 关于 - 证书信任设置 - 选择启用设置 - 通用 - 配置文件 - 选择启用即使charles版本一样,如果换了电脑或者卸载重装,还是需要重新安装证书的使用map remote功能,实现开发环境、测试环境等不同环境的切换主界面-settings-Access Control Settings,可以批量.

2021-04-29 16:33:01 273

原创 Git 使用

历史修改更改提交记录,解决误提交大文件如mp4、密码文件如.env等一系列问题# 检索项目当中的大文件git rev-list --objects --all | grep -E `git verify-pack -v .git/objects/pack/*.idx | sort -k 3 -n | tail -10 | awk '{print$1}' | sed ':a;N;$!ba;s/\n/|/g'`# 移除所有分支中tag为cat里面的大文件# --prune-empty 如果删除了大文

2021-04-29 16:25:40 266

原创 解决sourcetree无法push到github的问题

先修改偏好设置 - Git - Use System Git ,然后执行如下命令1087 是本地ss代理监听的端口号git config --global http.sslVerify falsegit config --global https.proxy http://0.0.0.0:1087git config --global http.proxy http://0.0.0.0:1087...

2021-04-29 16:19:20 1045

原创 PhpStorm 必备插件

Material Theme用于换肤Theme Darker ThemeFont Fira CodeFont Size 22NativeScript媲美iterm2的终端效果zero-width-characters-locator解决BOM不可见字符导致代码出错的问题:https://plugins.jetbrains.com/plugin/7448-zero-width-characters-locator...

2021-04-29 16:12:12 851

原创 MongoDB 更新/删除/索引

一、更新语法db.collection.update( <query>, <update>, { upsert: <boolean>, multi: <boolean>, writeConcern: <document> })参数说明:query : update的查询条...

2020-04-04 22:11:57 711

原创 MongoDB 聚合管道的优化与局限

$out将聚合管道中的文档,写入到一个新的集合 output 中。如果 output 已存在且有数据,则原有的数据会被清空db.transactions.aggregate([ { $group: { _id: "$currency", symbols: { $push: "$symbol"...

2020-04-04 22:11:17 273

原创 MongoDB 聚合分类

增加一个集合用于储存股票交易记录db.transactions.insert([ { symbol: "600519", qty: 100, price: 567.4, currency: "CNY" }, { symbol: "AMZN", qty: 1, p...

2020-04-04 22:10:41 221

原创 MongoDB 聚合管道&关联处理

关联查询汇率表数据db.forex.insert([ { ccy: "USD", rate: 6.91, date: new Date("2018-12-21") }, { ccy: "GBP", rate: 8.72, date: new Date("2018-08-21"...

2020-04-04 22:10:01 212

原创 MongoDB 聚合管道使用

数据准备[ { "name": { "first_name": "qingquan", "last_name": "zeng" }, "balance": 100 }, { "name": { "first_name": "fengxia...

2020-04-04 21:55:40 182

原创 MongoDB 聚合表达式与阶段

聚合表达式1. 字段路径表达式$field$field.subfield###2. 系统变量表达式$$variable ###3. 常量表达式# $literal 用于表示常量,即此处的 $name 表示的是字符串 "$name"$literal:"$name" 聚合管道阶段$project 对输入文档进行再次投影$match 对输入文档进行筛选$limit 筛选出管...

2020-04-04 21:54:53 179

原创 MongoDB 文档投影

find 第2个参数用于指定返回哪些字段、不返回哪些字段。1 返回,0不返回> db.accounts.find({},{name:1,_id:0}){ "name" : "alice2" }{ "name" : "charlie" }{ "name" : "david" }{ "name" : "charlie" }{ "name" : "david" }如果字段筛选不含主...

2020-04-04 21:53:57 192

原创 MongoDB 文档游标

查询结果遍历当我们把查询结果赋值给一个JS变量的时候,查询结果其实是一个游标可以通过下标来访问查询结果 item可以迭代、遍历打印出所有item1> var cursor=db.accounts.find({name:'alice2'});> while(cursor.hasNext()){ print(cursor.next()) }[object BSON][o...

2020-04-04 21:53:17 162

原创 MongoDB 数组操作符与运算操作符

数组操作创建包含数组和嵌套数组的文档> db.accounts.insert({ name:"alice2", balance:100,contact:[13611111111,"Guangzhou"] })WriteResult({ "nInserted" : 1 })> db.accounts.insert({ name:"alice2", balance:100,cont...

2020-04-04 21:51:22 265

原创 MongoDB 逻辑操作符与字段操作符

包含与不包含:in、nin> db.accounts.find({"name":{$in:["alice2"]}}).pretty(){ "_id" : "account1", "name" : "alice2", "balance" : 100 }{ "_id" : ObjectId("5d7f43abaecbd2bc0fa821b7"), "name" : "alice2",...

2020-04-04 21:50:43 210

原创 MongoDB 匹配查询和比较操作符

一、匹配查询1. 查询所有> db.accounts.find(){ "_id" : "account1", "name" : "alice", "balance" : 100 }{ "_id" : ObjectId("5d7f25f4aecbd2bc0fa821b3"), "name" : "charlie", "balance" : 500 }{ "_id" : ObjectI...

2020-04-04 21:49:54 301

原创 MongoDB 对象主键 ObjectId

常规主键生成> ObjectId()ObjectId("5d7f4c36a7b5867462dee50e")提取生成的时间> ObjectId("5d7f4c36a7b5867462dee50e").getTimestamp()ISODate("2019-09-16T08:47:50Z")复合主键主键也可以使用对象来表示,即复合主键。创建复合主键文档> d...

2020-04-04 21:49:07 390

原创 MongoDB 数据库操作与文档创建

数据库操作# 查看数据库列表show dbs;# 查看当前所在数据库db;# 数据库切换,如果不存在的话,会自动创建use test;# 查看数据库中的集合show collections;创建单个文档之insertOne# accounts 是集合名称,如果不存在的话,会自动创建db.accounts.insertOne({ _id:"account1", name:...

2020-04-04 21:47:50 250

原创 MongoDB 安装与管理工具

常规安装cd /usr/local/src# 下载curl -O https://fastdl.mongodb.org/osx/mongodb-osx-ssl-x86_64-3.4.20.tgz# 解压tar -zxvf mongodb-osx-ssl-x86_64-3.4.20.tgz# 重命名为 mongodbmv mongodb-osx-ssl-x86_64-3.4.20 mo...

2020-04-04 21:46:06 83

原创 9. Nginx代理

正向代理正向代理:代理的是浏览器,例如翻墙服务等#curl http://www.baidu.com/ -x http://www.siguoya.name:3333/server { listen 3333; server_name www.siguoya.name; location / { proxy_pass http://$http_host$request_u...

2020-03-30 10:32:06 134

原创 21. Nginx安全管理

1. 隐藏响应的特定 header一般从站点的 Response Header 中,我们可以获取到如下信息Server: nginx/1.x.xX-Powered-By: PHP/7.x.x通过这个我们能够获取到搭设HTTP服务器的软件及版本号,以及项目代码的编写语言及版本号如果不隐藏掉这些信息,而恰好对应的软件版本又存在公开的漏洞,一旦被有意者利用,对我们的服务就会产生很大的安全隐患...

2020-03-30 00:17:38 201

原创 20. Nginx性能优化

ab性能测试yum install httpd-toolsab -n 100 -c 100 http://127.0.0.1/#并发数量Concurrency Level: 100#整个测试花费的时间Time taken for tests: 0.014 seconds#完成请求的数量Complete requests: 100#失败请求的数量Faile...

2020-03-30 00:16:31 194

原创 19. Nginx常见错误

HTTP 状态码413:用户上传的文件过大,需要调高 client_max_body_size 参数设置502:后端无响应,例如 php 服务是否启动,php-fpm 的 pm 相关设置值是否过小导致无法创建新的进程处理请求等504:后端服务执行超时,此时需要查看一下后端服务器是否CPU占用过高,RDS数据库是否有慢查询等...

2020-03-30 00:15:28 158

原创 18. Nginx与Lua灰度发布

安装 memcachedyum install -y memcached#启动memcached服务,端口11211,以nobody身份启动,-d后台模式运行memcached -p11211 -u nobody -d#将自己的IP设为灰度测试的IPtelnet 127.0.0.1 11211set 119.32.216.122 0 0 11quit###安装 memcache...

2020-03-30 00:14:26 201

原创 17. Nginx与Lua开发

安装 Lua 和 Lua for nginx#安装luayum install -y lualua -v##安装更高效的 Lua 语言解释器 LuaJITwget http://luajit.org/download/LuaJIT-2.0.2.tar.gztar -zxvf LuaJIT-2.0.2.tar.gzcd LuaJIT-2.0.2make install PREFIX...

2020-03-30 00:12:53 188

原创 16. Nginx HTTPS服务

自签证书生成key文件#genrsa 使用idea算法,生成rsa证书,证书名为 debug.siguoya.name.key,1024表示位数 openssl genrsa -idea -out debug.siguoya.name.key 1024 #设置证书密码,在生成csr与crt文件的时候需要用到#Enter pass phrase for debug.siguoya.name...

2020-03-30 00:11:43 230

原创 15. Nginx Geo

IP数据库下载地址:国家数据库:http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz城市数据库:http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gzhttp { geoip_country /path...

2020-03-30 00:10:29 236

原创 14. Nginx Secure Link

用于校验资源请求的合法性 server { listen 3300; server_name www.siguoya.name; root /usr/local/nginx/1.12.1/html; location / { secure_link $arg_md5,$arg_expires; ...

2020-03-30 00:08:06 302

原创 13. Nginx Rewrite

flag说明lastnginx重定向location区段,能够直接返回200状态码breaknginx重定向资源路径,能够直接返回200状态码redirect返回302临时重定向permanent返回301永久重定向 server { listen 6935; server_name www.siguoya.na...

2020-03-30 00:07:04 116

原创 12. Nginx动静分离

一般来说,静态资源是指JavaScript、CSS、Img等文件,动态资源则是通过PHP、Java等后端语言运行一系列的代码逻辑来获取的。如果是静态资源的请求,就直接让nginx在静态资源目录下面读取,然后返回给客户端如果是动态资源的请求,则nginx利用反向代理把请求转发给后端应用去处理,然后后端应用将结果返回给nginx,nginx再返回给客户端在使用前后端分离之后,可以很大程度的提升静...

2020-03-30 00:05:29 140

原创 11. Nginx缓存

缓存类型浏览器缓存Nginx代理服务器缓存服务器缓存,例如Redis、Memcache等缓存配置http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_cache_pathupstream backend { server x.x.x.x:1023; server x.x.x.x:1024;...

2020-03-30 00:04:27 290

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除