将Tiddlywiki保存到web服务器

最近搞了个Mediawiki,但对于新手而言,学习新语法的成本太大,建个目录都查了很久。后来了解到tiddlywiki这个小东西,决定自己建一个服务器( 传送门 )来存放日常的笔记。

系统环境

操作系统采用Centos7

安装httpd

yum install httpd

vim /etc/httpd/conf/httd.conf

建议把/var/www/html的属性设置成以下:

Options FollowSymLinks

AllowOverride All

Require all granted

systemctl start httpd

安装php组件

添加CentOS 7.x 的第三方源

# rpm -Uvh http://ftp.iij.ad.jp/pub/linux/fedora/epel/7/x86_64/e/epel-release-7-5.noarch.rpm
# rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm

安装 PHP

# yum install –enablerepo=remi,remi-php73 php php-opcache php-pecl-apcu php-devel php-mbstring php-mcrypt php-mysqlnd php-phpunit-PHPUnit php-pecl-xdebug php-pecl-xhprof php-pdo php-pear php-fpm php-cli php-xml php-bcmath php-process php-gd php-common

注:安装7.3版本为remi-php73,安装5.5版本为remi-php55

查看 PHP 版本

# php -v


重要

php安装后,对于文件上传的限制是2M,而tiddlywiki的文件都是大于2M,需要修改。修改方式为

Vim /etc/php.ini

找到upload_max_filesize项目,改为

upload_max_filesize = 10M

如果不改,将导致tiddlywiki失败,而且php-fpm的日志/var/log/php-fpm/error.log也报不出来任何错误信息。

安装tiddlywiki

进入 http://tiddlywiki.com 官网,阅读下面的 GettingStarted 条目。这里根据你的浏览器版本会切换的对应的教程,不过总的来说,你只需要点击 Download Empty 按钮就可以下载好一个全新的 TiddlyWiki 的 html 文件了。将empty.html上传到apache服务器的Document Directory(默认是/var/www/html),将其 重命名为index.html

配置PHP 保存

PHP 保存非常容易配置。官方的教程在这里:https://tiddlywiki.com/#Saving on a PHP Server

  • 在 https://code.google.com/archive/p/bidix/downloads 下载一份 TiddlyHome_*.*.*.zip(墙内的朋友可以来这里
  • 解压
  • 找到里面 _th\lib\store.php 这个文件,解压并编辑里面的 $USERS = array( ‘UserName1’=>’Password1’…) 为你想要的用户名和密码。并设置$AUTHENTICATE_USER = true,这个选项默认为false,不改成true,任何人都可以修改你的服务器上的文件。
  • 保存此文件
  • 上传 store.php 到你的服务器,systemctl restart httpd
  • 去 TiddlyWiki > tools > control panel>saving> TiddlySpot Server

    输入以下信息:

    wiki name栏就是store.php里写的用户名

    password就是store.php里写的密码

    Server URL填入store.php文件本身的全路径,而不是你的tiddlywiki的主页面;

    其他默认就可以。

  • 现在,点击保存时,已经会直接保存在服务器上了
  • 注意:
    1. 你可能需要把备份文件名设置成 index.html
    2. 每次保存都会自动创建一份备份,你可以定期手动清理
    3. 建议修改备份文件夹为 backup ,这样会把备份保存在 backup/ 子目录而非 . 根目录下

因为 TiddlyWiki 并没有用户登陆界面,这个设置页面就相当于登陆页面。密码是按浏览器保存的,所以如果你想在当前浏览器退出登录,到设置页面清除密码设置就好。如果你换了一个浏览器打开 Wiki ,你将需要进入设置重新填写一次密码(相当于登陆),才能使用在线保存。

可能遇到的 store.php 错误

如果你在如上配置完成后,点击保存后弹出正在保存 Wiki,此后就没有反应、并且在浏览器开发者工具中的 Network 网络面板看到 500 Internal Servel Error ,你可以尝试打开 PHP 的错误日志查看报错:

vim  /usr/local/php/etc/php-fpm.conf
php_flag[display_errors] = On # 直接在网页上显示错误信息
#php_admin_value[error_log] = /usr/local/php/var/log/php_errors.log
#php_admin_flag[log_errors] = on
cat /usr/local/php/var/log/php-error.log # 或者直接在浏览器中查看报错

关于 split() 函数的问题

TiddlyWiki store.php split() error

那么可能是你运行的 php 版本已经废弃这个函数,编辑 store.php 文件并查找替换所有的 split 为 explode 即可。

额外的Maximum size的问题

对于php里的upload and/or post除了php.ini的限制,可能存在.htaccesshtaccess 文件里的限制,在某些系统上,可能像这样:

php_value upload_max_filesize 4M

php_value post_max_size 6M

语法学习

推荐一个台湾教师的网站

http://web.nlhs.tyc.edu.tw/~lss/wiki/TiddlyWikiTutorialTW.html

《将Tiddlywiki保存到web服务器》有一个想法

发表评论

电子邮件地址不会被公开。