修改Wordpress上传目录的方法-插件版,数据库版,动手版,进阶版

插件版
下载插件 WP Original Media Path
https://wordpress.org/plugins/wp-original-media-path/

这基本上是最无脑的版本了。即插即用。缺点是得在初始化wordpress的时候就配置好,否则还得事后手动复制原始上传目录到指定位置。

数据库版
用phpmyadmin打开wordpress所在数据库,找到表:wp-options-> option_id:57 or option_name:upload_url_path ,直接修改对应的option_value即可。注意,必须是完整路径,包含 http:// or https://
而插件版也只是用插件的方式修改了这个值。所以对于有强迫症不喜欢搞一大堆插件的患者而言,这是不错的选择。我也该吃药了。

动手版
在Wordpress根目录下找到 wp-config.php ,添加如下代码

define('UPLOADS', 'upload');

注意:
1,动手版优先级高于插件版,也就是说,在wp-config.php,则插件无法生效;
2,不论哪种方式,该目录必须位于 wordpress 安装目录下
3,如果需要经常更改上传目录(防止盗链),那就总得迁移上传目录,所以,还是手动版比插件版和数据库版更加方便

更改目录之后要做什么?
如果之前已经有上传过的媒体文件,需要将原始上传目录复制到上述方法指定的位置去。
如果出现无法写入的问题,要注意修改读写权限

进阶版
每个人都有不一样的想法和需求,那我来说,我经常会对wordpress系统做一些自定义,与此同时,wordpress在运营过程中又上传了大量的媒体。这个时候,要对wordpress做自己的版本控制,而上传的媒体文件也需要另外经常备份。所以如果有办法能够将wordpress系统和上传的文件彻底分开就完美了。
办法有很多,下面分享我的

用linux的ln命令,将上传目录硬链接到服务器上任意物理位置

sudo ln -s [目标实际目录] [wordpress中定义的上传路径]

这样的好处是,我们每次只需要每次修改 wp-config.php 和运行上面的命令,就可以实现wordpress中图片视频文件的更改网址。有效实现防盗链的同时,又不需要每次迁移真实上传目录。

更改目录后需要特别注意
在新建文章的时候,如果是直接添加媒体,会出现一些BUG。影响到视频文件的目录更改。
当直接添加媒体到文章内部的时候,媒体文件的URL是已经被完整写入正文中的。而在前端展示的时候,图片文件的URL会被替换为更改后的上传目录,所以可以正常访问,视频文件则不会。
正如上面所说的,因为URL是被完整写入正文的,所以在后台中编辑正文的时候,会出现图片和视频都无法显示的情况。
以上是wordpress目前的两个BUG,当前版本4.9.1,希望以后的版本可以修正。

当前的解决办法,就是在"添加媒体"的时候,图片文件,选择“创建相册”来添加。 视频文件,选择“创建视频播放列表”。通过这种办法,不论前台后台,均可正常显示。

Wordpress发布文章的时候 “形式”选项哪里去了?

Wordpress有很多维度可以给一篇文章进行分类:分类目录,标签,文章/页面,自定义栏目。

还有一个时有时无,飘忽不定的“形式”分类维度,可以让我们给的主体内容进行固定类别的分类,对于运营一个内容形式较为丰富的站点非常有帮助。形式分类如下: 标准 日志 图像 视频 引语 链接 相册 状态 音频 聊天
见下图
wordpress.format.png

为什么说它飘忽不定呢,是因为它不同于最开始给出的分类,是wordpress系统默认存在的分类维度,而是根据你当前的外观主题是否支持而定的。

对于支持“形式”分类的外观主题,一般情况下,会在自定义菜单中出现“形式”的菜单选择。所以在选择wordpress外观主题的时候,又多了一个考虑因素。

PS:如果你的主题是支持形式的,但发布文章的时候,还是没有显示该选项,可以在页面右上角“帮助”,傍边的“显示选项”中看看是否在“形式”前有打钩。

Wordpress中无法修改WordPress地址和站点地址的问题修复

某些情况下,安装好的Wordpress会出现无法更改 "WordPress地址(URL)" 和 “站点地址(URL)” 两个输入框的现象,如下图

wordpress.siteurl.greyout.png

