2011-12-04 18 views
11

Estoy ejecutando Ubuntu 11 y me gustaría configurar un servidor web simple que responda a una solicitud http llamando a un script local con los parámetros GET o POST. Este script (ya escrito) hace algunas cosas y crea un archivo. Este archivo debe estar disponible en una URL, y el servidor web debe hacer una solicitud http a otro servidor indicándole que descargue el archivo creado.¿Cómo puedo llamar a un script de shell local desde un servidor web?

¿Qué debo hacer para configurar esto? No soy un principiante total con Linux, pero tampoco diría que lo sé bien.

¿Qué servidor web debo usar? ¿Cómo doy permiso para que el script acceda a los recursos locales para crear el archivo en cuestión? No estoy demasiado preocupado con la seguridad ni nada, esto es para un experimento personal (tengo control sobre todas las computadoras involucradas). He usado apache antes, pero nunca lo configuré.

Cualquier ayuda se agradece ..

Respuesta

10

This tutorial looks good, pero es un poco breve.

Tengo apache instalado. Si no lo hace: 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 

A continuación, coloque el código en el archivo. Por ejemplo:

#!/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>" 

Y finalmente abrir su navegador y escriba http://localhost/cgi-bin/test.sh

Si todo va bien (como lo hizo para mí) debería ver ...

Hoy es Dom Dic 4 ...
directorio actual es/usr/lib nombre/cgi-bin Shell
Shell script es /usr/lib/cgi-bin/test.sh

+1

También tenemos que permitir que '' mod_cg'i cgi' a2enmod si no está ya activada –

+4

en mi sistema, que utiliza los siguientes comandos para activar mod_cgi: 'sudo a2enmod cgi' ' sudo servicio apache2 restart' –

+0

Cómo hacer Lees los datos de la publicación? –

Cuestiones relacionadas