店小秘绑定问题 需要把店铺添加到店小秘,按照店小秘的教程《店铺授权—WooCommerce(Wooc)》进行操作,最后发现还是没有授权成功,总是报一个错误: 网络连接异常,请稍后重试!com.fasterxml.jackson.core.JsonParseException: Unexpected character (‘<‘ (code 60)): expected a valid value (JSON String, Number, Array, Object or token ‘null’, ‘true’ or ‘false’) at [Source: (String)””; line: 1, column: 2] 解决步骤01: 后来发现,原来是WordPress后台设置的固定链接,还是POST name格式,需要改为day and time格式的就授权成功了。 解决步骤02: 清缓存,清掉后端的Memcached缓存,清掉CloudFlare的缓存。缓存有可能会导致请求到不了店小秘的后端插件。 调试: 店小秘官网提到了一个调试的方法: 将Woocommerce授权信息按此格式拼接,看能不能正常访问,如果可以,按下面步骤操作,如果不行,就无法授权【店铺链接】+【/dianxiaomi-api/v1/orders?key=】+【秘钥】+【&updated_at_min=2021-01-01T19:10:00Z&page=1&per_page=50】… Continue Reading →
SMTP问题概述 昨天群里的小伙伴遇到一个问题,使用Linode的VPS搭建的WordPress网站,然后询盘邮件接收不到,最后有个小伙伴帮忙给解决了,给Linode客服发送邮件,请Linode开启了SMTP端口。 常用一些Email端口有25、587、465等,请Linode客服开启了这些端口以后,就可以正常接收询盘邮件了。然后小伙伴们就以为这个问题是需要这么解决的,当时我就提出了疑问,虽然没有详细研究过我们现在这种用法,但一直感觉哪里是不对的,我们都使用了zoho.com的邮件服务器了,为啥需要开自己的VPS端口? 外贸独立站的常规用法 现在介绍一下我们一般如何使用邮件服务器,因为我们搭建的是外贸独立站,不管是B2B,还是B2C的独立站,都是一个正规的企业独立站,因为对外来说,我们就是一个企业,那么作为一个企业,使用的邮箱不能是[email protected]这样的吧,这样感觉不正是,应该是[email protected],或者[email protected],或者[email protected]。 其中contact或者support这个属于通用名称,比如我们看到一些公司的企业邮箱也会用这个当用户名。ensky就是一个用户个人名字了。关键是后面的ensky.tech,这个是我自己的域名,假如我这是一个独立站的话,使用[email protected]这样的域名邮箱就会显的比较正式。 在外贸独立站配置企业邮箱的方法 一般有两种方法可以用 方法1:直接使用wp_mail()函数发送邮件 wp_mail函数介绍:https://developer.wordpress.org/reference/functions/wp_mail/ 这个实际上使用的就是VPS自身作为一个邮局,我们发送邮件的时候走的就是VPS自己,就是等于你申请的这个VPS既用来建了一个独立站,又用来作为了一个”邮件服务器“,因为也可以用它来收发邮件。 这个时候就需要开启本机的SMTP一类的端口,因为邮件服务器默认会使用这些端口,但你这些端口没有的打开,邮件服务器当然不工作了。就像是我们平常进超市的时候都是走正门,后门是搬运货物用的。这个正门就像一个端口,那超市正门关着,我们肯定进不去了。 方法2:使用SMTP插件 比如比较出名的一个插件”WP Mail SMTP by WPForms“,官网地址https://wordpress.org/plugins/wp-mail-smtp/ 这个插件会提供好多的配置,比如经常用的有zoho.com,把zoho作为一个SMTP服务器使用,那么我们就可以将zoho.com配置到”WP Mail SMTP by WPForms“中,这个时候使用的实际上是zoho.com提供的邮件服务,并不是我们自己VPS的邮件服务。 所以如果使用zoho.com的时候是不需要开启本机的SMTP端口的。那么我们WordPress发送邮件的时候,是怎么和zoho.com通信的呢?我看了一下这个插件的介绍,它写的是通过API的方式通信的。 介绍: HOW DOES WP MAIL SMTP WORK? WP Mail SMTP plugin easily resolves email delivery problems… Continue Reading →
今天有校友咨询如何做外贸独立站,整理一个流程放博客中。 搭建独立站网站 首先需要创建一个独立站,独立站并不像亚马逊,Ebay等,有一个平台可以让你卖货。独立站就是自己的网站,自己创建一个网站,然后在自己的网站上卖货。 我们来看一个独立站的示例:https://shoptimizerdemo.commercegurus.com/,这是一个比较经典的外贸独立站模板,shoptimizer模板。这虽然是一个Demo模板,但是该有的模块都有了,我们独立站就需要创建一个像这样的网站。 SAAS建站 独立站建站,并不一定要自己去搭建一个网站,如果有人提供了一些平台,就像创建博客一样的去做网站,是不是也可以达到想要的效果,比较出名的就是Shopify了,网址https://www.shopify.com/,这个比较简单,就是注册一个账号,然后可以开通自己的一个网站。 自建站 还有一个方法就是自己做一个网站,自建站可以使用WordPress+Woocommerce的方式搭建,这两个程序都是开源的,可以免费商用。 自己购买服务器搭建的方法 这个需要自己购买VPS然后安装LNMP,然后再安装WordPress+Woocommerce。 详细的教程看下面的这篇文章,详细讲解了VPS如何安装WordPress和Woocommerce,以及如何做性能优化。 服务器托管的方法 使用WordPress的时候,我们还可以不需要去管服务器,可以让别人帮我们管理,我们只负责WordPress的修改就可以了,这个时候就可以找服务器托管的方式,比如cloudways,这是一个服务器托管商,托管的服务器也是比较出名的一些VPS,比如说Linode。这个和自己搭建服务器相比,少了一个搭建服务器的过程,服务器的速度、安全都不需要自己操心了,但是价格方面当然会贵一些。 WebHosting的方法 还有一个方法就是WebHosting,比较出名的有SiteGround,类似于服务器托管的方式,但还是有区别的,价格会更加便宜一点,但是性能会更差一些。 购买域名 不论你选择何种方式搭建网站,都需要一个自己的域名,如果使用服务商提供的二级域名,是非常不友好的,而且普通的域名并不贵,.com的域名是8美金多一年。 网站装修 政策文件 网站搭建好以后,免不了最基础的装修,比如一些该有的模块必须得有,下面这两个模块必须得有: Privacy PolicyTerms and Conditions 这两个模块是政策性的,有的地方会要求有这两个,最好是创建好,找一个插件自动生成就可以。 一些其余模块可以参考上面我列出来的Shoptimizer主题的Demo。 企业邮箱 对于一个独立站来说,拥有一个正规的企业邮箱会显的比较正式,建议使用zoho.com作为企业邮箱。如果想用国内的,可以看看阿里企业邮箱,不建议使用腾讯企业邮箱(遇到几个外贸朋友都说有问题)。 申请收单 我们卖货是需要向客户收钱的,那么使用什么方式呢? 卖货收钱的这个方式叫收单,亚马逊卖货的那种方式叫收款。对于收单来说,PayPal是最好用的了,还有一些信用卡收单公司。国外比较出名的是Stripe信用卡收单。国内也有信用卡收单公司,比如钱海,PACYPAY,WinToPay,asiabill,GolPay,连连支付,亚洲支付等。国内的信用卡收单公司都是收取开户费用的,而且每个月还有维护费用。 但是Stripe就不收取开户费用,但是Stripe对于一些特别产品,比如黑五产品,是不允许的。 申请PayPal 如果做普货的话,不违反PayPal政策的前提下,使用PayPal是一个不错的选择。申请PayPal分为个人方式和企业方式,如果想长久做呢,建议使用企业方式申请,而且个人方式绑定各个平台的时候很麻烦。 企业方式申请PayPal的话,需要一个工商营业执照,国内的个体工商户也是可以申请PayPal企业账户的,对于PayPal来说只认识”工商营业执照“,不会区分你是个体户还是有限责任公司。 所以刚开始起步的时候可以申请一个个体工商户,成本很低,淘宝上花一两百块钱就能申请好。 产品上传 对于你想卖的产品,只要你有货就可以卖。不管这个货物是哪里的,只要合法合规都可以。比如你在国内的淘宝买来的,拼多多买来的,都可以卖到国外去。 如果你的产品是国内进货的,那么就需要自发货,就是用户下单以后,你需要自己发国际快递给用户。 还有一个方式不需要自发货,就是一件代发的方式,比较出名的地方是https://www.aliexpress.com/,不管是使用WordPress还是Shopify都有插件从速卖通一件导入产品,然后当用户下单以后,可以一件下单。付款的时候使用PayPal或者外币信用卡即可。… Continue Reading →
我们在做网站的时候,有时候会用到TOC,它的全称是什么呢?table of content TOC有什么用呢? 可以提取一个目录放到文章的开头,有利于读者非常容易的点击对应的段落。打个比方说,有一篇文章是讲解如何种树,这篇文章有一万字,在第8000字到第9000字的时候,讲解如何施肥。我本来就是想进来看看如何施肥的,但是由于网页有10000字,如果没有目录,我就需要一点点的看,直到在第8000字的时候看到了关于如何施肥的文章。 有同学可能会讲,我们写文章都会写标题啊,会有H1标题,比如第一个标题是“种树的时间?”,第二个标题是“什么季节适合种什么树?”,第N个标题是“种树如何施肥”,用户可以看这个标题来寻找内容。这个逻辑没有毛病,但是一篇文章一万字,即使有标题,是不是也需要不断的用鼠标往下滑动才能翻到对应的段落? 假如我们将各个标题整理一下放到文章的开头,或者悬浮在网页两侧的话,用户只要点击任意一个标题就能到达对应的位置,是不是用户体验更好? 想达到这种效果,就可以利用TOC,实际上TOC是一个术语,并不是指插件。但是我们使用WordPress搭建网站的时候,只要去搜TOC这三个英文字母,就会找到实现TOC所用的插件。 如何实现TOC? 直接在WordPress后台的插件库中搜索“TOC”,就可以看到好多插件。或者直接搜索“table of contents plus”也可以,这个插件是比较出名的一个插件了。 如何配置TOC? 插件安装完成以后,会有一个默认配置。所以需要检查一下自己期望的页面是否会生成TOC。比如期望POST页面生成TOC,Page页面不生成TOC。 一般情况下文章都会以POST的形式发表,所以POST页面是需要生成TOC了。不过如果需要做一个特殊的Page,那么Page页面也需要生成TOC。 来看一下我博客中使用的TOC的配置: Position:决定了TOC显示在网页哪个位置 Show When:也就是标题超过几个的时候才会显示TOC,比如我我现在设置的是4,也就是只有H标题达到4个或者更多的时候才会有TOC目录的显示。 Heading text:就是TOC目录的一个标题,可以不用改,因为好多网站也都在使用默认的名字。 看一下Advanced的这个配置,都没有改动过,都是默认配置 其中要注意“Hyphenate”这个配置,默认是下划线,而不是“-”这种中联线,如果在意的话可以更改一下,不过好多个TOC插件默认都是使用的下划线。 但实际上我们现在用WordPress搭建好的网站,使用的URL一般都是中横线的,比如我们看看Ahrefs这篇文章的锚链接:https://ahrefs.com/blog/content-hub/#what-are-content-hubs,对于what-are-content-hubs都是中横线,而不是下划线。不过Ahrefs这篇文章内的目录,不是TOC插件做出来的。 TOC有什么效果呢? 目录效果 下面我们来看看TOC插件安装以后,会有什么效果? 如下图所示,这是我博客另一篇文章的一个TOC效果,红框中的是TOC生成的,就是一个目录效果。当用户点击“研究代码”的时候,就会跳到对应的段落。 锚链接效果 TOC除了上述的一个目录效果,还有啥效果呢?还有一个锚链接的效果,为什么我们点击目录会进入对应的段落,就是因为锚链接起的作用。 比如这个链接:https://ensky.tech/is-toc-different-with-anchor-link/#i-2 我们看到最后面有一个#i-2,这个#是锚链接的标识,然后“i-2″是一个ID,实际上是HTML代码的作用。只要知道这个可以作为一个锚链接就可以了。 如果一篇文章有了TOC,那么可能就会有好几个锚链接,当我们在其余文章引用这篇文章的时候,就可以使用这个锚链接,比如使用https://ensky.tech/is-toc-different-with-anchor-link/#i-2,而不是使用https://ensky.tech/is-toc-different-with-anchor-link/,如果你使用的是”https://ensky.tech/is-toc-different-with-anchor-link/#i-2“,这样就会进入这个网页的第一段。 如果使用的是”https://ensky.tech/is-toc-different-with-anchor-link/#i-2“,那么就会进入这个网页的后半部分”研究代码“这个段落。所以说对于内链的使用上,我们使用TOC的话,可以更好的定位到相关内容,对于内容相关性上会比较有利。 还有一个小点需要注意的就是,我刚才借用的TOC,锚链接是i-2,这个”i-2″并不是友好型的URL,如果友好型的话,应该是“research-code”,因为中文是”研究代码“。这就是因为中文的关系,TOC插件识别不好,搞了一个”i-2″出来,如果是英文的话,会直接使用标题的,比如英文是research code,那么TOC多数时候是#research-code,这样的URL就友好多了,Google看到了也容易认识这个URL是做啥用的。 TOC和HTML代码中的锚链接有什么关系? 关于这个TOC与锚链接的作用,我专门写过一篇文章来分析。可以读一下这篇文章https://ensky.tech/is-toc-different-with-anchor-link/ TOC插件是否可以互换?… Continue Reading →
一个CloudFlare提速的插件 步骤#01:安装WP Cloudflare Super Page Cache 步骤:进入WordPress后台,在安装插件的地方搜索”WP Cloudflare Super Page Cache“ 官网地址:https://wordpress.org/plugins/wp-cloudflare-page-cache/ 步骤#02:设置WP Cloudflare Super Page Cache WordPress后台——>Setting——>找到WP Cloudflare Super Page Cache 配置方式01:使用API Key的方式 这个需要输入CloudFlare的邮箱地址和密码 配置方式02:使用API Token的方式 这个只需要输入邮箱地址和一个Token,不需要密码。 首先登录CloudFlare,点击”我的个人资料“。 然后点击左侧的”API令牌“ 点击”创建令牌“ 选择自定义令牌,在这个地方最好把语言改为英文,然后如下步骤: 创建完以后,会看到如下图所示的一个Token,然后将这个Token复制到插件中,就可以了。 将Token放到插件中以后,有一个Enable Cache的操作,不要忘记了。 如何检测是否配置成功 浏览器访问自己的网站,使用F12去查看。看到cf-cache-status:hit就表示成功了。 x-wp-cf-super-cache:cache x-wp-cf-super-cache-active:1 上面这两个值表示正常缓存… Continue Reading →
群里讨论问题,有个大佬说TOC与一般的锚链接是不一样的。来研究研究它。 首选我安装的是“Table of Contents Plus”,官网地址:https://wordpress.org/plugins/table-of-contents-plus/,这个插件的安装次数已经有300,000+,已经具有标杆价值了。 首先随便创建一篇文章 注意:文章到多做几个H2的标题,至少4个,看TOC的默认设置。 查看TOC的效果 现在TOC的效果已经出来了,可以看到标题了。 研究代码 打开网页,点击查看源文件,然后搜索how are you,就能找到我们所需要的代码了。 然后我们看下面的代码,分为两部分: 第一部分:是一个div,然后id=toc_container,class是no_bullets 第二部分:div结束以后,是一些H2标签和P标签。 我们来研究研究上述两部分。 首先看第二部分 是H2和P标签,这个无任何特殊不同,和普通格式是一样的。不过多一个span,其中span中有一个id,这个id是定位使用的,没有“google SEO”的技术意义。 span标签的解释: id标签是定位使用的,我们普通的锚链接也需要使用id来定位。 我们来看看第一部分代码: 第一部分代码中有一部分是锚链接, 比如这行代码,就是一个锚链接的作用,只是多了一个span。 <a href=”#How_do_you_do”><span class=”toc_number toc_depth_1″>3</span> How do you do?</ 在这部分代码中,一些div, p, span, ul, li等标签都没有特殊意义,就是起一个普通HTML标签的作用,但还有一些class,我们看看里面都有啥。其中使用到了4个class: no_bulletstoc_titletoc_numbertoc_depth_1 其中都是格式控制,无特殊不同… Continue Reading →
最近一个朋友的网站遇到一个问题,记录一下解决问题的经过。 他的网站突然无法全屏了,处于一个Boxed的状态,就是elementor配置Page的时候的一个Boxed状态。但由于网站正在使用,安装了40多个插件,不好直接排查。 然后我就搭了一个测试环境,用测试环境去调试。所有就有了这篇迁移VPS和换域名的过程https://ensky.tech/migrate-website-and-change-domain/,实际上不迁移,在他的VPS上搭一个测试环境就可以了,只换个域名就可以。 但是他的网站很脆弱,没做啥就突然这样了,没敢用,还是用我的环境比较放心。 测试环境搭建好以后,首先一步步的禁用插件,然后刷新前端观看效果。直到禁用到Kirki Customizer Framework这个插件的时候,发现可以全屏了,但是颜色都变了,网站之前设计的颜色没有了。因为这个插件是Shoptimizer的一个必备插件。 然后我就想是不是Kirki Customizer Framework被升级了呢?果然如此,与我网站正在用的对比了对比,版本比我的高。然后我就把我的插件打压缩包,覆盖了测试环境下的Kirki Customizer Framework,然后测试环境就正常了。 随之,又把生产环境的替换了一下,他的网站就正常了。 切记:以后不要勾选Auto-Update,插件自动更新可能会更出莫名其妙的问题。
如何从一个VPS迁移到另一个VPS,并且更换域名。 步骤#01:新域名配置DNS服务器,配置一个A记录指向新的VPS的IP地址。 步骤#02:将旧网站的数据打包,使用宝塔的备份功能。 那么备份的文件哪里去了呢? 备份的文件分为两部分: 1:网站源文件,源代码,HTML,PHP文件一类,这些文件在根目录/www/backup/site里面。 2:备份的数据库文件,位于:根目录/www/backup/database 找到最新的一个备份,然后将这两个文件下载好,上传到新的VPS中。 步骤#03:上传旧网站的备份到新的VPS 可以先在旧的VPS中将网站文件和数据库文件下载到本地,然后上传到新的VPS。但是如果VPS在国外,比如在美国的话,下载速度可能比较快,但上传你就会比较慢。 这个时候,我们就可以使用一个新的指令wget,直接从VPS到VPS的复制。 例如: wget https://ensky.tech/wordpress-3.1-zh_CN.zip 我们只需要将我们要复制的文件放到网站的根目录去,就可以这样复制了。比如我的备份文件是wordpress-3.1-zh_CN.zip,然后我的网站是ensky.tech。那么将wordpress-3.1-zh_CN.zip文件复制到网站的根目录中,就可以直接使用wget https://ensky.tech/wordpress-3.1-zh_CN.zip来复制文件了。 步骤#04:宝塔后台创建新的网站 就像创建新网站一样去创建,域名使用新的域名,数据库可以创建一个新的。 步骤05:将旧网站的HTML等文件放到新网站的文件夹中 将我们之前打包的网站文件(HTML、PHP文件一类),复制到如下目录中,然后解压缩。 需要删除自带的404.html和index.html 解压缩的时候需要保持文件结构和之前的旧网站一致 解压缩后: 解压以后需要保证wp-config.php这个文件处于根目录中。如图所示: 步骤#06:恢复数据库文件 菜单:宝塔后台——数据库——找到自己创建的数据库,然后点击导入,选择本地上传的方式,把旧网站的数据库上传上去。 然后点击导入,导入刚才上传的文件。 步骤#07:网站配置 比如原来网站使用了SSL,那么先把SSL开启。 还有伪静态,如果以前开启了,那么也把伪静态打开。 例如: 步骤#08:更新WP-Config.php文件的数据库名字和密码 在网站根目录中,找到wp-config.php文件,就能看到文件中有如下三行代码,这个需要替换为新的。也就是我们刚开始创建网站的时候的用户名和密码。 define( ‘DB_NAME’, ‘ensky.tech’ ); define( ‘DB_USER’, ‘ensky.tech’ ); define(… Continue Reading →
如何在Vultr VPS中安装宝塔,以及安装LNMP和如何安装WordPress? 步骤#01:登录Vultr后台 链接:https://my.vultr.com 步骤#02:选择服务器与地区 点击上一步骤中的加号,即可进入服务器选择界面。选择High Frequency. 地区选择Los Angeles. 步骤#03:选择CentOS系统 因为宝塔对于CentOS的兼容性最好,需要安装7.x版本,但是有一个SELinux的区别。 在这里,我们不安装SELInux,生产环境中,好多都不会开启。 set hostname 步骤#04:CentOS系统安装中 步骤#05:获取Instance管理信息 点击Instance右侧的三个点,然后点击Server Details 步骤#06:获取Server Information 步骤#07:SSH登录VPS,安装宝塔 SSH终端直接登录的话: SSH登录指令:ssh [email protected] 把root改为上图中显示的username,8.8.8.8改为真正的IP Address 然后输入密码。 或者可以适应一些XShell工具来登录服务器 步骤#08:安装宝塔 CenOS安装命令:yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh… Continue Reading →
步骤#01:进入Firebase官网 官网地址: https://firebase.google.com/ 然后点击Create Project 步骤#02:填写一个Project Name 填入一个项目名字,名字随便起 步骤#03:集成Google Analytics 直接默认就可以,会创建一个GA 步骤#04:GA账号创建中 步骤#05:进入首页选择Hosting 步骤#06:Install Firebase CLI 步骤#07:进入本机或者VPS安装firebase CLI 步骤#08:Initialize your project 步骤#09:登录Goolge.com然后授权Firebase 如果使用的是VPS,不需要使用上图给出的指令。如果是本机安装或者VPS是带有桌面系统的,可以使用指令firebase login. 不带GUI的VPS使用指令:firebase login –no-localhost 输入这个指令以后,会弹出一串URL,然后将URL复制到浏览器中,本机浏览器就可以,选择google账户登录,然后授权以后,会得到一串代码。将代码复制到命令行中。就会出现登录成功的提示。 步骤#10:执行Firebase init 输入命令:firebase init hosting –debug what do you wang to use… Continue Reading →
© 2025 ensky的跨境笔记 — Powered by WordPress
Theme by Anders Noren — Up ↑