具有許多功能的靜態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: