2011-12-04 27 views
11

Tôi đang chạy Ubuntu 11 và tôi muốn thiết lập một máy chủ web đơn giản đáp ứng yêu cầu http bằng cách gọi một tập lệnh cục bộ với các tham số GET hoặc POST. Kịch bản này (đã được viết) thực hiện một số nội dung và tạo một tệp. Tệp này phải được cung cấp tại URL và máy chủ web sau đó sẽ thực hiện yêu cầu http đến một máy chủ khác yêu cầu tệp tải xuống tệp đã tạo.Làm cách nào để gọi một tập lệnh shell cục bộ từ máy chủ web?

Tôi làm cách nào để thiết lập điều này? Tôi không phải là người mới bắt đầu với Linux, nhưng tôi cũng không nói rằng tôi cũng biết nó.

Tôi nên sử dụng máy chủ web nào? Làm cách nào để tôi cho phép tập lệnh truy cập tài nguyên cục bộ để tạo tệp được đề cập? Tôi không quá quan tâm đến an ninh hay bất cứ điều gì, đây là một thử nghiệm cá nhân (tôi có quyền kiểm soát tất cả các máy tính liên quan). Tôi đã sử dụng apache trước, nhưng tôi chưa bao giờ thiết lập nó.

Mọi trợ giúp sẽ được đánh giá cao ..

Trả lời

10

This tutorial looks good, nhưng hơi ngắn gọn.

Tôi đã cài đặt apache. Nếu bạn không: 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 

Sau đó, đặt một số mã trong tệp. Ví dụ:

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

Và cuối cùng mở trình duyệt và gõ http://localhost/cgi-bin/test.sh

Nếu mọi việc suôn sẻ (như nó đã làm cho tôi) bạn sẽ thấy ...

Hôm nay là Sun 04 Tháng 12 ...
thư mục hiện hành được/usr/lib tên/cgi-bin Shell
Shell Script là /usr/lib/cgi-bin/test.sh

+1

Chúng tôi cũng phải kích hoạt 'mod_cg'i' cgi' a2enmod nếu chưa được kích hoạt –

+4

trên hệ thống của tôi, tôi đã sử dụng các lệnh sau để kích hoạt mod_cgi: sudo a2enmod cgi' sudo dịch vụ apache2 restart' –

+0

thế nào bạn đọc dữ liệu bài? –

Các vấn đề liên quan