我需要讓伺服器以這種方式工作:
檢查請求的檔案本機是否存在。
- 如果有,請立即上菜
- 如果沒有,則將 REQUEST_URI 傳遞給將下載它的腳本
- 如果檔案有?delete=1,則呼叫腳本將其刪除
我已經使用 nginx(使用 404 錯誤處理程序)和 PHP 成功實現了此行為。問題是,要在另一台伺服器上實現此功能,我必須安裝/編譯 nginx 和 php。
我的問題是是否有辦法從堆疊中刪除 php 並放置 nginx(或其他伺服器)來完成這項工作。對我來說,理想的方法是直接從伺服器執行/呼叫 bash 腳本/命令。
有人能指出我正確的方向嗎?
答案1
您想要做的事情可以使用普通的 CGI 和 shell 腳本非常輕鬆地完成。如何啟用/實施 CGI 取決於伺服器。 nginx應該有能力,但我知道 Apache 有能力。請參閱文件或詢問有關在給定 Web 伺服器上啟用 CGI 的具體問題。
簡單的 bash 邏輯來測試檔案是否存在並顯示它:
#!/bin/bash
FILE="/path/to/file"
URI="http://example.com/file"
/bin/echo "Content-type: text/plain"
/bin/echo
if [ -f $FILE ]; then
/bin/cat $FILE
else
/usr/bin/wget $URI
fi
您可以解析 ${QUERY_STRING} 來取得刪除操作。我將把完整的解決方案和錯誤處理作為練習留給您。這有點棘手,超出了我們問答格式的範圍。