解决办法如下
1,请千方百计,各显神通的登陆服务器找到Wordpress安装的根目录;
2,打开文件 wp-config.php
3,找到并删除,或者注释掉下面的两行代码

define('WP_SITEURL', 'http://' . $_SERVER['HTTP_HOST'] . '/');
define('WP_HOME', 'http://' . $_SERVER['HTTP_HOST'] . '/');

4,保存关闭,并刷新Wordpress控制面板
5,哒哒,看下图
wordpress.siteurl.greyout.fixed.png

  • 如果在上述修改后出现了无法打开网站的问题,请检查数据库 Mysql
    Database: wp_options: option_name: siteurl

Database: wp_options: option_name: home
修改为当前网址,刷新网站即可

用 Wordpress 的插件来加持 Typecho

我喜欢 Typecho 的清爽界面。我也同时管理着多个 Wordpress 站点。相比Wordpress无所不能的插件,以及可以多站点统一管理的Jetpack,Typecho 每每让我感觉有那么些遗憾和不便。

实际的运维过程中,我想到一些点子来在 Typecho 下享用 Wordpress 的插件和便利。实现以下功能
1,免费且自动更新的SSL证书
2,实现Jetpack站点统计功能
3,在Wordpress.com中将Typecho与其它Wordpress站点一并管理。

做法:
首先,在Typecho下安装一个Wordpress。 我们只是需要利用Wordpress现成的Plugin,所以这个wordpress安装在哪个目录并不重要。并且注意,安装的时候,选择不要被搜索引擎发现。毕竟由于Wordpress庞大的安装量,虎视眈眈盯着它漏洞的攻击者很多,一个不经常使用的wordpress最好还是减少被发现的机会总是没有坏处的。

接下来,我们需要几个插件Screen Shot 2017-12-06 at 20.44.58.png

Jetpack by WordPress.com
熟悉Wordpress的朋友对这个插件一定很熟悉了。这个插件可以实现站点的统计功能,并且可以将该wordpress托管到wordpress.com集中管理。由于用不到这个插件的其他功能,所以可以在设置里将全部关闭,只保留 Security 即可。
Server IP & Memory Usage Display
可以查看当前wordpress占用服务器内存情况,如果服务器配置的好,应该只需要10M以下的内存占用就够了。如果内存开支很大,说明服务器的Apache或者PHP版本太低了,可以考虑升级以下。
WP Encrypt
免费给站点安装SSL证书,免费的SSL只有三个月有效期,所以需要到时候更新。还好这个插件支持自动更新,但偶尔会有小问题,可以参考这篇文章: https://84361749.com/post/wordpress-free-ssl.html
我们借用了SSL是加密整个域名的特点,所以将wordpress防止在域名下的某个目录,这样,就获得了整个域名的SSL。
WP Maintenance Mode
用这个插件可以临时将Wordpress关闭。反正用不到,就让它一直维护就好。

为了实现在Wordpress.com查看Typecho的受访统计,我们还得做点Hacking.
在安装并激活插件 Jetpack by WordPress.com 但未安装或者未启用 WP Maintenance Mode
的情况下,访问刚刚安装好的Wordpress站点,查看源文件,在代码最底部,会出现类似下面的两行HTML

<script type='text/javascript' src='https://stats.wp.com/e-XX.js' async defer></script>
<script type='text/javascript'>_stq=window._stq||[];_stq.push(['view',{v:'ext',j:'1:5.6',blog:'XX',post:'YY',tz:'-8',srv:'DOMAIN'}]);_stq.push(['clickTrackerInit','XX','YY']);</script>

DOMAIN 是你的域名
XX 是Jetpack在wordpress.com的ID,每个网站都不同;
YY 是一串数字,是当前wordpress页面ID。如果你希望得到Typecho的页面ID,可以用下面这个代码代替

<?php $this->cid();?>

这个办法并不完美,比如即使登录了wordpress也无法过滤掉自己的访问记录。另外还有因为Jetpack无法识别Typecho的页面ID,所以在wordpress.com的统计页面中会出现下面的这种情况。
Screen Shot 2017-12-06 at 21.10.26.png

目前就这么多,如果你在运营过程中发现有什么好点子或者思路,欢迎和我分享一下。

在线繁简转换工具

