웹 서버 내에 파일을 다운로드/삭제하기 위해 스크립트를 "포함"하는 방법은 무엇입니까?

웹 서버 내에 파일을 다운로드/삭제하기 위해 스크립트를 "포함"하는 방법은 무엇입니까?

서버가 다음과 같이 작동하도록 해야 합니다.

요청한 파일이 로컬에 존재하는지 확인하십시오.

  • 거기 있으면 바로 서빙해
  • 그렇지 않은 경우 REQUEST_URI를 다운로드할 스크립트에 전달하세요.
  • 파일에 ?delete=1이 있으면 스크립트를 호출하여 제거합니다.

나는 nginx(404 오류 핸들러 사용)와 PHP를 사용하여 이 동작을 성공적으로 구현했습니다. 문제는 이것을 다른 서버에 구현하려면 nginx와 php를 모두 설치/컴파일해야 한다는 것입니다.

내 질문은 스택에서 PHP를 제거하고 작업을 수행하기 위해 nginx(또는 다른 서버)를 설치하는 방법이 있는지입니다. 나에게 이상적인 방법은 서버에서 직접 bash 스크립트/명령을 실행/호출할 수 있는 것입니다.

누구든지 나에게 올바른 방향을 알려줄 수 있습니까?

답변1

당신이 하려는 일은 일반 CGI와 쉘 스크립트를 사용하여 매우 쉽게 수행할 수 있습니다. CGI를 활성화/구현하는 방법은 서버에 따라 다릅니다. 엔진스~해야 한다능력이 있지만 Apache가 있다는 것을 압니다. 문서를 참조하거나 특정 웹 서버에서 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}을 구문 분석하여 삭제 작업을 가져올 수 있습니다. 전체 솔루션과 오류 처리는 여러분에게 연습으로 남겨두겠습니다. 조금 까다로워서 Q&A 형식의 범위를 벗어납니다.

보다:Bash CGI 스크립트에서 QUERY_STRING 구문 분석

관련 정보