最近搞了个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
-
wiki name栏就是store.php里写的用户名
password就是store.php里写的密码
Server URL填入store.php文件本身的全路径,而不是你的tiddlywiki的主页面;
其他默认就可以。
- 现在,点击保存时,已经会直接保存在服务器上了
-
注意:
因为 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的限制,可能存在.htaccess 或 htaccess 文件里的限制,在某些系统上,可能像这样:
php_value upload_max_filesize 4M
php_value post_max_size 6M
语法学习
推荐一个台湾教师的网站
http://web.nlhs.tyc.edu.tw/~lss/wiki/TiddlyWikiTutorialTW.html
谢谢,主机升级PHP7.1后就发现无法保存了,对php也不了解,看了你的文章才循迹解决。