网上各类的繁简转化工具,多少是用 Javascript 的简单脚本做了繁体汉字和简体字之间的对应关系,偶尔使用没关系。可是,繁简转化还真不完全是把那些看着笔画多的汉字,变得笔画少一些。

比如,乾和干,就完全不是能够直接做对应转化的。
简体汉字里,也有乾这个字,当做乾坤的Qian字用。
正体中文呢,也有干字,当做不相干的Gan字用。
所以,繁体中的"乾燥","你幹什麼不干我事",一般工具无法对应做好相应的字字对应转化。

下面这款工具就在一般的繁简转化基础上,做了很多语义识别,明显强大很多。还能正确识别大陆和台湾不同语境下常用称谓的识别。比如"軟體"就不会简单粗暴的转化成"软体",而是"软件"。

http://opencc.byvoid.com

尽管这个工具功能性上,绝非其它一众简单的JS工具所能相比的。但是,其在操作界面的用户体验上,还真是有很大可以提升的空间。

跑步的好处

实在点说,我们来慢慢的总结一些跑步的好处

1,对心脏有好处
就算每天只慢跑5分钟,都可以极大的减少心血管疾病,反正根据各种研究表明吧,经常跑步的人,死于心脏问题的概率远远小于不跑步的。还有,根据这个人exercise physiologist Greg Justice, founder of AYC Health & Fitness in Kansas City 所说,跑步之后,其它时间你的心率会减慢(这应该说的是静息心率吧),你的心脏在跑步之后的休息时间,也可以得到比平日不跑步的时候,更多的休息。
我觉得这个好处,应该不只是说跑步,而是只要做有氧呼吸,都会对心脏有好处的。

2,会感觉很爽
当跑步的时候,有两种真实存在的物质会从你的大脑里分泌出来,endorphins和endocannabinoids。不要去翻译了,翻译了也不见得明白这是啥东西,反正就是某种和大麻里的THC一样会让你感觉很爽的化学物质。所以说这个是真实存在的爽,不是心理上的。
有人说能治抑郁症,我相信,应该是这个理由了。
也许跑步之后心情会好一些是这个引起的,但我跑步的时候,真心很痛苦。

3,对关节有好处
反正就是又有一项研究表明,跑步比走路对关节的好处更大,这是不是说,我们该戒掉相信科学研究成果了?
言归正传,自己感觉着吧,跑步肯定比每天一动不动的宅在家里对膝关节好一些,毕竟有些器官不经常用会生锈的。但如果非得把减少膝关节炎症做为跑步的好处,我是不太能接收的。

总结这些是为了让自己更有动力坚持跑下去。所以那些似是而非,答非所问的跑步好处我就不总结在这里了。

Half&Half 到底是什么?对应国内的乳制品是什么?

half-half.jpg

最早知道Halk&Half这种东西是在星巴克,上就是上面这样的瓶子,反正是免费的,所以不客气的每次倒很多进咖啡里。确实会让咖啡的口感丝滑不少。明明就是牛奶,但是在超市的牛奶货架上,却不和 Fat Free, 1%, 2%, Whole Milk摆在一起售卖。所以家里调的咖啡,无论怎么加牛奶,都不会有星巴克里Halk&Half的口感。

当然,你还是可以从牛奶货架隔壁的架子上找到Half&Half卖的,比如下面这个在Costco卖的Half&Half
large_25d33c7b-e490-471c-8a34-7b2d8387885d.jpg

尽管Half&Half直接喝起来的口感和牛奶没有太大区别,为什么它不和牛奶一起卖呢?并且一般情况下,Half&Half的分量都不会像牛奶的1加仑那么大,总是小小的一个。那么它到底和牛奶有什么区别呢?在国内该叫它什么?如何能够买到呢?

顾名思义,Half&Half就是一半和一半。一半的奶油,一半的牛奶。但是奶油和牛奶又有什么关系呢?基本上这俩货是一种东西,区别是脂肪含量的多少。

大概常识告诉我们,奶油应该是加工出来的,其实,牛奶也是。市面上销售的牛奶,我是说美国市面上销售的牛奶,都是经过处理的,当然,不只是消毒杀菌之类的,还需要对脂肪含量进行处理。

如果是新鲜从奶牛乳房中挤出来的牛奶,我们姑且叫做 真·鲜·牛奶 吧,这种牛奶放置一天会分层,下面一层含水量比较高,就是我们一般所说的商品牛奶啦,上面一层脂肪含量比较高,就是奶油喽。这个是最原始的牛奶和奶油的区别,但是在商品货架上的牛奶和奶油,则有着更明确的差别。

