在 Entware 中安装设置 PostgreSQL

出于某些不愿多说的原因,把 Home Assistant 的数据库切换到了 MariaDB(MySQL),可能是设置问题,MariaDB 导致系统负载很高。还是换回 PostgreSQL(pgsql),系统负载低了很多。

安装 PostgreSQL

这次在 Entware 中安装,比较绿色。

opkg update
#安装pgsql
opkg install sudo pgsql-cli pgsql-cli-extra pgsql-server
source ~/.bashrc
#新建文件夹,赋权给postgres
mkdir -p /opt/var/pgsql/data
chown postgres /opt/var/pgsql/data
#初始化数据库
sudo -u postgres pg_ctl -D /opt/var/pgsql/data initdb
#启动pgsql
/opt/etc/init.d/S98postgresql start

不同于通过 apt-get 安装的,安装完成就已经可用了;在 Entware 中安装的软件,需要手动完成初始化等设置。

配置 PostgreSQL 远程连接

如果 PostgreSQL 安装在其他设备,或者要使用 Adminer 来远程管理,则需要远程连接。这时需要修改 /opt/var/pgsql/data 目录下的 pg_hba.conf 和 postgresql.conf。

1、pg_hba.conf,配置对数据库的访问权限。

# IPv4 local connections:
host  all    all    127.0.0.1/32     trust

不需要特别严格的权限控制时,可以直接将 IPv4 下面的设置修改为以下代码即可,可根据需要设置IP段

host  all    all    0.0.0.0/0        trust

2、postgresql.conf,配置PostgreSQL数据库服务器的相应的参数。PostgreSQL安装完成后,默认只接受来在本机localhost的连接请求。

定位到 #listen_addresses='localhost' ,修改为

listen_addresses = '*'

允许监听来自任何主机的连接请求。

3、重启 PostgreSQL 后生效, /opt/etc/init.d/S98postgresql restart

基于宝塔面板的 LNMP 服务器优化

宝塔面板实在是不可多得的国产优秀服务器管理面板。支持多种 Linux 系统和 Windows,防火墙安全管理,计划任务,文件管理,多版本 PHP 共存及切换,多版本 MySQL 切换,Apache 和 Nginx 切换,一键安装和更新软件。

宝塔面板

本文基于 LNMP(Linux+Nginx+Mysql+PHP) 下运行的 WordPress 为例简单说明服务器性能优化。

一、MySQL 优化

根据服务器配置,安装 MySQL 5.5或者 MySQL 5.7,安装后的配置的是默认的,按需修改。

打开设置中的性能调整,根据内存大小选择优化方案。

另外,可以把默认存储引擎修改为 MyISAM,配置修改

default_storage_engine = MyISAM

二、PHP 优化

建议选择PHP 7.2,打开设置中的安装扩展,安装 opcache 和 memcached,扩展安装后会自动配置。

opcache 可以大幅提升 PHP 性能,飞一般的感觉,一定要安装。实测让 等待/Waiting (TTFB) 从平均 5 秒降低到 500 毫秒内,没有静态化缓存的页面也可以秒开了。

memcached 可以根据需要安装。 继续阅读

HTML5 的 Download 属性

HTML5 的 Download 属性用来强制浏览器下载对应文件,而不是打开,可以在一定程度上增强用户体验。

Chrome 和 Firefox 等浏览器很强大,当用户点击的资源文件可以被它们识别的时候(例如 pdf 会直接在浏览器打开,mp3、mp4 等媒体直接用浏览器内置播放器播放)。

但有时候,用户其实是希望直接下载而不是在浏览器上查看,这时就可以加上这个属性,属性值会对下载的文件重命名,如下

<a href="downloadpdf.php" download="download.pdf">点击直接下载并保存成 download.pdf 文件</a>

点击直接下载并保存为 fitbit.png

如果你确定这个资源是用户肯定会下载的,比如企业网站下载PDF图纸的链接,就可以加上这个属性。

Nginx 使用 sever 段规则屏蔽恶意 User Agent

相对于 Apache,Nginx 占用的系统资源更少,更适合 VPS 使用。恶意的 User Agent 无处不在,博客更换到 WordPress 没几天,就被 SPAM(垃圾留言)盯上,又被暴力破解后台用户名密码。以前介绍过 Apache 使用 .htaccess 屏蔽恶意 User Agent,今天来介绍 Nginx 屏蔽恶意 User Agent的方法。

先上规则&注释

#禁用未初始化变量警告
uninitialized_variable_warn off;
#匹配各种 bad user agent,返回403错误
if ($http_user_agent ~* "embeddedwb|NSPlayer|WMFSDK|qunarbot|mj12bot|ahrefsbot|Windows 98|MSIE 6.0; Windows 2000|EasouSpider|Sogou web spider") {
return 403;
}
#匹配POST方法,给变量iftemp赋值
if ($request_method ~* "POST") {set $iftemp X;}
#匹配 bad user agent,给变量iftemp赋值;这几个UA主要是发垃圾留言的
if ($http_user_agent ~* "MSIE 6.*NET|MSIE 7.*NET|MSIE 6.*SV1|MSIE 6.0; Windows NT 5.0") {
set $iftemp "${iftemp}Y";
}
#如果变量iftemp符合上面两个条件,返回403错误
if ($iftemp = XY) {return 403;}

继续阅读

转换博客程序到 WordPress

自从把博客搬家到HK的虚拟主机,访问速度略有提升,可是稳定性变得非常差。鉴于服务商无法提供稳定的服务,只好想办法把博客搬回美国的VPS,顺便把程序转换为PHP。本想转为 Z-Blog PHP,只是应用中心提供的插件无法导出我的数据,无奈之下只能导出 Movable Type 数据,再导入 WordPress。

