Tsin's Blog

Always remember, never accept the world as it appears to be, dare to see, for it could be. 永远记住,不要只满足于事物的表象,要敢于探寻,未知的可能

TiddlyWiki+Nextcloud - 搭建个人知识库 + 云盘

购买了服务器和域名,如果只是用来搭建个人博客,是不是太浪费了?利用 TiddlyWiki 和 Nextcloud,我们可以打造WIKI知识库和云盘,更好地利用服务器的资源~

(一)TiddlyWiki

TiddlyWiki,这是一款独特的非线性笔记本,是一个仅由单个 HTML 文件组成的非网络应用的 Wiki 程序,仅使用 HTMLCSSJavaScript 技术。不需要像印象笔记有道云笔记OneNote 那样需要安装客户端、注册登陆才可使用,只需从官方网站下载程序界面,双击使用浏览器打开即可编辑使用。

准备工作

官方网站:https://tiddlywiki.com/

中文网站:http://www.tiddlywiki.cn/

演示网站:wiki.mytsin.com

下载&使用

可以从以下链接下载中文版本,也可从官网网站下载英文版本使用。

中文(简体)空白版本: https://tiddlywiki.com/languages/zh-Hans/empty.html

中文(繁体)空白版本: https://tiddlywiki.com/languages/zh-Hans/empty.html

以下以官网下载英文版为例:

在 "GettingStarted" 页面下,点击 "Download Empty" 下载

下载好后,我们到下载目录,双击 "empty.html" 即可开始使用 TiddlyWiki 。

每次编辑完,记得要保存,点右边栏“对勾”的图标,下载新的 "empty.html" ,即可保存。

注意:下载编辑打开新的 "empty.html"

在网站中使用

将 "empty.html" 文件上传至网页根目录,建议更名为 "index.html" 。

在浏览器地址栏输入网页地址即可访问。

每次编辑完,都需要重新下载上传文件,这是不是特别麻烦?

有没有更为简便的办法?

有!

点右边栏“对勾”的图标

  1. 在 https://tiddlywiki.com/#Saving%20on%20a%20PHP%20Server 下载一份 TiddlyHome_*.*.*.zip  (目前最新版本为TiddlyHome_0.1.2.zip
  2. 找到里面 _th\lib\store.php 这个文件,解压并编辑里面的 $USERS = array( 'UserName1'=>'Password1', etc) ,更改为你想要设定的用户名和密码
  3. 上传 store.php 到你的网站根目录,去 TiddlyWiki > 保存 > TiddlySpot 保存模块 ,设置 高级设置 > 服务器网址 为这个 store.php 文件的完整地址,然后在上面填写用户名和密码
  4. 现在,点击保存时,已经会直接保存在服务器上了

注意:

  1. 你可能需要把备份文件名设置成 index.html
  2. 每次保存都会自动创建一份备份,你可以定期手动清理
  3. 建议修改备份文件夹为 backup ,这样会把备份保存在 backup/ 子目录而非 . 根目录下
  4. 高级设置 > 服务器地址 根据网站的实际情况,选择前缀为 http:// 或者 https://
  5. 建议每次备份后,用其他浏览器打开网站,以确保备份成功

(二)Nextcloud

Nextcloud 是一套用于创建网络硬盘客户端-服务器软件。其功能与Dropbox相近,但 Nextcloud自由及开放源代码软件,每个人都可以在私人服务器上安装并运行它。

Nextcloud 支持中文,对于习惯中文界面的小伙伴来说,入门门槛降低了很多。

准备工作

系统:CentOS7

web服务:Nginx

面板:宝塔面板

PHP:7.0

软件:Nextcloud