脂肪含量低于 0.5%, Fat Free Milk, 脱脂牛奶
脂肪含量 1%, Low Fat Milk, 低脂牛奶
脂肪含量 2%, 普通牛奶喽
脂肪含量 3.5%, Whole Milk 全脂牛奶
=======牛奶与奶油分割线======
脂肪含量 20%, Light Cream
脂肪含量 35%, whipping cream
脂肪含量 38%, heavy cream/heavy whipping cream
=======奶油与黄油分割线======
脂肪含量 80%以上, Butter 黄油

所以Half&Half就是一半 Whole Milk 一半 Light Cream对出来的介乎牛奶和奶油中间的产物。
脂肪含量 10%~12%, Half&Half

至于Half&Half对应国内乳制品该叫什么名字,还真不好说。如果你逛超市的时候,看到哪种牛奶/奶油上面标注的脂肪含量是10%~12%,那么就应该是我们这里所说的Half&Half。当然你也可以在家里自制Half&Half,反正就是买点奶油和牛奶调和出自己认为口感比较合适的比例。只是,要注意一下,国内的奶油制品,淡奶油,鲜奶油之类的,脂肪含量范围和我上面写的可能有出入。

之所以会有Half&Half配咖啡一说,也是因为经过无数人的口感验证,在这个比例的脂肪含量会让咖啡入口的感觉更加绵密。

PS: 在英国,它叫 Half Cream

如何从Wordpress.com "我的站点"界面回到 Wordpress控制面板

如果你有多个Wordpress站点需要运营,并且主要是日常发布文章,那Wordpress.com提供了非常合适的综合管理平台。一站式管理多个Wordpress站点。 不论是Wordpress.com站点还是自己托管在任何主机的的Wordpress站点。

某些时候,我们需要做一些更底层的站点配置工作,仍然需要回到Wordpress控制面板。而wordpress.com目前没有放置很便捷的按钮让你回到控制面板。

如果不嫌麻烦,我们还是可以从传统的路径,比如将站点的管理界面加入收藏夹,又或者打开浏览器,输入站点网址,登录控制面板管理界面。可是这样又失去了 wordpress.com 做为“一站式”管理的便利性。

其实wordpress.com有链接回控制面板的按钮,只是没有那么明显。

如果你是托管在 wordpress.com 内的站点,尽管没有托管在自己的主机中拥有那么多的自由配置,但回到控制面板依然会有一些自由。
在左侧菜单中,选择对应的站点后,在最下方会有一个 “WP 管理”的连接,让你回到熟悉的控制面板。
免费托管版可能没有这个连接

如果是托管在自己主机的Wordpress,我们会发现这个便捷的 “WP 管理”的链接消失了。 真想不通 Wordpress.com 是怎么想的啊。但我们依然可以从Wordpress.com回到控制面板,只是有些许繁琐。
在左侧菜单中,选择对应的站点后,还是在左侧菜单,选择“套餐”,选择“我的套餐”标签,右下方会出现我们期待的“返回控制面板”。

搞定烦人的WordPress更新误报提示

我有强迫症。

手机上永远不会出现任何未读角标,看着就烦。 而Wordpress的更新提示就真的戳中了我的死穴。应为不参与具体运营,所以平日不常登陆wordpress后台,没那么让人纠结。但每每登陆,总有那么个提示,然后无论你如何不停地点更新当前版本,或者隐藏此更新,都没啥屁用。

遇到这种问题,有几种可能:
1,最下面有个翻译更新,不像其它更新会在当前页面直接显示出来,而是需要你多点击一下才能看到。
2,某个插件/主题发布的时候,版本号有错。停用都没用,必须删掉,或者等插件的下次更新。这也告诉我们,没事不要乱装插件玩。
3,自己修改过的插件/主题,没有把原始插件/主题中检查更新相关的代码关闭或移除,只能自己去Debug了。

AWS Route 53 域名解析托管后长时间不生效的故障分析

启用了一个注册了很久的域名,之前有在Route 53中做过设置,因为Route 53每个月都会收取解析费用($0.5),所以取消该记录也有一段时间了。这天准备复用的时候,发生怪事了。

