具有许多功能的静态Spartan服务器:
运行SPSRV的已知服务器:
问题 /支持
目录
go install您有三个选择:
自V0.5.4以来,提供了Darwin和Linux Architectures ARM/AMD-64的预制二进制文件。转到git.sr.ht上的标签页面,单击所需的标签,然后下载用于架构的二进制标签。
go install首先,您需要安装并配有一个文件夹~/go $GOPATH指向它。
go install git.sr.ht/~hedy/spsrv@latest
将在~/go/bin/带有源代码的二进制文件~/go/src/
随意将二进制移动到其他地方,例如/usr/sbin/
请注意,建议固定任何最新版本@v0.0.0 ,而不是最新的提交,因为它可能不稳定。
从任何目录和cd spsrv运行git clone https://git.sr.ht/~hedy/spsrv
确保您已安装并工作。
git checkout v0.0.0 # recommended to pin a specific tag
make build
完成后,二进制将进入./bin 。
如果您没有制作,则可以go build ( spsrv --version将无法提供该版本和构建信息)。
如果您不想安装或克隆回购,并且在预建二进制文件中不支持您的体系结构,请将电子邮件发送给我的公共收件箱(或私下与我联系),这样我也许可以为您的体系结构编译二进制文件。
默认配置文件位置是/etc/spsrv.conf ,您可以通过运行SPSRV来指定自己的路径
spsrv -c /path/to/file.conf
您不需要配置文件即可运行SPSRV,它将仅使用默认值。
请注意,这些选项是不敏感的。
这是配置选项及其默认值
一般的
port=300 :端口听hostname="localhost" :如果设置了此值,则对此值以外的主机名的任何请求将被拒绝rootdir="/var/spartan" :用于获取文件的文件夹目录列表
dirlistEnable=true :启用目录的目录列表,该文件夹没有index.gmidirlistReverse=false :反转列出的文件的顺序dirlistSort="name" :如何对文件进行排序,仅接受“名称”,“大小”和“时间”。如果遇到未知选项,则默认为“名称”dirlistTitles=true :如果是true,目录列表将使用*.gmi文件中的第一个顶级标题,而不是文件名。〜用户/目录
userdirEnable=true :启用服务/~user/*请求userdir="public_spartan" :用户的根目录。这不应该有落后的斜线,并且相对于/home/user/userSubdomains=false :用户vhosts。是否允许user.host.name/foo.txt与host.name/~user/foo.txt相同( hostname="host.name" )。注意:仅在设置hostname选项时,这才有效。CGI
CGIPaths=["cgi/"] :可作为CGI进程运行的路径列表。如果这些路径在所请求的路径上之前,将检查这些路径。对于默认值, /cgi/hi.sh的请求(例如,请求到./public/cgi/hi.sh ),如果它是世界可执行文件,则将运行hi.sh脚本。usercgiEnable=false :启用运行用户的CGI脚本。这很危险,因为SPSRV还没有(尚未)更改CGI进程的UID,因此该过程将由运行服务器的同一用户运行,这可能意味着将访问访问访问访问configuration文件,等等。请注意,如果将userdirEnable设置为false ,则该选项将假定为false 。这意味着,如果未启用用户目录,则不会有使用者CGI。在示例/目录中查看一些示例Configuraton。
如果您从命令行供电:
Usage: spsrv [ [ -c <path> -h <hostname> -p <port> -d <path> ] | --help | --version ]
-c, --config string Path to config file
-d, --dir string Root content directory
-h, --hostname string Hostname
-p, --port int Port to listen to
请注意,您无法将主机名或DIR路径设置为到达,因为SPSRV使用它来检查您是否提供了选项。您也不能将端口设置为0 ,对不起,此限制具有能够从命令行覆盖配置值的优势。
运行SPSRV时没有任何参数,只有上面列出的选项:)
为CGI脚本设置以下环境值:
GATEWAY_INTERFACE # CGI/1.1
REMOTE_ADDR # Remote address
SCRIPT_PATH # (Relative) path of the CGI script
SERVER_SOFTWARE # SPSRV
SERVER_PROTOCOL # SPARTAN
REQUEST_METHOD # Set to nothing
SERVER_PORT # Port
SERVER_NAME # Hostname
DATA_LENGTH # Input data length
数据块(如果有的话)将作为CGI过程的STDIN管道。
请记住,CGI脚本(到目前为止)由与服务器流程相同的用户运行,因此,允许用户拥有自己的CGI脚本通常是危险的。有关更多详细信息,请参见配置部分。
在示例/目录中查看一些示例CGI脚本。
示例SystemD服务配置也在其中列出。随时为其他OS贡献:)
请在tilde.chat irc上使用#Spartan频道或我的公共收件箱。
两者都在本文档的顶部列出。
补丁- >公共收件箱
/文件夹到 /文件夹 /重定向
目录列表
登录文件
〜用户目录
重构工作dir部分
config
CGI
SCGI
多个服务器与他们自己的confs
readme: