首页
关于我们
友链链接
壁纸下载
更多
统计中心
热点搜索
图床上传
推荐
剩余价值
磁链清理
IP定位
Search
1
[Win DD包] wes7-x86-cn-精简,安装后仅占用1.55G存储空间
25,536 阅读
2
v2rayN基础使用教程、配置说明、添加订阅、路由选择
7,971 阅读
3
保姆级教程!甲骨文ARM DD成Debian10并升级内核成5.10
6,222 阅读
4
N1教程:Openwrt安装docker webui界面(基于flippy openwrt n1固件)
5,254 阅读
5
ZFAKA小店Docker版之 数据的备份和迁移
5,139 阅读
Linux学堂
网站建设
网络资源
主题插件
固件工具
主机评测
MV频道
登录
Search
标签搜索
vps
typecho
linux
bench
mysql
cloudflare
nginx
lnmp
ssl
empirecms
openwrt
google
centos
docker
n1
301
qbittorrent
telegram
free
onedrive
V+变量
累计撰写
285
篇文章
累计收到
215
条评论
首页
栏目
Linux学堂
网站建设
网络资源
主题插件
固件工具
主机评测
MV频道
页面
关于我们
友链链接
壁纸下载
统计中心
热点搜索
图床上传
推荐
剩余价值
磁链清理
IP定位
搜索到
99
篇与
的结果
2025-05-27
Google AdSense 国内提现教程:首选无手续费的招商银行
一.前言大家都知道,Google Adsense 在收益达到 100 美元后,便会自动使用电汇付款到绑定的银行卡。目前本站每天都有不到1美元的收益,日积月累,很快也到100美元的支付门槛了,但因为迟迟没有办理具有接受外汇的银行卡,导致推迟到现在才把这些流程搞定,而且收到了来自 Google Adsense 的首笔付款。今天就梳理一下我从办理银行卡到收到来自 Google Adsense 首笔打款的经历,同时也方便为自己做个记录,希望对大家有所帮助。二、adsense设置国内银行卡收款2.1 办理可以接收外汇的银行卡并非所有的银行卡均支持接受外汇,使用前请询问发卡地银行是否支持。关于手续费与合同的问题,我发现每个地方的政策都不一样。有些银行可能会存在手续费或是要求提供合同,有点麻烦。基于个人经验,本地的招商银行并未要求提供任何的合同也不存在任何的手续费用。这点,其实可以在询问银行卡能否接收外汇的时候一并问一下。 博主办理的是招行储蓄卡,因为免手续费,没有的小伙伴先申请一张招商银行一卡通。注意:银行卡必须为一类账户,二类及以下账户没有收款外币权限。开通网银和手机银行。招行的收款信息如下:收款行信息(招商银行总行) 银行名称(英文): China Merchants Bank 银行地址(英文):China Merchants Bank Tower NO.7088, Shennan Boulevard, Shenzhen, China 银行 SWIFT 代码: CMBCCNBS 收款人名称: 开户证件姓名的汉语拼音 收款人账号: 一卡通卡号2.2 填写 Adsense 付款方式登录 Google AdSense 管理后台点击 付款 > 付款信息 > 管理付款,添加付款方式。在付款页面可以根据下面信息来填写:付款人 ID(可选):不用填 银行账户上的姓名:Ma Baoguo(姓名拼音,大写,姓和名之间空格) 银行名称:China Merchants Bank(招行总行,不管哪个地方办理的卡都一样) SWIFT BIC:CMBCCNBS 账号:招商银行一卡通卡号 勾选设为主要付款方式 填写完成后,点击保存即可!2.3 等待AdSense 付款注意付款方式添加完成后并不会立刻就付款过来,需要等到余额达到 $100 后,谷歌 AdSense 固定在每个月 21 日(中国时间 22 日)发起付款,1-3 工作日可收到汇款。注意:一般来说 Google Adsense 款项在放款当天算起的 5 个工作日内会到达银行,银行再逐级向下放款,最终才会到达你的银行帐号。不要太着急,十来天到账也很正常。就像此次,我的收款正好赶上五一黄金周假期,假期肯定是没有办法到账,假期一过就到账了。三.招行 APP 结汇我们收到的汇款是美元,需要结汇成人民币,然后才能提现。下载安装登陆招商银行一卡通 APP,找到【外汇结汇】,点开后点击【去结汇】,在【结汇委托】界面:卖出货币:选择美元现汇 结汇资金来源:选择【其他经常转移】或【职工报酬和赡家款】 结汇金额:输入要结汇的金额 最后点击确定,输入密码即可成功结汇,结汇后的人民币就自动打入银行卡。另外需要注意每个人年度结汇总额度为 $50000,如果超出可到银行柜台申请额度。结汇业务办理时间是 8:30-22:00。到此为止,我们就可以通过 Google AdSense 赚取美元,然后结汇成人民币,最后提现到银行卡了。
2025年05月27日
8 阅读
0 评论
0 点赞
2025-05-02
给自己网站增加一个定位插件——调用美团API定位到访者的IP地址
1 前言美团通过IP地址可以快速定位,利用美团API可以给网站增加一个定位到访者的插件。美团API地址为:https://apimobile.meituan.com/locate/v2/ip/loc?rgeo=true&ip=。本文介绍如何调用美团API定位到访者的IP地址,给自己网站增加一个定位插件。2 部署教程2.1 新建ip.php文件在网站目录下新建ip.php文件,如可以选择在子目录tools下新建ip.php文件,其代码如下:<?php if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['ip'])) { $ip = $_POST['ip']; $ipData = json_decode(file_get_contents("https://apimobile.meituan.com/locate/v2/ip/loc?rgeo=true&ip=" . urlencode($ip)), true); if (!$ipData || !isset($ipData['data']['lat'])) exit(json_encode(['success' => false])); $lat = $ipData['data']['lat']; $lng = $ipData['data']['lng']; $rgeo = $ipData['data']['rgeo']; $cityData = json_decode(file_get_contents("https://apimobile.meituan.com/group/v1/city/latlng/{$lat},{$lng}?tag=0"), true)['data'] ?? []; exit(json_encode(['success' => true, 'ip' => $ip, 'lat' => $lat, 'lng' => $lng, 'country' => $rgeo['country'] ?? '', 'province' => $rgeo['province'] ?? '', 'city' => $rgeo['city'] ?? '', 'district' => $rgeo['district'] ?? '', 'detail' => $cityData['detail'] ?? ''])); } ?> <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8"><title>IP Locator</title><meta name="viewport" content="width=device-width,initial-scale=1"> <script src="https://cdn.tailwindcss.com"></script> <link href="https://fastly.jsdelivr.net/npm/
[email protected]
/dist/leaflet.min.css" rel="stylesheet"/> <script src="https://fastly.jsdelivr.net/npm/
[email protected]
/dist/leaflet.min.js"></script> </head> <body class="bg-slate-50 font-sans p-3 md:p-6"> <div class="max-w-4xl mx-auto"> <h1 class="text-xl font-medium mb-6 text-center text-gray-700">访客地址</h1> <div class="grid md:grid-cols-2 gap-4" id="cards"></div> <div class="text-center text-xs text-gray-400 mt-6">Powered by <a href="https://www.Vvars.com">V+变量建站日记</a></div> </div> <script> (async () => { const sources = [ {id: 'f', url: 'https://ipv4.lvhai.org/', label: '代理IP', color: '#3b82f6'}, {id: 'd', url: 'https://ipv4_cu.itdog.cn/', label: '访客地址', color: '#10b981'} ]; // Create cards & fetch IPs sources.forEach(s => { document.getElementById('cards').innerHTML += ` <div class="bg-white rounded-lg shadow-sm border border-gray-100 overflow-hidden"> <div class="px-3 py-2 border-b border-gray-100 flex items-center justify-between"> <h2 class="text-sm font-medium text-gray-700">${s.label}</h2> <div class="h-2 w-2 rounded-full" style="background:${s.color}"></div> </div> <div id="${s.id}-content" class="p-3 text-sm"> <div class="animate-pulse h-4 w-20 bg-gray-200 rounded"></div> </div> <div id="${s.id}-map" class="h-40 rounded-md mt-2 hidden"></div> </div>`; // Process IP (async () => { try { // Get IP const ip = await fetch(s.url).then(r => s.url.includes('lvhai') ? r.text().then(t => { try { return JSON.parse(t).ip || t.trim(); } catch { return t.trim(); } }) : r.json().then(j => j.ip)).catch(() => null); if (!ip) { document.getElementById(`${s.id}-content`).innerHTML = `<div class="text-red-500">Failed to get IP</div>`; return; } document.getElementById(`${s.id}-content`).innerHTML = `<div class="font-mono text-gray-600">IP: ${ip}</div>`; // Get location const data = await fetch(location.href, { method: 'POST', headers: {'Content-Type': 'application/x-www-form-urlencoded'}, body: `ip=${encodeURIComponent(ip)}` }).then(r => r.json()); if (!data.success) { document.getElementById(`${s.id}-content`).innerHTML += `<div class="text-red-500 text-xs mt-1">Location failed</div>`; return; } // Update content document.getElementById(`${s.id}-content`).innerHTML = ` <div class="font-mono text-gray-600">IP: ${ip}</div> <div class="grid grid-cols-2 gap-x-2 gap-y-1 text-xs mt-2"> <div><span class="text-gray-500">国家:</span> ${data.country||'—'}</div> <div><span class="text-gray-500">省区:</span> ${data.province||'—'}</div> <div><span class="text-gray-500">城市:</span> ${data.city||'—'}</div> <div><span class="text-gray-500">区县:</span> ${data.district||'—'}</div> </div>`; // Show map with CARTO basemap const mapEl = document.getElementById(`${s.id}-map`); mapEl.classList.remove('hidden'); const map = L.map(mapEl, {zoomControl: false, attributionControl: false}).setView([data.lat, data.lng], 10); L.tileLayer('https://{s}.basemaps.cartocdn.com/light_all/{z}/{x}/{y}{r}.png', { subdomains: 'abcd' }).addTo(map); L.circleMarker([data.lat, data.lng], {radius: 6, color: s.color, weight: 2, fillOpacity: 0.3}).addTo(map); setTimeout(() => map.invalidateSize(), 100); } catch (err) { document.getElementById(`${s.id}-content`).innerHTML = `<div class="text-red-500">Error: ${err.message}</div>`; } })(); }); })(); </script> </body> </html>2.2 在网站模板中加入调用代码可以采用iframe调用,示例代码如下:<iframe frameborder=0 src="https://www.vvars.com/tools/ip.php" style="border-radius:8px; height: 300px; transform: scale(0.85); transform-origin: top left;"></iframe>代码参考,需要自行调整height和scale数值。3 最终效果IP显示:https://www.vvars.com/tools/ip.php网站调用显示:https://www.vvars.com/Website-construction/Add-a-location-plug-in-to-your-website---call-Meituan-API-to-locate-the-visitor-s-IP-address.html
2025年05月02日
52 阅读
0 评论
0 点赞
2025-04-06
化繁为简,帝国cms博客数据迁移至wordpress详细教程
一 前言5Var美食谷(5var.com)是我很早就建立的一个美食网站,运行几年流量还是少的可怜,可能是来自搜索引擎的流量太少了,毕竟酒香也怕巷子深,本着死马当活马医的想法,索性就搬到wordpress,毕竟wordpress才适合博客……这里并不是说帝国不适合建站。二 转换教程以下迁移详细记录与代码。1 第一步:搭建wordpress官网下载wordpress即可,安装的时候正常安装即可。2 第二步:安装导入数据的工具可以安装wordpress导入器插件。3 第三步:导出帝国的数据这里导出数据就需要用到代码了,只导出文章和分类,分类url如果规则的话,可以保留不变,如果每个分类下都有不同的url形式的话,那就不行了。在你帝国网站根目录建立一个etow.php,然后将下面的代码放进去,访问这个PHP即可看到xml数据,这时候Ctrl+S保存,保存为xml文件。etow.php代码如下:隐藏内容,请前往内页查看详情4第四步:导入wordpress这样便可以把你帝国的数据转移到wordpress里面了。
2025年04月06日
28 阅读
0 评论
0 点赞
2025-04-05
关于本站V+变量最近的服务器转移和升级的说明
1 小站迁徙之路1)本站最早是在腾讯云清凉云广州,当时是2021三年活动入手的,但是没时间打理,基本属于放羊状态。2)2024年9月,因腾讯云到期,续费价格较高,又不想各种凑券退款之类的便宜入手,于是转移到德国Netcup 黑五活动的VPS1000的服务器,不得不说Netcup的性价比真的很高,5.75O就有4C -8G-512GSSD的配置,德国大厂真的超级稳定,直到现在本站的图床https://imgq.de还是建在Netcup。3)最近,碰到Yxvm和Nodeseek正在开展免费赞助活动,见NodeSupport免费服务器赞助计划,正好本站流量也达标了,抱着试一试的心态申请了下,结果几个小时后就获批了,真的很感谢Yxvm和Nodeseek!2 小站升级接着本次迁徙的机会,想着给小站也来个php和Mysql升级,主要就是Php7→8,Mysql5.6→MariaDB10。本站用的是Typecho程序,网上搜了下是支持PHP8和MariaDB10的,于是马上开搞。整体很顺利,这里记录下:1)Yxvm VPS安装lnmp(PHP8和MariaDB10)直接用军哥的lnmp一键脚本,刚好4.2号军哥发了lnmp2.2:wget https://soft.lnmp.com/lnmp/lnmp2.2.tar.gz -O lnmp2.2.tar.gz && tar zxf lnmp2.2.tar.gz && cd lnmp2.2 && ./install.sh lnmp注意,这里我碰到报错,压缩包有点问题,我是下载到本地解压后上传到VPS的,可以正常安装和使用。2)Netcup上导出数据库,数据库不大,直接phpmyadmin可视化操作;3)Yxvm VPS安装Verysync,将vvars.com网站文件从netcup同步过来;#(如果需要指定索引存放位置请在最后面添加-d 路径 如 -d /data/verysync) curl http://www.verysync.com/shell/verysync-linux-installer/go-installer.sh > go-installer.sh chmod +x go-installer.sh ./go-installer.sh4)Yxvm VPS上phpmyadmin导入从Netcup导出的数据库;实践证明MariaDB是可以兼容Mysql5.6的,直接导入成功,没有报错;5)修改config.inc.php数据库配置服务器地址、账号密码,确保能连接;6)本站用了cloudflare的优选,所以只需要切换源站IP即可;7)测试Vvras.com打开、登录和修改是否正常,一切正常。
2025年04月05日
29 阅读
0 评论
0 点赞
2025-04-04
新手学SEO的利器——如何用Google Analytics查看数据优化SEO效果
一 前言谷歌分析(google analytics)是做seo非常重要的工具,那么如何用Google Analytics查看数据优化SEO效果呢。今天就来介绍下具体分析。二 主要SEO指标1 首页概况主要查看活跃用户,新用户数量和平均互动时长,也就是停留时间。越多,越长越好。下面是主要的国家和浏览的页面,以及自然流量,直接进入,unassigned是指没有路径流入的流量,再下面是推荐分享,社媒自然流量。2 下拉可以选择更多的数据,事件。3 报告概览也是差不多数据,主要除了关注流量来源的国家还要关注主要查看的页面来进行更加深度的优化,其他的页面也要优化,先后问题。4 实时流量情况当前30分钟或者5分钟的浏览用户数量,会话数量及浏览的页面。5 页面实时浏览情况也是一样,查看用户感兴趣的页面是哪一些。6 地区城市,和流量来源的搜索引擎其他重复的数据我就不一一介绍了,挑重点的讲。这一块潜在客户需要注意的点是地区城市,和流量来源的搜索引擎,可以进行更细化的广告投放。7 查看自然流量以及直接搜索来的流量占比。8 用户关注的页面是哪一些,针对性的优化,增加点击率转化率。9 2C数据就不看了,也是一样道理,主要做的还是B2B。10 应用流量概览,多语言这一块要注意,小语种的市场还是非常有潜力的。我们做广告的时候,最好是针对好的样本数据,针对国家地区去分组投放广告做测试。11 查看波动时间点以及情况,给我们谷歌广告投放的时间段参考。12事件主要几大类,pv用户查看的页面数量,user engagement停留时间或者用户活动时间总和,scoll 滑动,session start跟踪每次用户做了什么,算是小型的用户搜索旅途映射。First visit,判断用户是不是第一次进入,新用户的比例。video process,查看视频的数量,view search results,查看搜索结果的用户量。13语言的划分。14变量,不同形式不同国家来源的用户量归纳。15点击应用,会显示各个细分来源的比例。16用户路径的分布。17用户的搜索浏览路径以及具体来源IP的国家,地区。
2025年04月04日
26 阅读
0 评论
0 点赞
2025-04-04
Typecho全站启用HTTPS教程的坑
全站启用HTTPS让您的网站更安全,随着用户和搜索引擎的不断重视,很多小伙伴们已经加入HTTPS的阵营,分享下Typecho设置HTTPS的过程。1申请SSL证书如果您还没有域名SSL证书,可以参考教程:沃通免费SSL证书申请和Let’s Encrypt免费SSL证书申请免费的SSL证书。2 Typecho设置登录Typecho后台 -> 设置 -> 基本设置 -> 站点地址改成https的域名是必须的。3编辑Typecho站点根目录下的文件config.inc.php加入下面一行配置,否则网站后台还是会调用HTTP资源。/** 开启HTTPS */ define('__TYPECHO_SECURE__',true);4 评论替换由于Chrome浏览器对HTTPS要求较高,Firefox已经显示小绿锁,可是Chrome还是有警告提示,F12查看,评论表单的action地址还是HTTP,找到站点主题目录下的comments.php文件,并搜索$this->commentUrl(),将其替换为:echo str_replace("http","https",$this->commentUrl()); 最后保存。5 HTTP重定向到HTTPS但是这样HTTP的方式还是可以访问的,我们可以通过WEB服务器(Ningx)将80端口(HTTPS)重定向到443端口(HTTPS),强制全站HTTPS,请参考文档:Nginx强制https,HTTP 301重定向到HTTPS说明。6 查看效果最后清除浏览器缓存访问下自己的网站,浏览器已经显示安全的小绿锁标识,如果没有出现小绿锁,请通过浏览器F12分析是否还加载了不安全的HTTP资源。
2025年04月04日
29 阅读
0 评论
0 点赞
2025-04-03
充分利用cloudflare的缓存功能来实现网站加速——Cloudflare进阶技巧:缓存利用最大化
一 前言cloudflare我想你应该知道是什么,一家真正意义上免费无限量的CDN,至今未曾有哥们喷它的。当然,在国内的速度确实比较一般,不过这也不能怪它。CDN最大的特色,我想就是它的缓存功能,达到防攻击,减轻源服务器的压力。着重聊一聊cloudflare的缓存功能,你还在使用默认的缓存配置?这篇文章可以给你带来对cloudflare缓存的进一步了解。关于cloudflare,本站之前有介绍过如何用cloudflare给tyepecho博客加速:利用cloudflare给你的typecho加速——Typecho博客系统专用的CloudFlare缓存规则二 cloudflare默认缓存配置2.1 特点1、仅对静态资源生效,比如js、css等等完整格式:.7z .csv .GIF .MIDI .PNG .TIF .ZIP .AVI .DOC .GZ .MKV .PPT .TIFF .ZST .AVIF .DOCX .ICO .MP3 .PPTX .TTF .APK .DMG .ISO .MP4 .PS .WEBM .BIN .EJS .JAR .OGG .RAR .WEBP .BMP .EOT .JPG .OTF .SVG .WOFF .BZ2 .EPS .JPEG .PDF .SVGZ .WOFF2 .CLASS .EXE .JS .PICT .SWF .XLS .CSS .FLAC .MID .PLS .TAR.XLSX HTML2、刷新时间,一般为2小时。2.2 不足如果我想缓存html页面呢,甚至说我想缓存MP4视频格式(在这里不推荐大面积缓存视频,如果你不想被封的话)生效时间只有2小时,让人不满足,我想生效时间长一点,怎么办?三. 配置缓存的方式3.1 页面规则如果只是配置缓存的话,我不推荐使用页面规则,因为免费账号的页面规则是有3条,而且它支持的功能更全面,很明显它是十分珍贵的,不应该浪费在简单的缓存上。不足之处:页面规则的缓存支持的最长时间也不过才一个月,可以看看第二种方式,支持时间会更久。3.2 Cache Rules看一下入口位置,缓存 → Cache Rules → 创建规则,值得一提的是,它支持10条规则,足够大部分人的需求。我们再看看规则的具体配置吧亮点:规则数目支持10条 默认缓存所有 最长时间竟然高达一年之久 对于这种优点,我们没有理由不心动。四. 应用场景图床:图片这种东西,我想是不需要修改的吧,缓存它没有任何坏处。 视频:不推荐!除非你是缓存几个小视频,不大面积使用,这种是没什么问题的。 目录程序:在这里提到Alist,我使用的是这个。你可能会好奇,为什么提到它,因为我们常用的存储有OneDrive、阿里云盘等等,但是,我们都知道它并不是无限制使用。如果在短时间有大量请求,是会报429的,那不就报废了吗?但是如果我们开启本地代理,然后对下载地址进行缓存,会发生什么?大大减轻了源下载的压力,从此和限频说拜拜。 值得注意的是,只推荐缓存小文件!因为缓存太多大文件,会大大提高被封禁的风险。 静态博客:反正已经是静态博客了,直接全站缓存。4.1 如何判断缓存是否生效?如果你发现显示Hit,就代表你成功了。五. 结语cloudflare是一把利剑,我只是展示了其中的一个方面,更多功能需要你来开发。剑是死的,人是活的,发挥你的主观能动性吧。
2025年04月03日
44 阅读
0 评论
0 点赞
2025-04-03
利用cloudflare给你的typecho加速——Typecho博客系统专用的CloudFlare缓存规则
一 前言好久都没有更新Typecho博客了,最近几天V+变量测试了一套适用于Typecho博客系统的CloudFlare缓存规则,经过近一周时间的测试确定有效,并且加速效果特别突出,今天就无偿分享给大家,也算是为国内Typecho生态添砖加瓦了吧!总结下来,这套CloudFlare缓存规则带来的好处就是可以大大的缓解服务器压力,将几乎所有的静态资源都缓存在CloudFlare节点IP上,全球各地的访客都可以就近请求CloudFlare节点IP来浏览网站,由此达到网站载入速度的极致优化,再配合专属于国内的优化规则,哪怕你的服务器是境外的都可以在国内实现秒开、闪过的浏览体验。因为缓存比较全面,所以就算是有CC攻击都可以就基本无视了,让他打就是了,都打在缓存上而已,加上CloudFlare安全防护加持,甚至DDoS 攻击都可以无视了,让你的Typecho站点真正成为一个打不死的小强。注:因内容违法造成域名被墙的,谁也没办法,自求多福了。二 配置教程1 准备工作好了,不废话了,我们开始今天的分享吧,首先要做的就是将你的Typecho站点采用DNS方式接入CloudFlare,当然也可以CNAME方式接入,不受限于接入CloudFlare的方式,但从效能上来说DNS接入CloudFlare是最好的。2 配置规则这里为了素材的方便,V+变量就以Typecho博客:https://www.vvars.com 为例了,大家自己用的时候记得替换为自己的域名即可,后面就不再做提示了。为了方便大家引用规则,每张规则截图后多会附上规则表达式代码,大家利用CloudFlare创建规则处提供的【编辑表达式】复制粘贴直接使用就是了。一共是三条缓存规则,缺一不可,并且三条规则是要严格按照顺序排列生效才可以,三条规则主要实现的是:1)不缓存指定的目录(如后台、搜索查询等等)。2)登录状态以及发表过评论的不缓存。3)只要不是登录状态或者发表过评论的请求一律缓存。1)第一条规则(可以起名“不缓存”)具体规则配置如下图所示:表达式为:(starts_with(http.request.full_uri, "https://www.vvars.com/admin/")) or (starts_with(http.request.full_uri, "https://www.vvars.com/search/"))符合上述条件的一律绕过缓存回源请求,所以如下图配置:保存即可。2)第二条规则(可以起名为“登录评论不缓存”)具体规则配置如下图所示:表达式为:(starts_with(http.request.full_uri, "https://www.vvars.com/") and http.cookie contains "__typecho_authCode" and http.cookie contains "__typecho_uid") or (starts_with(http.request.full_uri, "https://www.vvars.com/") and http.cookie contains "__typecho_remember_")符合上述条件的一律绕过缓存回源请求,所以如下图配置:保存即可。这条规则其实就是通过当前Typecho站点的cookie来判断是登录状态还是发表过评论状态,一般来说这都是Typecho站点的标准,所以适用大多数的Typecho主题,如果你的Typecho主题是多用户模式的话,那可能就得根据需要来修改这条规则了,一般通过浏览器“开发者工具”调试就能获得具体的cookie,只能大家自己搞定了。也可以评论去留言咨询明月哦!3)第三条规则(可以起名为“缓存所有”)具体规则配置如下图所示:表达式为:(starts_with(http.request.full_uri, "https://www.vvars.com/") and not http.cookie contains "__typecho_authCode" and not http.cookie contains "__typecho_uid" and not http.cookie contains "__typecho_remember_") or (starts_with(http.request.full_uri, "https://www.vvars.com/usr/uploads"))这个规则跟第二条规则正好相反,凡不是登录状态或者留过言状态的请求一律缓存当前所有资源,评论留言要排除的原因就是否则会造成评论信息混乱,比如:A客户的留言信息被B客户看到并能直接发表评论。因为第三条规则是缓存所有,所以下面的缓存配置就要配置一下了,不能是【绕过缓存了】,具体配置如下图所示:CloudFlare里这个边缘TTL缓存指的就是CloudFlare节点IP上的缓存,所以这里配置的意思就是在节点IP上保留缓存资源7天的时间,除非你发布的文章需要经常修改变更,否则这个边缘TTL时间越长缓存命中率就越高,自然访客的访问速度就会一直保持非常快的体验。这个浏览器TTL指的是在客户浏览器里保留缓存多久,一般这里的时间是一定要短于边缘TTL时间的,因为边缘TTL缓存我们可以通过CloudFlare后台清除缓存来情理掉,而这个浏览器TTL缓存是在客户电脑上的,我们是不可能清理的,所以最好的办法就是让其缓存时间短一些,超过这个时间就到边缘TTL上请求更新一下,最科学。剩下的就是有关缓存的细节配置了,就不一一介绍了,大家参照上图勾选就是了,最后保存规则即可。3 效果查看三条规则保存后,最后一步还要确认一下规则顺序如上图所示,否则规则生效就会出错哦,按照这个顺序就可以让CloudFlare来智能自动的缓存网站资源了,随着访客数量的增加,CloudFlare后台【分析日志】——【流量】里大家就可以看到缓存命中情况了,如下图明月的:这个缓存命中率已经80%以上了,这还是V+变量今天调整了博客首页,多次更新了缓存,否则这个命中率可以高达90%以上,这还多亏了Typecho系统的简洁和V+变量所用的Joe主题静态化做的好,现在V+变量的这个Typecho站在CloudFlare缓存的加持下几乎是0回源请求,前端的访问速度也是达到了极致,只能说CloudFlare威武!哈哈!
2025年04月03日
45 阅读
0 评论
0 点赞
2025-03-24
Mysql升级后如何导入之前低版本数据——mysql5数据导入到mysql8
Mysql8是很多服务器使用的mysql版本,但一些运行的老网站由于内存或者之前版本问题,使用的都是老旧的5.x版本。理论上的两种升级方式:1)inplace就地升级大致思路:在一台服务器上,进行原版本升级到新版本,风险较大。如果是主从环境可以先就地升级从库,然后再升级主库,滚动方式升级。1)逻辑迁移升级大致思路:准备新的服务器,然后将数据从源库中逻辑导出,然后再导入到新的数据库中,数据量大的时候,会很慢。例如:如果是一主一从(主->从1),在有条件的情况下,可以新准备一台服务器,采用物理备份的方式将数据备份恢复到新的服务中,然后构建从库的从库(主->从1->从2),最后将从2进行inplace方式升级,然后进行业务验证,验证完成后构建主->从2。升级从1,将(主->从1)的从1断开,从1升级完成后,构建(主->从1,主->从2),此时可以升级主库,主库停止写业务,主从关系变更为(从1->从2)原从1承担写库,待主库完成升级后重新加入主从即可。本次采用就地升级的方式,即直接使用原来的data目录1. 流程概述在将MySQL 5数据库导入到MySQL 8之前,我们需要完成以下几个步骤:步骤描述1.备份MySQL 5数据库2.安装MySQL 83.迁移MySQL 5数据库4.测试迁移结果5.错误排查下面我们将逐步介绍每个步骤需要做什么,并提供相应的代码示例。2. 备份MySQL 5数据库在进行数据库迁移之前,我们需要先备份MySQL 5数据库以防止数据丢失。可以使用以下命令来备份数据库:$ mysqldump -u <username> -p<password> <database_name> > backup.sql其中,是MySQL 5数据库的用户名,是该用户的密码,<database_name>是要备份的数据库名。上述命令将会将数据库备份文件保存为backup.sql。3. 安装MySQL 8在迁移数据库之前,您需要先安装MySQL 8。根据操作系统和个人喜好选择合适的安装方式。安装完成后,请确保MySQL 8服务已经启动。4. 迁移MySQL 5数据库在将数据库从MySQL 5迁移到MySQL 8之前,我们需要创建一个新的数据库来存储迁移后的数据。可以使用以下命令在MySQL 8中创建一个新的数据库:CREATE DATABASE <new_database_name>;其中,<new_database_name>是您想要创建的新数据库的名称。接下来,我们可以使用以下命令将MySQL 5备份文件导入到MySQL 8中:$ mysql -u <username> -p<password> <new_database_name> < backup.sql这将会将备份文件中的数据导入到新的MySQL 8数据库中。5. 测试迁移结果完成数据库迁移后,我们需要测试迁移结果以确保数据正确导入。可以使用以下命令登录到MySQL 8并查看数据:$ mysql -u <username> -p<password> <new_database_name>之后,您可以执行SQL查询来验证数据是否正确导入。6. 错误排查1)sql_require_primary_key未定义打开要导入的.sql文件,找到下面代码,在后面加入set sql_require_primary_key = 0;即可SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; SET AUTOCOMMIT = 0; START TRANSACTION; SET time_zone = "+00:00";最终代码为SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; SET AUTOCOMMIT = 0; START TRANSACTION; SET time_zone = "+00:00"; set sql_require_primary_key = 0;2)错误号为1418的错误导入sql文件时会报错,函数无法创建调用存储过程或者函数以及触发器时,会出现错误号为1418的错误:解决方法:在my.ini中的[mysqld]下添加配置:log-bin-trust-function-creators=1,即可关闭。3)mysqldump还原utf8mb4数据库的时候遇到报错mysqldump: Character set 'utf8mb4' is not a compiled character set and is not specified in the '/usr/share/mysql/charsets/Index.xml' file查看mysqldump --version mysqldump Ver 10.13 Distrib 5.5.73, for debian-linux-gnu (x86_64)还是MySQL 5.5.73的很老版本,在网上下载了MySQL-5.6.17-1.el6.x86_64.rpm-bundle.tar,解压后得到MySQL-client-5.6.17-1.el6.x86_64.rpm(只安装Client也可以只获取这一个文件)。因为权限和版本兼容性的原因,需要在.sql文件中去掉SET @MYSQLDUMP_TEMP_LOG_BIN = @@SESSION.SQL_LOG_BIN; SET @@SESSION.SQL_LOG_BIN= 0; SET @@GLOBAL.GTID_PURGED='16283487-45bd-11e7-9ef2-7cd30ac3f3fe:1-299493847, 43c1dc25-dbbe-11e5-a66f-a0d3c1f93abc:1-543829194, 500866a4-e70d-11e8-802d-7cd30adb113a:1-416157186, 5fd4db5e-fc00-11e6-be1d-a0d3c1f43dd0:1-93905767, 6567f578-fecb-11e7-95aa-7cd30adb15da:1-18921416, 72617ba5-eca2-11e9-a9e9-7cd30ae00d0e:1-704516432, 83fdc286-bbba-11e7-a056-a0d3c1f8397c:1-12603194, 8d21b36e-b6e5-11e6-bb7e-a0d3c1f8397c:1-41968137, a0bcb219-2379-11e5-b4d9-a0d3c1f43dd0:1-3390044, a7f7b8d7-da4f-11ea-b7c2-506b4b4197cc:1-828737650, b667cab5-1e31-11e5-926a-a0d3c1f93abc:1-1814845499, c0e956af-d2bd-11eb-8bbb-7cd30adb159e:1-116084394, c37acaf4-1e31-11e5-926b-a0d3c1f43dd0:1-2289807, e73f79ba-2a90-11e5-a317-a0d3c1f43dd0:1-1425172325'; SET @@SESSION.SQL_LOG_BIN = @MYSQLDUMP_TEMP_LOG_BIN;这些内容,可以手工编辑,也可以用Linux命令sed来批量删除:sed -i '17,37d' /sql-backup/$i-2021-7-22.sql sed -i '/SQL_LOG_BIN/d' /sql-backup/$i-2021-7-22.sql4)备份的时候遇到表过大报错的问题:mysqldump: Error 2013: Lost connection to MySQL server during query when dumping table `kor_postcode` at row: 4646629这个表有2G多数据,1G多索引。采取的办法:RDS的MySQL参数net_read_timeout从30改为120还是不行,mysqldump添加--quick 参数还是不行,添加参数--max_allowed_packet=2000M也还是不行,又按照这篇中改了--compress --skip-lock-tables --single-transaction --skip-extended-insert等都还是不行,最后是修改了ECS上/etc/my.cnf,添加两行:[client] max_allowed_packet=1024M再次运行mysqldump就可以了。5)还原的时候遇到主键等重复的报错:Warning: Using a password on the command line interface can be insecure. ERROR 1062 (23000) at line 4410: Duplicate entry 'pass' for key 'PRIMARY'这个问题在search_total和其它表都有可能出现,特别是一些英文以外的字符,有可能是与字符集有关,但也没有找到具体解决办法。尝试手工去打开.sql文件,找到对应的行、对应的字符去修改或者删除,但又是太多了不好找,而且vim打开、查找都非常慢。后来找了一些资料,干脆把这种重复的覆盖或者忽略,办法是在mysqldump命令中添加--replace或者--insert-ignore参数。实测这样导出的.sql文件是可以用mysql命令正常导入的。最后的语句是这样的:mysqldump -h hostname -u username -ppassword --opt --default-character-set=utf8mb4 --set-gtid-purged=OFF --replace database > database.sql mysql -h hostname -u username -ppassword -f -D database < database.sql7.结论通过按照上述步骤,您将能够成功将MySQL 5数据库导入到MySQL 8中。请确保在执行每个步骤时使用正确的命令和参数。尽管本文提供了一些基本的代码示例,但您可能还需要根据具体情况进行一些调整和修改。如果在迁移过程中遇到任何问题,请查阅MySQL官方文档或寻求专业开发者的帮助。
2025年03月24日
47 阅读
0 评论
0 点赞
2025-03-23
修改phpmyadmin配置mysql端口号以及连接到远程Mysql数据库
一 前言当前使用phpmyadmin版本号为phpMyAdmin- 4.9.11。mysql默认端口3306,如果你当前mysql不是3306或者你想远程连接类似aiven这种远程mysql数据库,则如何通过phpmyadmin连接呢?网上文章都是要修改phpmyadmin目录下libraries下配置文件config.default.php文件的i]['port'] = ''参数,但是修改后并没有什么用,不知道是我phpmyadmin版本的问题还是方法的问题。二 正确方法在phpmyadmin目录下1 编辑phpmyadmin目录下的config.inc.phpvim /home/wwwroot/default/phpmyadmin/config.inc.php2编辑config.inc.php文件找到$cfg['Servers'][$i]['host']的位置/* Authentication type */ $cfg['Servers'][$i]['auth_type'] = 'cookie'; /* Server parameters */ $cfg['Servers'][$i]['host'] = 'localhost'; $cfg['Servers'][$i]['connect_type'] = 'tcp'; $cfg['Servers'][$i]['compress'] = false; /* Select mysql if your server does not have mysqli */ $cfg['Servers'][$i]['extension'] = 'mysqli'; $cfg['Servers'][$i]['AllowNoPassword'] = false;3更改端口号更改$cfg['Servers'][$i]['host']的值为localhost:3307,此处3307为你的mysql端口号,此时打开phpmyadmin默认就是连接mysql3307的端口了,至此教程结束。$cfg['Servers'][$i]['host'] = 'localhost:3307';如果你还需要连接aiven这种远程Mysql数据库,请看第4步。4 替换为aiven等远程Mysql数据库如果你想使用远程Mysql数据库,比如aiven提供的免费Mysql数据库,只需要将$cfg['Servers'][$i]['host'] 的值改为Aiven后台提供的远程地址即可,记得要把端口号及后面的代码都写完整。$cfg['Servers'][$i]['host'] = 'mysql-umami-betanet-test.k.aivencloud.com:27546/defaultdb?ssl-mode=REQUIRED';
2025年03月23日
75 阅读
1 评论
0 点赞
1
2
...
10