Мне нужно, чтобы сервер работал так:
Проверьте, существует ли запрошенный файл локально.
Я успешно реализовал это поведение с помощью nginx (с использованием обработчика ошибок 404) и PHP. Дело в том, что для реализации этого на другом сервере мне нужно установить / скомпилировать и nginx, и php.
Мой вопрос в том, есть ли способ удалить php из стека и установить nginx (или какой-либо другой сервер) для выполнения этой работы. Идеальным способом для меня было бы запускать / вызывать сценарии / команды bash прямо с сервера.
Кто-нибудь может указать мне правильное направление?
То, что вы пытаетесь сделать, можно очень легко выполнить с помощью простого 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}, чтобы получить действие удаления. Я оставлю вам полное решение и обработку ошибок в качестве упражнения. Это становится немного сложнее и выходит за рамки нашего формата вопросов и ответов.