一般来说,在Route 53做解析配置,生效时间都非常的快,但这次事情不同,现在都已经有24小时了,还是提示

ping: cannot resolve YourDomain: Unknown host

真心奇怪,进过仔细分析对比,发现,在Route 53中,域名的NS记录是

ns-1104.awsdns-10.org. 
ns-243.awsdns-30.com. 
ns-2030.awsdns-61.co.uk. 
ns-760.awsdns-31.net.

但是用whois查域名记录,NS是

Name Server: NS-1085.AWSDNS-07.ORG
Name Server: NS-753.AWSDNS-30.NET
Name Server: NS-1752.AWSDNS-27.CO.UK
Name Server: NS-501.AWSDNS-62.COM

所以,目前域名还是还被whois记录中的NS解析着。根据aws帮助文档的说法,要至少48小时才能全部生效。鉴于以往操作都是分分钟生效,外加我这个急性子,这还真让我捉急啊。

48个小时,还没有生效。继续研究后,有了新的发现。

强制更新域名的DNS服务商。
在 Route 53 的 Registered domains 页面中,选择无法正常解析的域名,在左侧 Name servers 的列表最下面 Add or edit name servers 将原有NS服务地址全部删除,然后替换为 Route 53 Hosted Zone 中提供的NS地址即可。

文明6控制台秘籍怎么使用 文明6上帝模式作弊码大全

没有那么耐心一点一点的平衡发展,索性试试这些上帝视角的作弊码,让自己也主角光环杰克苏一把。

退出游戏,找到并打开下面的文件

我的文档\My Games\Sid Meier's Civilization VI\AppOptions.txt

翻到第65行,将EnableDebugMenu的值0改为1

EnableDebugMenu 1

保存并关闭文件,打开并进入游戏,也可以读取存档。

2.进入游戏之后,按 ~ 可进入上帝模式,再按下Ctrl + Z 显示全图。之后就可以在游戏中直接按下对应的快捷键,就可以获得对应的秘籍效果了。
文明6作弊码秘籍大全
Shift +[+] 城市人口+1; Ctrl + [+] 城市文化+10
[+] 立刻完成建设中的城市; Ctrl + [+] 单位升级
Ctrl + W 世界编辑器(可以修改城市,添加单位,修改资源,改变地貌)
Shift + [ 降低单位力量; Shift + ] 提升单位力量
Ctrl + 4 增加金钱1000; Alt+ Z 改变你所控制的文明
Ctrl + Z 打开全地图,并且驱除地图迷雾,显示所有资源
Alt + D 改变控制者信息; Ctrl + D 打开全局菜单
这里提供的是玩家分享的信息,效果有待测试,本文将及时更新。

OneNote Error code: 0xE0000007

OneNote 突然出现同步异常。错误提示为:

We ran into a problem syncing your notebook. (Error code: 0xE0000007)

至少微软到目前为止并没有给出一个明确的解决方案。而是给出很多步骤挨个尝试。

0,检查网络;未解决
1,强制同步; 未解决
2,关闭OneNote,再次打开; 未解决
3,退出登录,再次登录; 也没有解决。

不停的重复1-3, 问题解决。

Typecho 1.1 BUG #1 ,我发现了一个隐藏秘籍:定时发布

在整理一篇技术文章之后,开开心心的发布,结果Typecho提示404了。顿时内心万马奔腾。后台查看,还在。

只好开启 Debug 模式。 讲真,你说这该从哪里下手啊。

开始排查吧,已经发布的文章逐个点击,已经发布的没问题,只有最新发布的两篇文章404了。

改“设置-永久链接”,无效。

难道是因为后台有大量的未发布的草稿?无奈只得先行发布,在找机会补完内容了。

结果依旧扑街,最新发表的两篇依旧404。

好吧,休息一下,喝杯茶。

再次坐下来仔细查看这两篇文章和其他已经发布的有什么不同,最终在管理文章列表页中发现这两篇文章的日期一栏,是一个日期,而下面刚刚发布的文章都是诸如XX分钟前,XX小时前,昨天 XX:XX 之类,而这两篇最近发布的文章,却是以日期的形式表现。并且这个日期还是两天以后的时间。改过来后,BUG解决了。可是在这之前,我都没有注意过编辑页面上有个“发布日期”输入框,更不可能擅自改动啊。所以这还是个BUG。

