Как вызвать локальную оболочку script с веб-сервера?

Я запускаю Ubuntu 11, и я хотел бы настроить простой веб-сервер, который отвечает на HTTP-запрос, вызвав локальный script с параметрами GET или POST. Этот script (уже написанный) делает некоторые вещи и создает файл. Этот файл должен быть доступен по URL-адресу, и веб-сервер затем должен сделать HTTP-запрос другому серверу, сообщающему ему загрузить созданный файл.

Как я могу это настроить? Я не новичок в Linux, но я бы не сказал, что я тоже это хорошо знаю.

Какой веб-сервер я должен использовать? Как предоставить разрешение script на доступ к локальным ресурсам для создания файла? Я не слишком забочусь о безопасности или что-то еще, это для личного эксперимента (у меня есть контроль над всеми задействованными компьютерами). Раньше я использовал apache, но я никогда не настраивал его.

Любая помощь будет оценена.

Ответ 1

Этот учебник хорошо выглядит, но он немного краток.

У меня установлен apache. Если вы этого не сделаете: sudo apt-get install apache2.

cd /usr/lib/cgi-bin

# Make a file and let everyone execute it
sudo touch test.sh && chmod a+x test.sh 

Затем поместите код в файл. Например:

#!/bin/bash
# get today date
OUTPUT="$(date)"
# You must add following two lines before
# outputting data to the web browser from shell
# script
 echo "Content-type: text/html"
 echo ""
 echo "<html><head><title>Demo</title></head><body>"
 echo "Today is $OUTPUT <br>"
 echo "Current directory is $(pwd) <br>"
 echo "Shell Script name is $0"
 echo "</body></html>"

И, наконец, откройте свой браузер и введите http://localhost/cgi-bin/test.sh

Если все пойдет хорошо (как и для меня), вы должны увидеть...

Сегодня воскресенье 4 декабря...
Текущий каталог:/usr/lib/cgi-bin Shell
Имя оболочки Script -/usr/lib/cgi-bin/test.sh