我发现了一个叫 OpenSupports 的开源工单管理系统,我打算部署一下玩一玩。
我还没想好怎么利用它:我打算用它跟踪一些复杂的、长期的事情,而用“滴答清单”、“Microsoft To Do”这样的 TODO List 来跟踪一些简单的、日常的、重复的提醒。
安装挺简单的,OpenSupports 是基于 PHP + MySQL/MariaDB 的,所以解压之后放在服务器目录上,直接用浏览器访问就可以看到安装界面,剩下的可以全部在网页端搞定。
安装没有大坑,但是官方的脚本是基于 Apache 的,如果使用 NGINX 就需要“手动翻译”那些规则。
GitHub Issue 页面的内容基本没问题:https://github.com/opensupports/opensupports/issues/123,整理修改后的内容如下:
# Special API location block.
location /api {
try_files $uri $uri/ /api/index.php$request_uri;
}
# Special config for image download
location /api/system/download {
try_files $uri /api/index.php/system/download?$args;
}
# Catch-all for rest.
location / {
try_files $uri $uri/ /index.php;
}
location ~ [^/]\.php(/|$) {
include fastcgi.conf;
fastcgi_param PHP_ADMIN_VALUE "open_basedir=$document_root/:/tmp/:/proc/:/external_nfs_storage/opensupports/";
fastcgi_split_path_info ^(.+?\.php)(/.*)$;
set $path_info $fastcgi_path_info;
fastcgi_param PATH_INFO $path_info;
try_files $fastcgi_script_name =404;
fastcgi_pass unix:/tmp/php-cgi.sock;
fastcgi_index index.php;
}
因为我把 /api/files
用软连接挂载出去了(/vda
没有那么多空间,所以用 ln -s
挂到了 NFS 上),这样的话就还需要改 fastcgi - open_basedir
。
安装时设置的用户,要从 ticketing.example.com/admin
登录,这是带管理权限的账户,如果直接从 ticketing.example.com
登录会说用户找不到。管理账户和非管理账户可以同名,只是从不同的入口登录,这一个设计还挺神奇的。
我用的是 mailgun 的邮件服务,但是安装界面没有提供协议、端口这些信息,那就只能把信息揉在 URI 里面了,tls://mailgun.smtp.org:587
。
另外遇到一个可能是 bug 的地方,那就是安装界面无法切换语言,切换了就是白屏,只能用英语安装完成之后,去设置里面改语言。