OpenSupports 在 NGINX 下的配置

2023-03-25 03:33:38 浏览数 (1)

我发现了一个叫 OpenSupports 的开源工单管理系统,我打算部署一下玩一玩。

我还没想好怎么利用它:我打算用它跟踪一些复杂的、长期的事情,而用“滴答清单”、“Microsoft To Do”这样的 TODO List 来跟踪一些简单的、日常的、重复的提醒。

安装挺简单的,OpenSupports 是基于 PHP MySQL/MariaDB 的,所以解压之后放在服务器目录上,直接用浏览器访问就可以看到安装界面,剩下的可以全部在网页端搞定。

安装没有大坑,但是官方的脚本是基于 Apache 的,如果使用 NGINX 就需要“手动翻译”那些规则。

GitHub Issue 页面的内容基本没问题:https://github.com/opensupports/opensupports/issues/123,整理修改后的内容如下:

代码语言:text复制
# 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 的地方,那就是安装界面无法切换语言,切换了就是白屏,只能用英语安装完成之后,去设置里面改语言。

0 人点赞