安装 Nextcloudcd

  1. cd /home/wwwroot/www.yourdomain.com/
  2. wget --no-check-certificate https://download.nextcloud.com/server/releases/nextcloud-14.0.3.zip
  3. unzip nextcloud-14.0.3.zip
  4. mv nextcloud/* /home/wwwroot/www.yourdomain.com/
  5. chown www:www -R ./

注意:这里的/home/wwwroot/www.yourdomain.com/需替换成你网站的实际目录。

如果unzip解压文件时出现问题,这说明没安装unzip,所以解压前需要先执行命令:apt-get install unzip或者yum install unzip即可。

登录网页界面

将信息填好了,点击安装完成,登录账户即可使用~~~

问题解决

刚刚安装的 Nextcloud ,在“安全及设置警告”中,会提示我们设置中存在一些错误。

1.一些文件没有通过完整性检查……

这句是文件完整性检查。点击“无效文件列表”,查看无效文件,一般情况下为 "nextcloud-14.0.3.zip" 和宝塔建站自生成的 "index.html" , "404.html" 文件,删除即可。

2.安装 fileinfo

3.安装 opcahe

替换下面的代码到 PHP 配置里,然后重启下PHP服务:

opcache.enable=1

opcache.enable_cli=1

opcache.interned_strings_buffer=8

opcache.max_accelerated_files=10000

opcache.memory_consumption=128

opcache.save_comments=1

opcache.revalidate_freq=1

Opcache是PHP代码的缓存。

4.getenv("PATH")为空

PHP 的安装似乎不正确,无法访问系统环境变量。getenv("PATH") 函数测试返回了一个空值。 请参照安装说明文档 ↗中的PHP配置说明查阅您服务器的 PHP 配置信息,特别是在使用 php-fpm 时。

#编辑

vi /www/server/php/70/etc/php-fpm.conf

#黏贴

env[PATH] = /usr/local/bin:/usr/bin:/bin:/usr/local/php/bin

#重启下服务

service php-fpm-70 restart

#提示

Some files have not passed the integrity check.

5.The .htaccess file is not working

打开在宝塔的伪静态中添加下面的话

location

~ ^/(data|config|.ht|db_structure.xml|README) {

deny all;}

6.The “Strict-Transport-Security” HTTP header is not configured to least “15552000” seconds. For enhanced security we recommend enabling HSTS as described in our security tips.

错误在于虽然开启了 HTTPS ,却使用传统301方式跳转或没有进行强制跳转

HSTS (HTTP Strict Transport Security) 国际互联网工程组织 IETE 正在推行一种新的Web安全协议。HSTS 的作用是强制客户端(如浏览器)使用 HTTPS 与服务器创建连接。不同于传统301跳转,HSTS 不会在跳转过程遭遇网络渗透

有关HSTS的设置可以参考官方文档:Enable HTTP Strict Transport Security

在配置文件中的 "server" 模块内插入

add_header Strict-Transport-Security "max-age=31536000;includeSubdomains;preload";

7.HTTP的请求头 "Referrer-Policy" 未设置为 "no-referrer", "no-referrer-when-downgrade", "strict-origin" or "strict-origin-when-cross-origin". 这会导致信息泄露

在“配置文件”里添加:

add_header Referrer-Policy "no-referrer";

8.内存缓存未配置,为了提升使用体验,请尽量配置内存缓存

这个问题是指 PHP 的缓存模块没有安装,Nextcloud 支持 APCu、Memcached、Redis 等模块,选择其中一个安装。我之前写过一个宝塔面板PHP 7.x 编译安装APCu

编译安装完毕之后,从宝塔面板打开/www/wwwroot/www.yourdomain.com/config/config.php,手动给nextcloud的配置文件中添加一行设置,指定使用APCu作为缓存

'memcache.local' => '\OC\Memcache\APCu'

9.您的网页服务器未正确设置以解析“/.well-known/caldav”及您的网页服务器未正确设置以解析“/.well-known/carddav”

这两个警告可以一起解决,出现该提示一般是因为这两个路径的伪静态设置有问题,导致无法正常访问。

解决方法就是在“伪静态”设置中添加两行重定向配置:

rewrite /.well-known/carddav /remote.php/dav permanent;
rewrite /.well-known/caldav /remote.php/dav permanent;

参考资料:

使用 TiddlyWiki 打造轻便个人 Wiki 知识库

宝塔面板部署NextCloud逐一解决后台安全及设置警告

一款不错的个人私有云:NextCloud安装教程