Tag Archives: wordpress

为WordPress网站添加新域名

昨天为我们小组网站增加了一个新域名,过程比较繁琐,大概记录一下流程,方便下次需要参考,也方便朋友们参阅。

  1. 购买新域名。原域名是permalab.nanzt.info,使用的是个人博客nanzt.info 的子域名。新域名 (domain)是 permalab.science,我很喜欢.science 后缀。域名从 alldomains.hosting 购买。原因是从一个比价网站(domcomp.com)推荐这个价格低(唯一的考虑因素)。的确比 namecheap, namesilo 等要便宜一点。一口气买了五年。
  2. 将dns service 迁移到 cloudflare。我不想用 alldomains自己的域名解释服务,cloudflare提供了额外的域名保护。所以在cloudflare里添加了 permalab.science 站点,将dns记录迁移(自动)到 cloudflare,这里的关键是要在 alldomains 里将它自己提供的nameserver 移掉,添加 cloudflare 提供的两个nameserver。成功后,便是 cloudflare 提供域名解释了。至此与 alldomains无关了。
  3. 修改域名记录。在cloudflare里编辑 permalab.science 的域名记录,添加或者修改节域名的A记录,指到网站所在ip地址;添加www 的CNAME记录,指到 permalab.science。
Continue reading

cPanel 中导入已有WordPress应用

经常我们的Wordpress应用是迁移到某一个安装有cPanel 的虚机上的。cPanel 的管理面板上有一个叫Installatron 的应用可以列出已经安装的应用,这时迁移来的WP应用在列表里是看不到的。其实Installatron 并没有提供更多的有用的管理功能,但对于强迫症患者兼完美主义者,遭遇这样不完美的事情(不发现则罢了)总是感觉如鲠在喉。

Installatron/cPanel (版本是 86.0.18。)其实提供了一个已有应用的导入功能,但藏的比较深。

在cPanel 里的WEB APPLICATIONS栏目下,找到Wordpress,点击一个安装WP 的界面。 Continue reading

WordPress 从4.9.8升级到5.0.2 编辑器出错的问题

顺利升级后,打开新帖子或者编辑已有帖子,均提示:The editor has encountered an unexpected error. 点击 Copy Error,提示:

TypeError: Cannot read property ‘show_ui’ of undefined    at http://nanzt.info/wp-includes/js/dist/editor.min.js?ver=9.0.6:55:240816

原因在于nginx try_files的设置,修改为如下,重启nginx则问题消失。

location / {
                try_files $uri $uri/ /index.php$is_args$args;
        }

从Linode VPS 迁移到 VirMach

从Linode VPS 迁移到 VirMach

黑五从VirMach抢了一个打折,年$14 的2G RAM,1TB 流量的VPS,将月付5刀的Linode (只有1GB RAM,1TB流量)给暂时停掉了。其余的VirMach 的打折页面

nanzt.infopermalab.nanzt.info 网站迁移到VirMach 上。大概研究了一下迁移的方法:

  1. 在VirMach 上安装好 Web、MySQL、PHP 等必要的Wordpress 依赖;
  2. 在MySQL 中创建Linode 上两个网站的mysql 帐号;
  3. 在Linode 上利用mysqldump 将两网站的数据库导出为 .sql;
  4. 在Linode 上将两网站的wordpress 目录各自打包为 .tar.gz;
  5. 利用scp 将.sql 和.tar.gz 传输到VirMach;
  6. 在VirMach 上将 .sql 导入到mysql;
  7. 在VirMach 上将.tar.gz 解压至网站目录;
  8. 注意网站文件的用户权限可能需要 chown;
  9. 调整 web, php.ini, wp-config.php 等文件的配置;
  10. 调整 dns,如果有cloudflare 也要对应处理;
  11. 安装 ssl 证书;如果有cf,注意安装 cf dns的影响;
  12. 打开firewall
  13. 安装 imagemagick
  14. wordpress的 rpc-xml 需要php-xml支持;
  15. 测试。

团队官网上线