然后我利用这个BUG,在现在正在编写的页面上,把“发布日期”修改为当前时间 +1 分钟,发布后,又404了。

站起来伸个懒腰,再续上一杯茶,时间到,刷新,文章出现了。 这到底是个BUG呢,还是一个Typecho的隐藏大招啊?

续,模拟现场
在一种情况下,可能出现复现Bug,就是保存了草稿,然后“设置-基本-时区”,选择了比原先更晚一些的时区,这个时候,如果在时差内发布草稿,就会复现这个Bug了。
我确实是修改过时区,可那个时候,是已经出现了404 bug,我在到处设置找解决办法。况且,两篇出现404的文章,当时的日期是2017-11-29和2017-11-30, 而当前时间是 2017-11-26, 时差最多也只能制造1天的变量。

如果有新的线索,在更新吧。

Wordpress 免FTP,免输入密码系统升级,安装插件,安装主题

环境: ubuntu+apache+php7+wordpress4.9

最简单的方法,在 /wp-config.php 文件最下面,增加

define('FS_METHOD', 'direct');

尝试下载个插件看看,如果wordpress所在目录的读写权限配置合适,这个时候,就全部搞定了。
如果出现提示

wordpress 安装失败:无法创建目录。

这个时候,我们需要把 wp-content 目录权限改为 775

chmod -R 775 wp-content

如果还是遇到问题,那还是权限的问题,需要变更一下 wp-content 目录的所有权,之后再变更执行权

chown -R [owner]:[group] wp-content
chmod -R 775 wp-content

如果你只有FTP,没有SSH,也可以尝试把FTP信息写入 /wp-config.php 实现免密码。

define("FTP_HOST", "localhost");
define("FTP_USER", "yourftpusername");
define("FTP_PASS", "yourftppassword");

AWS EC2 镜像备份及恢复实例

在清理AWS EC2主机的时候,错删了一个网站目录,还好找到了曾经的备份镜像,化险为夷。

恢复之前,先了解一下EC2怎么样进行镜像备份。
1,登录AWS, EC2
2,EC2管理面板的左侧边栏:ELASTIC BLOCK STORE
3,点击 Snapshot, 会出现所有镜像列表。 是否收费呢???
4,页面正上方蓝色按钮“Create Snapshot”
Volume: 要备份的EC2主机Volume
Name: 随便起,自己明白就好
Description: 随便写,自己明白就好
Encrypted: No.
5, 点击蓝色按钮 “Create”
8GiB的Volume, 占用率50%, 大约只用了10分钟左右备份完成。

已经有了镜像备份后,接下来尝试将指定镜像文件加载到EC2主机中,就可以轻松找到被删除的文件进行恢复了。

加载镜像文件,首先要将镜像变成一个 Volume
1,选中要加在的镜像
2,点击上方的灰色按钮“Actions”
3,在下拉列表中点选“Create Volume”
4,全部默认,直接点击右下角蓝色按钮 “Create Volume”
5,EC2管理面板的左侧边栏:ELASTIC BLOCK STORE
6,点击 Volumes
7,如果这是第一次操作,那么,这里至少会有两个Volume, 看State, 绿色in-use,就是EC2主机默认使用的Volume,而另外一个蓝色avaliable则是在之前步骤 Create 的 Volume
8,选中之前步骤Create 的 Volume,点击上方灰色按钮 “Actions”
9,下拉列表中选择 “Attach Volume”
Volume: 不理会
Instance: 选择对应的EC2主机
Device: 挂在的名字,如果重复会自动重命名,所以默认即可,记住名字,一会要用到
10,点击蓝色按钮 “Attach”

到这里,Volume已经加载了,还需要在SSH里挂在这个主机
1, Login SSH
2, 查看加载的Volume
lsblk
3, 建立一个目录准备挂载的Volume
sudo mkdir /mybackup
4, 我其实也不懂这一步是干嘛的
sudo file -s /dev/xvdg
5,挂载Volume到这个目录,(下面命令中的xvdf就是之前加载的Volume名称)
sudo mount /dev/xvdg /mybackup/

全部用完之后, detache 就好了

参考
https://devopscube.com/mount-ebs-volume-ec2-instance/