Как мне вызвать скрипт локальной оболочки с веб-сервера? - PullRequest
11 голосов
/ 05 декабря 2011

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

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

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

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

1 Ответ

15 голосов
/ 05 декабря 2011

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

У меня установлен 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's 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
Имя сценария оболочки - /usr/lib/cgi-bin/test.sh

...