基于Wordpress,在小内存的VPS上搭了一个团队官网(http://PermaLab.nanzt.info),然后花了点时间选了一个合适的模板,前后大概花了一个周末时间。基本内容都有了,想着把这个学期的工作回溯补充进去。我起名叫PermaLab,一方面工作的一大部分是关于多年冻土(Permafrost),所以我们这个团队就是多年冻土的一个研究团队(Lab)。另一个Perma也是Permanent前部分,希望小队伍可以长久壮大,扎根在这些很挑战的领域。这个新网站作为团队整体工作的一个对外口子。后期想着把一些我们工作介绍出来,把一些产生的数据和代码共享出来。

group-website-screenshot-180624

小空间VPS安装Apache和MariaDB (MySQL)内存不够的问题

我的是Linode 1G空间的VPS,CentOS 7系统。上面目前安装了SS、Web(Apache)、MariaDb(MySQL)、PHP、Wordpress等服务。前两天在安装一个WP插件时,突然发现WP提示连接不上数据库。还以为是插件把WP弄掉了,看了一下日志,发现MySQL down了。

所以ssh上去,systemctl start mariadb.service,没成功,查看其log,发现InnoDB out of memory字样的提示。 Continue reading

Open Live Writer

微软Live Writer 2012无法在Win 10最新版本上安装了。

我一直使用Live Writer将博客贴上来,最近新买了一个Laptop Thinkpad X270,系统更新到最新的Win 10,在安装Live Writer 2012时提示无法安装了。遗憾了好一阵子。后来在微软Store里尝试搜索了一下,居然找到一个Open Live Writer,下载安装后,发现与Live Writer一般好用。大爱!

Image

个人WordPress Blog上的插件 as of Jun 17, 2016

Akismet:反垃圾插件,最好,没有更好。

Annual Archive:按年、月整理,见Archvie页面的效果。

autoQR:自动生成二维码,方便在手机上看。我做了修改。

Widget Logic:控制哪些Widget在哪个页面(如首页)显示

WordPress Importer:将别的博客数据导入

WP Broken Link Status Checker:检查坏链接(我上面现在坏链接太多了)

WP Statistics:统计

WPFavicon:在浏览器里显示自定义的页面图标

Yet Another Related Posts Plugin:相关帖子显示

Bring back 博客

原本放在实验室的博客因为硬盘损坏,数据全丢失;好在多数帖子在Wordpress.com上同时发布。所以通过Export/import把多数帖子恢复回来了。但一些链接不可避免坏掉了,也没有精力去逐个修复。如果大家需要下载哪个链接发现无法下载的,请在Comments里留言,我会优先恢复。但我有些材料可能我本身也找不到了。

我现在的主机是Host1Plus,两年6折花了61美金(接受支付宝),无限空间,把域名也迁过来,第1年域名免费(以后每年almost 12.6美金),这还是很赞的。

奇虎360 google字体的问题

因为google font被国内封掉,使用360的代替google fonts (fonts.useso.com),详细见此帖子,但在chrome里总出现错误,导致google字体无法在后台显示。比如在是在,

http://nanzt.info/wp-admin/plugins.php?activate=true&plugin_status=all&paged=1&s=

出现 Cross-origin Resource Sharing Policy的问题,如图所示。

882516f0aa11711ce50d8907fc19b6ec

 

但如果切换成google fonts 的原始网址(fonts.googleapis.com),则没有这个问题,后台正常显示字体。

以上问题在ie里不出现。

这应该是 360本身的问题。强迫不管http还是https均使用科大的google字体,在 USESO_TAKE_OVER_GOOGLE插件的代码里做了如下简单修改。以上问题得到解决。

function useso_take_over_google_str_handler($matches)

{

$str = $matches[0];

/*if (!is_ssl()) {

$str = str_ireplace(‘//fonts.googleapis.com/’, ‘//fonts.useso.com/’, $str);

$str = str_ireplace(‘//ajax.googleapis.com/’, ‘//ajax.useso.com/’, $str);

} else {*/

$str = str_ireplace(‘//fonts.googleapis.com/’, ‘//fonts.lug.ustc.edu.cn/’, $str);

$str = str_ireplace(‘//ajax.googleapis.com/’, ‘//ajax.lug.ustc.edu.cn/’, $str);

/*}*/

return $str;

}