更换程序,有得必有失。

  1. WindsPhoto.com 不再提供访问,已设置301跳转到本站,以后我会把照片直接发布到博客
  2. 部分文章链接失效(已修正),分类、归档、feed、tag链接失效(部分已301跳转)
  3. 原来的模板自然不能用了,不准备移植过来了
  4. WordPress 的 SPAM 也这么多(已解决)
  5. 原来的私人文章变成可见了(已全部校正)

需要做的事情还很多

  1. 原来 Z-Blog 图片附件的地址变更,确保图片URL正确(已完成,基本OK,用链接检查器插件)
  2. 补齐文章的 tags,导出时未能导出 tags,全部丢失(已手工补齐,基本OK)
  3. 补齐文章的摘要,导出时未能导出摘要(逐步添加 more 标签,基本OK)
  4. 丢失了一些文章,要补齐(已完成)
  5. 部分较长的文章被截断了,不完整,有空全部扫一遍(缓慢进行中
  6. 一些评论和多说的不对应,需要整理(大部分已整理完毕)
  7. 友情链接会尽快补齐(已补齐)
  8. 主题里有 Google Open Sans,需要去掉,不然很麻烦,感谢 GFW!(已搞定)

继续阅读

数据库备份 Lite/Pro for Z-Blog 2

BackupDB插件简介

这是一个用于备份 Z-Blog 数据库的插件,同时支持 MSSQL 和 ACCESS 数据库的备份。本插件分为 Lite 和 Pro 两个版本,Pro 版为付费版本,支持自动备份,其他功能一样。备份的重要性不言而喻,做这个插件希望每个 Z-Blog 用户都能有备无患。

功能介绍

  1. 支持 MSSQL 和 ACCESS 数据库的备份
  2. 每个备份位置对应一个备份文件,不必担心冗余数据
  3. 支持自动备份,用户登录后台后,若时间符合备份频率则自动备份

更新记录

暂无

数据恢复

本插件没有提供数据库恢复的功能。

ACCESS 数据库用户可以直接用备份数据库替换当前数据库来恢复;MSSQL 数据库用户需要通过 FTP 将备份数据库下载到本地,通过 MSSQL 软件或者服务商提供的工具恢复。 继续阅读

附件增强 for Z-Blog 2.2+

DownloadCounter插件简介

这是一个增强附件功能的插件,提供附件下载次数统计和隐藏附件真实路径的功能。

功能介绍

  1. 统计下载次数
  2. 隐藏附件真实路径,防盗链
  3. 附件管理页面增加下载次数显示
  4. 文章页面ajax显示附件下载次数

更新记录

暂无

使用说明

  1. 无需管理,启用即可
  2. 仅支持 Z-Blog 2.2 以上版本
  3. 仅对通过 UEditor附件按钮上传的新附件有效

下载地址

Z-Blog应用中心:http://app.zblogcn.com/?id=209 (6元) 继续阅读

用 IFTTT 同步 WindsPhoto 新照片到 Flickr、Picasa、又拍

用 IFTTT 可以使用多种网络服务组合出各种自定义的任务,怎样用取决于自己,今天介绍一下使用 IFTTT 同步 WindsPhoto 新照片到其他网络。

WindsPhoto to Flickr

创建 RSS feed 和 Flickr 的任务,feed url 是 WindsPhoto 的 RSS。如下图:

ifttt_to_flickr

WindsPhoto to 又拍和Picasa

IFTTT 没有 又拍和 Picasa 频道(Channel),但是可以通过 Gmail 邮件附件上传图片。

创建 RSS feed和 Gmail 的任务。等等,我们不是已经把照片同步到 Flickr 了吗?那就创建 Flickr 和 Gmail 的任务,节省自己博客的服务器资源。如下图:

flickr_to_gmail

又拍邮件上传设置: http://www.yupoo.com/account/uploadbyemail
Picasa邮件上传设置:https://picasaweb.google.com/lh/settings

PS:WindsPhoto 加密相册和隐藏相册中的图片不会出现在 RSS 中,所以不必担心隐私问题。如果你在使用贴图相册且不希望贴图相册里的图片出现 RSS 中,可以将贴图相册加密和隐藏。

本文仅抛砖引玉,介绍使用 IFTTT 同步 WindsPhoto 新照片到其他图片站的方法,还可以建立类似任务备份照片到 Skydrive、Dropbox,以及发布照片到 Twitter等。

繁简互译 for Z-blog 2

繁简转换一个简单的插件,在导航栏添加繁体简体中文的转换链接,为港澳台访客扫清障碍。

Javascript 脚本非原创,来源于网络。

Z-Blog 2.0 插件同时支持前台和后台,而且进一步优化,检测浏览器语言,如果为繁体中文则自动转换前台后台页面为繁体中文。

插件下载

Z-Blog 1.8:http://download.rainbowsoft.org/plugins/CoverJF/

Z-Blog 2.0:http://app.zblogcn.com/?id=206

怎样完全卸载 WindsPhoto?

觉得 WindsPhoto 不好用?想要卸载?好吧,跟着下面的步骤做!

1. 在插件管理中停用该插件。

2. 在插件管理中删除该插件,会同时删除整个插件目录,包括所有上传的照片。

进行到这里,还有冗余的数据库,照片都删了还要数据库干什么。

3. 删除冗余数据库,这是本文的重点,请慎用

使用 ZBDK(Z-Blog Development Kit)插件中的 SQL运行器,点击下载ZBDK,分别运行:

Drop table WindsPhoto_desktop
Drop table WindsPhoto_zhuanti