Есть ли способ «внедрить» скрипт для загрузки/удаления файла на веб-сервере?

Есть ли способ «внедрить» скрипт для загрузки/удаления файла на веб-сервере?

Мне нужно заставить сервер работать следующим образом:

Проверьте, существует ли запрошенный файл локально.

  • если есть, подавайте сразу
  • если нет, передайте REQUEST_URI скрипту, который его загрузит
  • если файл имеет ?delete=1, вызовите скрипт для его удаления

Я успешно реализовал это поведение с помощью nginx (используя обработчик ошибок 404) и PHP. Дело в том, что для реализации этого на другом сервере мне нужно установить/скомпилировать и nginx, и php.

Мой вопрос в том, есть ли способ удалить php из стека и поставить nginx (или какой-то другой сервер) для выполнения этой работы. Идеальным способом для меня было бы, если бы я мог запускать/вызывать bash-скрипты/команды напрямую с сервера.

Кто-нибудь может указать мне правильное направление?

решение1

То, что вы пытаетесь сделать, можно очень легко сделать с помощью простого CGI и скрипта оболочки. То, как вы включите/реализуете CGI, зависит от сервера. Nginxдолженбыть способным, но я знаю, что 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}, чтобы получить действие удаления. Я оставлю вам полное решение и обработку ошибок в качестве упражнения. Это становится немного сложнее и выходит за рамки нашего формата вопросов и ответов.

Видеть:Анализ QUERY_STRING в скриптах Bash CGI

Связанный контент